(随笔)JSP 表单处理

我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理。浏览器中使用 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>


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值