读取所有表单参数
以下我们将使用 HttpServletRequest 的 getParameterNames() 来读取所有表单参数,该方法可以取得所有变量的名称,该方法返回一个枚举。一旦我们有了一个 Enumeration(枚举),我们就可以调用 hasMoreElements() 方法来确定是否还有元素,以及使用nextElement()方法来获得每个参数的名称。
jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.io.*,java.util.*" %><!DOCTYPE html><html><head><meta charset="utf-8"><title>hqh</title></head><body><h1>读取所有表单参数</h1><table width="100%" border="1" align="center"><tr bgcolor="#949494"><th>参数名</th><th>参数值</th></tr><% Enumeration paramNames = 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></body></html>
html代码如下:
<!DOCTYPE html><html><head><meta charset="utf-8"><title>hqh</title></head><body><form action="NewFile.jsp" method="POST" target="_blank"><input type="checkbox" name="google" checked="checked" /> Google<input type="checkbox" name="baidu" /> 百度<input type="checkbox" name="taobao" checked="checked" /> 淘宝<input type="submit" value="选择网站" /></form></body></html>
通过访问 http://localhost:8080/tt2/test.html 提交表单数据到 jsp 文件中得到以下结果
再来回顾一下表单处理的两种函数:
一、GET方法
GET方法发送添加到页面请求的编码用户信息。页面和编码信息是被符号?分开的。
GET方法是从浏览器向Web服务器传递信息的默认的方法,它产生一个长字符串出现在浏览器的位置框中。如果要把密码或其他敏感信息传递到服务器,那么不要使用 GET 方法。
GET方法有大小限制:在请求字符串中只可以有1024个字符(但这个值可以通过配置来加大)。
这些信息是通过使用QUERY_STRING标题传递的,并将通过QUERY_STRING环境变量被接收,该环境变量可以使用请求对象的getQueryString()方法和getParameter()方法处理。
二、POST方法
通常情况下,将信息传递给后端程序的更可靠的方法是POST方法。
该方法打包信息的方法与GET方法是完全一样的,但是它不是将信息作为一个文本字符串放在URL中的?符号之后来发送信息,它是把信息作为一个单独的消息来发送该消息。这个消息是以标准输入的形式发送到后端程序的,在处理过程中可以解析并使用这个消息。
JSP处理这种类型的请求时,使用getParameter()方法读取简单参数,使用getInputStream()方法读取来自客户端的二进制数据流。