request.getParameter("companyName"); предназначен для получения данных, отправленных формой (в форме на главной странице указано имя компании).
request.getAttribute("cc") предназначен для получения данных вашего setAttribute (полученное значение — это значение параметра cc, которое вы сохранили самостоятельно.)
Используется для параметров в гиперссылках. . request.getParameter(имя параметра)
Класс HttpServletRequest имеет как метод getAttribute(), так и метод getParameter(). Эти два метода имеют следующие различия:
(1) Класс HttpServletRequest имеет метод setAttribute(), но не имеет метода setParameter().
(2) Когда между двумя веб-компонентами существует связь связи, связанный компонент получает параметры запроса с помощью метода getParameter(). Например, если предположить, что существует связь связи между Welcome.jsp и аутентификацией.jsp, то Welcome.jsp. имеет следующий код:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
или:
<form name="form1" Method="post" action="authenticate.jsp">
Пожалуйста, введите имя пользователя: <input type="text" name="username">
<input type="submit" name="Submit" value="Submit">
</форма>
Получите имя пользователя параметра запроса с помощью метода request.getParameter("username") в аутентификации.jsp:
<% String username=request.getParameter("имя пользователя" %>
(3) Когда между двумя веб-компонентами существует связь пересылки, целевой компонент пересылки делится данными в пределах диапазона запроса с исходным компонентом пересылки через метод getAttribute(). Предполагается, что между Authenticate.jsp и hello.jsp существует связь пересылки. Authenticate.jsp надеется передать текущее имя пользователя в hello.jsp. Как передать эти данные? Сначала вызовите метод setAttribute() в Authenticate.jsp:
<%
String username=request.getParameter("имя пользователя");
request.setAttribute("имя пользователя", имя пользователя);
%>
<jsp:forward page="hello.jsp" />
Получите имя пользователя с помощью метода getAttribute() в hello.jsp:
<% String username=(String)request.getAttribute("имя пользователя" %>
Здравствуйте: <%=имя пользователя %>
Если рассматривать более глубокий уровень, то данные, передаваемые методом request.getParameter(), будут передаваться от веб-клиента на веб-сервер, представляя данные HTTP-запроса. Метод request.getParameter() возвращает данные типа String.
Данные, передаваемые методами request.setAttribute() и getAttribute(), будут существовать только внутри веб-контейнера и совместно использоваться веб-компонентами с помощью отношений пересылки. Эти два метода могут устанавливать общие данные типа Object.
Проще говоря, метод request.getParamenter() использует протокол HTTP для передачи данных и может передавать только информацию типа String, тогда как метод request.setAttribtute() передает данные в WEB-контейнере и может пересылать информацию об объекте любого типа. Например, если сервлет listAction хочет передать коллекцию LIST в list.jsp, он должен использовать setAttribute.