我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理。浏览器中使用 GET 和 POST 方法向服务器提交数据。
get 方法----服务器默认传递参数的方法,一些敏感信息,如密码等不建议使用get方法
用get时,传输数据的大小有限制,最大为1024字节。
post方法----一些敏感的信息,如密码我们可以通过post方法传递,post提交数据是隐式的。
post提交数据时不可见的,get使用过url里面传递的。
JSP使用getParameter()来获取传递的参数,getInputStream()方法来处理客户端的二进制数据交流的请求。
JSP读取表单数据
- getParameter():使用request.getParameter()方法来获取参数的值
- getParameterNames():该方法可以取得所有变量的名称,该方法返回一个Emumeration
- getParameterValues():获得如checkbox类(名字相同,但值有多个)的数据。接受数组变量
- getInputStream():调用此方法来获取来自客户端二进制数据流
使用Url的get方法
main.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<pre style="" class="prettyprint prettyprinted"><span class="tag"> <h1></span><span class="pln">使用 GET 方法读取数据</span><span class="tag"></h1></span><span class="pln"></span>
<form action="date.jsp" method="GET">站点名: <input type="text" name="name"><br />网址: <input type="text" name="url" /><input type="submit" value="提交" /></form> </body></html>
data.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'date.jsp' starting page</title> </head> <body> <h1>使用 GET 方法读取数据</h1> <ul> <li><p><b>站点名:</b> <%= request.getParameter("name")%> </p> </li> </body> </html>
使用表单的 POST 方法实例
main.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="date.jsp" method="post">
站点名: <input type="text" name="name">
<br />
网址: <input type="text" name="url" />
<input type="submit" value="提交" />
</form>
</body>
</html>
date.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<h1>使用 POST 方法读取数据</h1>
<ul>
<li><p><b>站点名:</b>
<%
// 解决中文乱码的问题
/* String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8"); */
%>
<%=request.getParameter("name")%>
</p></li>
<li><p><b>网址:</b>
<%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>
传递CheckBox数据到jsp程序
复选框 checkbox 可以传递一个甚至多个数据。
main.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<!-- 复选框 checkbox 可以传递一个甚至多个数据。 -->
<form action="date.jsp" method="post" target="1">
<input type="checkbox" name="google" checked="checked" /> Google
<input type="checkbox" name="runoob" checked="checked"/> 菜鸟教程
<input type="checkbox" name="taobao" checked="checked" /> taobao
<input type="submit" value="选择网站" />
</form>
</body>
</html>
date.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'date.jsp' starting page</title>
&l���������26gt;
<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>
<!-- 从复选框中读取数据 -->
<h1>从复选框中读取数据</h1>
<ul>
<li><p><b>Google 是否选中:</b>
<%= request.getParameter("google")%>
</p></li>
<li><p><b>菜鸟教程是否选中:</b>
<%= request.getParameter("runoob")%>
</p></li>
<li>
<p><b>淘宝是否选中:</b>
<%= request.getParameter("taobao")%>
</p>
</li>
</ul>
</body>
</html>