JSP表单处理

撰写时间:2019年08月17日
向服务器提交信息,并让后台程序处理。浏览器中使用 GET 和 POST 方法向服务器提交数据。
GET 方法
GET方法将请求的编码信息添加在网址后面,网址与编码信息通过"?"号分隔。如下所示:

http://127.0.0.1:8080/ecolp/servlet/loginServlet?fun=login&username=admin&password=123456&identityKey=gb22z

GET方法是浏览器默认传递参数的方法,一些敏感信息,如密码等建议不使用GET方法。因为会把输入的数据显示出来,不安全
用get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。

POST 方法

一些敏感信息,如密码等我们可以同过POST方法传递,post提交数据是隐式的。
POST提交数据是不可见的,GET是通过在url里面传递的(可以看一下你浏览器的地址栏)。
JSP使用getParameter()来获得传递的参数,getInputStream()方法用来处理客户端的二进制数据流的请求。

JSP 读取表单数据

  • getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。
  • getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量,如checkobx类型 getParameterNames():该方法可以取得所有变量的名称,该方法返回一个Emumeration
  • getInputStream():调用此方法来读取来自客户端的二进制数据流。

使用URL的 GET 方法实例
以下是一个简单的URL,并使用GET方法来传递URL中的参数:

<form id="formLogin" class="form-radius" method="get" action="${ctx}/servlet/loginServlet?fun=userLogin">
	<h4 class="no-margins">登录:</h4>
	<input name="username" type="text" placeholder="用户名" />
    <input name="password" type="password" placeholder="密码" />
    <img id="imgIdentity" src="${ctx}/servlet/loginServlet?fun=identity" onclick="resetIdentity()">
    <input name="identityKey" type="text" placeholder="验证码" />
    <button type="button" onclick="login()">登录</button>
</form>

使用表单的 POST 方法实例
稍微修改一下就可以了
传递 Checkbox 数据到JSP程序
复选框 checkbox 可以传递一个甚至多个数据。
以下是一个简单的HTML代码,并将代码保存在CheckBox.htm文件中:

<html>
<body>
    <form action="main.jsp" method="POST" target="_blank">
	    <input type="checkbox" name="maths" checked="checked" /> Maths
	    <input type="checkbox" name="physics"  /> Physics
	    <input type="checkbox" name="chemistry" checked="checked" /> 
	                                                    Chemistry
	    <input type="submit" value="Select Subject" />
    </form>
</body>
</html>
以上代码在浏览器访问如下所示:
以下为main.jsp文件代码,用于处理复选框数据:
<html>
<head>
    <title>Reading Checkbox Data</title>
</head>
<body>
    <center>
    <h1>Reading Checkbox Data</h1>
    <ul>
    <li><p><b>Maths Flag:</b>
      		<%= request.getParameter("maths")%>
    </p></li>
    <li><p><b>Physics Flag:</b>
      		<%= request.getParameter("physics")%>
    	/p></li>
    <li><p><b>Chemistry Flag:</b>
       	<%= request.getParameter("chemistry")%>
    </p></li>
    </ul>
</body>
</html>

以上实例输出结果为:
在这里插入图片描述
读取所有表单参数
以下我们将使用 HttpServletRequest 的getParameterNames()来读取所有可用的表单参数,该方法可以取得所有变量的名称,该方法返回一个Emumeration。
一旦我们有了一个Enumeration(枚举),我们就可以调用hasMoreElements()方法来确定何时停止使用和nextElement()方法来获得每个参数的名称。

<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
	<title>HTTP Header Request Example</title>
</head>
<body>
    <center>
    	<h2>HTTP Header Request Example</h2>
    	<table width="100%" border="1" align="center">
   	 	<tr bgcolor="#949494">
    		<th>Param Name</th><th>Param Value(s)</th>
    	</tr>
    	<%Enumeration paramNames = request.getParameterNames();
	    	while(paramNames.hasMoreElements()) {
		    	String paramName = (String)paramNames.nextElement();
		    	out.print("<tr><td>" + paramName + "</td>\n");
		    	String paramValue = request.getHeader(paramName);
		    	out.println("<td> " + paramValue + "</td></tr>\n");
	    	}
		%>
    </table>
    </center>
</body>
</html>

以下是Hello.htm文件的内容:

<html>
<body>
    <form action="main.jsp" method="POST" target="_blank">
	    <input type="checkbox" name="maths" checked="checked" /> Maths
	    <input type="checkbox" name="physics"  /> Physics
	    <input type="checkbox" name="chemistry" checked="checked" /> Chem
	    <input type="submit" value="Select Subject" />
    </form>
</body>
</html>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值