乐趣区

jsp4

读取所有表单参数

以下我们将使用 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() 方法读取来自客户端的二进制数据流。

退出移动版