request.getParameter("companyName"); es para obtener los datos enviados por el formulario (el nombre es companyName en el formulario de la página principal)
request.getAttribute("cc") es para obtener los datos de su setAttribute (el valor obtenido es el valor del parámetro cc que usted mismo guardó).
Se utiliza para parámetros en hipervínculos. . request.getParameter(nombre del parámetro)
La clase HttpServletRequest tiene el método getAttribute() y el método getParameter(). Los dos métodos tienen las siguientes diferencias:
(1) La clase HttpServletRequest tiene un método setAttribute() pero ningún método setParameter()
(2) Cuando existe una relación de vínculo entre dos componentes web, el componente vinculado obtiene los parámetros de solicitud a través del método getParameter(). Por ejemplo, suponiendo que existe una relación de vínculo entre bienvenido.jsp y authenticate.jsp, bienvenido.jsp. tiene el siguiente Código:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
o:
<nombre del formulario="formulario1" método="publicar" acción="authenticate.jsp">
Por favor ingrese el nombre de usuario: <input type="text" name="username">
<tipo de entrada="enviar" nombre="Enviar" valor="Enviar">
</formulario>
Obtenga el nombre de usuario del parámetro de solicitud a través del método request.getParameter("username") en authenticate.jsp:
<% String nombre de usuario=request.getParameter("nombre de usuario");
(3) Cuando existe una relación de reenvío entre dos componentes web, el componente de destino de reenvío comparte los datos dentro del rango de solicitud con el componente de origen de reenvío a través del método getAttribute(). Se supone que existe una relación de reenvío entre authenticate.jsp y hello.jsp. authenticate.jsp espera pasar el nombre de usuario actual a hello.jsp. ¿Cómo pasar estos datos? Primero llame al método setAttribute() en authenticate.jsp:
<%
Cadena nombre de usuario=request.getParameter("nombre de usuario");
request.setAttribute("nombre de usuario", nombre de usuario);
%>
<jsp:página de avance="hola.jsp" />
Obtenga el nombre de usuario mediante el método getAttribute() en hello.jsp:
<% String nombre de usuario=(String)request.getAttribute("nombre de usuario");
Hola: <%=nombre de usuario %>
Considerándolo en un nivel más profundo, los datos pasados por el método request.getParameter() se pasarán del cliente web al servidor web, lo que representa los datos de la solicitud HTTP. El método request.getParameter() devuelve datos de tipo String.
Los datos pasados por los métodos request.setAttribute() y getAttribute() solo existirán dentro del contenedor web y se compartirán entre componentes web con una relación de reenvío. Estos dos métodos pueden establecer datos compartidos de tipo Objeto
En pocas palabras, el método request.getParamenter() utiliza el protocolo HTTP para transferir datos y solo puede transferir información de tipo String, mientras que el método request.setAttribtute() transfiere datos en el contenedor WEB y puede reenviar cualquier tipo de información de objeto. Por ejemplo, si un servlet listAction quiere pasar una colección LIST a list.jsp, debe utilizar setAttribute.