Cuando navegamos por la web, a menudo necesitamos enviar información al servidor y dejar que el programa en segundo plano la procese. El navegador utiliza los métodos GET y POST para enviar datos al servidor.
El método GET agrega la información de codificación solicitada después de la URL, y la URL y la información de codificación están separadas por un símbolo "?". Como se muestra a continuación:
//www.w3cschool.cn/hello?key1=valor1&key2=valor2
El método GET es el método predeterminado para que los navegadores pasen parámetros. Se recomienda no utilizar el método GET para cierta información confidencial, como las contraseñas.
Cuando se utiliza get, el tamaño de los datos transmitidos es limitado (tenga en cuenta que el número de parámetros no está limitado) y el máximo es 1024 bytes.
Podemos pasar cierta información confidencial, como contraseñas, etc., a través del método POST, y los datos de envío posterior están implícitos.
Los datos enviados por POST son invisibles y GET se pasa en la URL (puede consultar la barra de direcciones de su navegador).
JSP usa getParameter() para obtener los parámetros pasados y el método getInputStream() se usa para manejar la solicitud de flujo de datos binarios del cliente.
getParameter(): utilice el método request.getParameter() para obtener el valor del parámetro del formulario.
getParameterValues(): obtiene datos como la clase de casilla de verificación (mismo nombre, pero múltiples valores). Recibir variables de matriz, como el tipo de casilla de verificación
getParameterNames(): este método puede obtener los nombres de todas las variables. Este método devuelve una emumeración.
getInputStream(): llame a este método para leer el flujo de datos binarios del cliente.
La siguiente es una URL simple y utiliza el método GET para pasar los parámetros en la URL:
http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI
El siguiente es el programa JSP del archivo main.jsp para procesar los datos del formulario enviado por el cliente. Utilizamos el método getParameter() para obtener los datos enviados:
<html><head><title>Usar el método GET para leer datos de formulario</title></head><body><center><h1>Usar el método GET para leer datos de formulario</h1><ul><li> <p><b>Nombre:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>Apellido:</b> <%= request.getParameter("apellido")%></p></li></ul></body></html>
A continuación, accedemos a http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI a través del navegador. Los resultados de salida son los siguientes:
Uso del método GET para leer los datos del formulario Nombre: ZARA Apellido: ALI
El siguiente es un formulario HTML simple que envía datos del cliente al archivo main.jsp mediante el método GET:
<html><body><form action="main.jsp" método="GET">Nombre: <input type="text" name="first_name"><br />Apellido: <input type="text " nombre="apellido" /><tipo de entrada="enviar" valor="Enviar" /></formulario></cuerpo></html>
Guarde el código HTML anterior en el archivo Hello.htm. Coloque este archivo en el directorio /webapps/ROOT. Al acceder a http://localhost:8080/Hello.htm , la interfaz de salida es la siguiente:
Complete la información en los formularios "Nombre" y "Apellido" y haga clic en el botón "Enviar", generará los resultados.
A continuación, usemos el método POST para transferir datos del formulario y modificar los códigos de los archivos main.jsp y Hello.htm de la siguiente manera:
Código del archivo principal.jsp:
<html><head><title>Usar el método GET y POST para leer los datos del formulario</title></head><body><center><h1>Usar el método GET para leer los datos del formulario</h1><ul>< li><p><b>Nombre:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>Apellido:</ b><%= request.getParameter("apellido")%></p></li></ul></body></html>
El siguiente es el código modificado de Hello.htm:
<html><body><form action="main.jsp" método="POST">Nombre: <input type="text" name="first_name"><br />Apellido: <input type="text " nombre="apellido" /><tipo de entrada="enviar" valor="Enviar" /></formulario></cuerpo></html>
Acceda a http://localhost:8080/Hello.htm a través del navegador, el resultado es el siguiente:
Complete la información en los formularios "Nombre" y "Apellido" y haga clic en el botón "Enviar", generará los resultados.
La casilla de verificación puede pasar uno o incluso varios datos.
El siguiente es un código HTML simple y guárdelo en el archivo CheckBox.htm:
<html><cuerpo><formulario acción="main.jsp" método="POST" target="_blank"><tipo de entrada="casilla de verificación" nombre="matemáticas" marcada="marcada" /> Matemáticas<tipo de entrada= "casilla de verificación" nombre="física" /> Física<tipo de entrada="casilla de verificación" nombre="química" marcada="marcada" /> Química<tipo de entrada="enviar" valor="Seleccionar tema" /></formulario> </cuerpo></html>
El siguiente es el código del archivo main.jsp, utilizado para procesar los datos de las casillas de verificación:
<html><head><title>Lectura de datos de casilla de verificación</title></head><body><center><h1>Lectura de datos de casilla de verificación</h1><ul><li><p><b>Marca de matemáticas :</b> <%= request.getParameter("maths")%></p></li><li><p><b>Marca de física:</b> <%= request.getParameter("physics")%></p></li><li><p><b>Indicador de química:</b> <%= request.getParameter("chemistry")%></p </li></ul></body></html>
El resultado de salida del ejemplo anterior es:
A continuación usaremos getParameterNames() de HttpServletRequest para leer todos los parámetros de formulario disponibles. Este método puede obtener los nombres de todas las variables. Este método devuelve una emumeración.
Una vez que tenemos una enumeración, podemos llamar al método hasMoreElements() para determinar cuándo dejar de usarla y al método nextElement() para obtener el nombre de cada parámetro.
<%@ page import="java.io.*,java.util.*" %><html><head><title>Ejemplo de solicitud de encabezado HTTP</title></head><body><center><h2 >Ejemplo de solicitud de encabezado HTTP</h2><table align="center"><tr bgcolor="#949494"><th>Nombre del parámetro</th><th>Valor(es) del parámetro</th></tr ><% Nombres de parámetros de enumeración = request.getParameterNames(); while(paramNames.hasMoreElements()) { String paramName = (String)paramNames.nextElement(); out.print("<tr><td>" + paramName + "</td>n "); String paramValue = request.getParameter(paramName); out.println("<td> " + paramValue + "</td></tr>n"); }%></table></center></body></html>
El siguiente es el contenido del archivo Hello.htm:
<html><cuerpo><formulario acción="main.jsp" método="POST" target="_blank"><tipo de entrada="casilla de verificación" nombre="matemáticas" marcada="marcada" /> Matemáticas<tipo de entrada= "casilla de verificación" nombre="física" /> Física<tipo de entrada="casilla de verificación" nombre="química" marcada="marcada" /> Química<tipo de entrada="enviar" valor="Seleccionar tema" /></formulario> </cuerpo></html>
Ahora accedemos al archivo Hello.htm a través del navegador y enviamos los datos. El resultado es el siguiente:
Puede intentar utilizar el código JSP anterior para leer otros objetos, como cuadros de texto, botones de opción o cuadros desplegables, y otras formas de datos.