JSP表单处理
当需要通过从浏览器获取一些信息,在许多情况下,最终给到Web服务器后台程序。浏览器使用两种方法将这些信息传递给Web服务器。这些方法是GET方法和POST方法。
GET 方法:
GET方法将追加到页面请求编码的用户信息。网页和编码信息被分离的?字符如下:
http://www . qixoo.com/hello?key1=value1&key2=value2
GET方法是默认的方法,从浏览器的信息传递到Web服务器和它产生出现在浏览器的地址很长的字符串:box。切勿使用GET方法,如果你有密码或其他敏感信息传递给服务器。
GET方法有大小限制:只有1024个字符可以在一个请求字符串。
此信息是使用QUERY_STRING头通过,将通过它可以使用getQueryString()处理request对象的getParameter()方法的QUERY_STRING环境变量访问。
POST 方法:
将信息传递给后端程序的一般比较可靠的方法是POST方法。
这种方法在完全相同的方式为GET方法包的信息,但不是后发送它作为一个文本字符串?在URL中发送它作为一个单独的消息。此消息来自于标准输入,你可以分析和使用您的处理形式在后端程序。
JSP中处理这种类型使用getParameter()方法来读取简单的参数和的getInputStream()方法来读取来自客户端的二进制数据流的请求。
使用JSP读取表单数据
JSP中处理表单数据使用视情况下列方法自动分析:
getParameter(): 调用request.getParameter()方法来获取表单参数的值。
getParameterValues(): 调用此方法,如果该参数出现多于一次,并返回多个值,例如复选框。
getParameterNames(): 如果你想在当前请求的所有参数的完整列表,调用此方法。
getInputStream(): 调用此方法来读取来自客户端的二进制数据流。
GET方法使用URL示例:
下面是这将使用GET方法传递两个值的HelloForm程序一个简单的URL。
http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI
下面是main.jsp 的JSP程序来处理输入的Web浏览器中给出。我们将usegetParameter()方法,这使得它很容易获得传递的信息:
<html><head><title>Using GET Method to Read Form Data</title></head><body><center><h1>Using GET Method to Read Form Data</h1><ul><li><p><b>First Name:</b>
<%= request.getParameter("first_name")%></p></li><li><p><b>Last Name:</b>
<%= request.getParameter("last_name")%></p></li></ul></body></html>
Now type http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI in your browser's Location:box. 这将产生以下结果:
Using GET Method to Read Form Data
|
GET方法示例使用表单:
下面是一个简单的例子,使用HTML表格和提交按钮传递两个值。我们将使用同一个JSP main.jsp中来处理此输入。
<html><body><form action="main.jsp" method="GET">First Name: <input type="text" name="first_name"><br />Last Name: <input type="text" name="last_name" /><input type="submit" value="Submit" /></form></body></html>
请将本HTML文件中的Hello.html并把它放在<Tomcat-installation-directory>/的webapps/ ROOT目录。当您将访问http://localhost:8080/Hello.html,这里是上述形式的实际输出。
尝试输入First Name和Last Name,然后单击提交按钮,看看那里的tomcat运行在本地机器上的结果。根据所提供的输入作为输入的在上面的例子中,会产生类似的结果。
POST方法示例使用表单:
让我们做小的修改在上面的JSP来处理GET和POST方法。下面是main.jsp的JSP程序来处理输入使用GET或POST方法通过Web浏览器中给出。
事实上,有在上面的JSP没有变化,因为传递参数唯一的办法就是改变,没有二进制数据被传递给JSP程序。文件处理相关的概念将在单独的一章,我们需要读取二进制数据流来解释。
<html><head><title>Using GET and POST Method to Read Form Data</title></head><body><center><h1>Using GET Method to Read Form Data</h1><ul><li><p><b>First Name:</b>
<%= request.getParameter("first_name")%></p></li><li><p><b>Last Name:</b>
<%= request.getParameter("last_name")%></p></li></ul></body></html>
以下是Hello.html时文件的内容:
<html><body><form action="main.jsp" method="POST">First Name: <input type="text" name="first_name"><br />Last Name: <input type="text" name="last_name" /><input type="submit" value="Submit" /></form></body></html>
现在让我们保存main.jsp和Hello.html 在<Tomcat-installation-directory>/的webapps/ ROOT目录。当您将访问http://localhost:8080/Hello.html,下面是上述形式的实际输出。
尝试输入名字和姓氏,然后单击提交按钮,看看那里的tomcat运行在本地机器上的结果。
根据所提供的输入作为输入的在上面的例子中,它会产生类似的结果。
通过复选框数据到JSP程序
复选框用于当需要多个选项被选中。
下面是例子的HTML代码,CheckBox.html,与两个复选框的表单
<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的JSP程序来处理输入的Web浏览器复选框按钮发出。
<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>
对于上面的例子,这将显示下列结果:
Reading Checkbox Data
|
读取所有表单参数:
以下是通用的例子,它使用的HttpServletRequest的getParameterNames()方法来读取所有可用的表单参数。此方法返回一个包含顺序不定的参数名的枚举。
一旦我们有了一个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>
");
String paramValue = request.getHeader(paramName);
out.println("<td> " + paramValue + "</td></tr>
");
}%></table></center></body></html>
以下是Hello.html时的内容:
<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>
现在尝试调用JSP使用上述Hello.html时,这会产生的结果类似,如下基于所提供的输入:
读取所有的表单参数
| Param Name | Param Value(s) |
|---|---|
| maths | on |
| chemistry | on |
JSP表单处理的更多相关文章
- struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1 function dosearch() {2 if ($(&q ...
- JSP表单提交与接收
JSP表单提交与接收 在Myeclipse中新建web project,在webroot中新建userRegist1.jsp,代码如下 <%@ page contentType="te ...
- JSP 表单处理
JSP 表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网址后面, ...
- JSP 表单处理向服务器提交信息
JSP 表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网址后面, ...
- JSP-Runoob:JSP 表单处理
ylbtech-JSP-Runoob:JSP 表单处理 1.返回顶部 1. JSP 表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法 ...
- JSP表单提交 与 接受显示
Demo01.jsp 提交表单输入的信息至 Demo02.jsp方法一 1 <%@ page language="java" contentType="text/h ...
- JSP表单提交中文乱码解决方案
分2种提交方式,解决方案不同: 1.form表单提交方式为get 乱码: 解决方案: 因为get方法是参数在URL中显示,因为tomcat的URL编码默认是:IOS-8859-1所以要么改tomcat ...
- jsp 表单提交,服务器跳转方法 浏览器重定向 及 servlet映射时 路径问题
在jsp页面中,等提交表单数据时,最好用觉得路径. 写法如下: <form action ="<%=request.getContextPath()%>/do_login. ...
- JSP 表单request内容
1. 表单request内容的获取 2. request.setCharacterEncoding("utf-8")对request内容进行编码 3. fullformreques ...
随机推荐
- ios--Attributes和ParagraphStyle介绍
NSMutableParagraphStyle的部分属性: typedef NS_ENUM(NSInteger, NSLineBreakMode) {/* What to do with long l ...
- ABP入门系列——使用ABP集成的邮件系统发送邮件
ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此. #一.Abp集成的邮件模块是如何实现的 分析可以看出主要由以下几个核心类组成: E ...
- 墙国内新建Rails应用的要点(windows 7环境, Rails 4.2.0)
1. 使用rails new 命令创建完的应用在自动执行bundle install不会成功,根据出错提示,判断原因有可能是被墙与https的证书的安全性问题. 作为开发环境,选用绕开的办法,在目录 ...
- 你都认识下面这些参数么?【Camera】
在调试的时候利用下面这个函数将 Camera AP 部分所设置的参数全部 dump 出来了,真是多啊! 这里仅限于 MTK 平台,MTK 自己在相机这块添加了许多功能,所以看起来就有一大堆的参数. 调 ...
- 说说C#中IList与List区别
首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口. 它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,ILis ...
- WP&Win10仿微信消息框代码分享
上次分享了幸运转盘的源码,感觉小伙伴们很喜欢:这次和大家分享下通信相关部分需要用到的类似微信的消息框代码,有需要的童鞋可以拿去用哟.自己尝试写的,可能有点low,勿喷呀! 希望以后有好的东西大家都分享 ...
- CodeIgniter框架中关于URL(index.php)的那些事
最近,在做自己的个人网站时,采用了轻量级的php框架CodeIgniter.乍一看上去,代码清晰简洁,MVC模型非常容易维护.开发时我采用的工具是Netbeans IDE 8.0,当然,本文的内容和开 ...
- [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...
- WPF开发时光之痕日记本
很久没有写东西了,新的一年新的开始吧. 很早就想自己开发一款日记本软件不仅自己使用,也可以让大家免费使用,最主要的是对自己有一个认可,自学WPF以来,感觉不很顺利,WPF的资料相对来说有点少,主 ...
- Swift与Objective-c 混编CocoaPods 引入第三方库遇到的问题 (一)
最近Swift 这么火也想尝试着用一下.考虑到Swift 出来的时间也不长.还有就是就是苹果更新的过于平凡 暂时还是不要将现有项目都用swift开发. 先来看看我遇到的问题: 问题一.