JSP开发之JSP 表单处理(GET 方法&POST 方法)

我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理,通常使用的是 GET 和 POST 方法向服务器提交数据。

其中,GET方法将请求的编码信息添加在网址后面,网址与编码信息通过"?"号分隔。如下所示:

http://www.luyaran.com/hello?key1=value1&key2=value2

GET方法是浏览器默认传递参数的方法,一些敏感信息,如密码等建议不使用GET方法。当我们用get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。

一些敏感信息,如密码等我们可以通过POST方法传递,POST提交数据是隐式的,并且是不可见的,GET是通过在url里面传递的(可以看一下我们浏览器的地址栏)。

我们来看下jsp读取表单数据的几种方式:

  • getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。

  • getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkbox类型

  • getParameterNames():该方法可以取得所有变量的名称,该方法返回一个 Enumeration。

  • getInputStream():调用此方法来读取来自客户端的二进制数据流。

 我们来看一个简单的URL,并使用GET方法来传递URL中的参数:

http://localhost:8080/blog/main.jsp?name=luyaran

我们来使用getParameter()方法来获取提交的数据:

扫描二维码关注公众号,回复: 2406799 查看本文章
<%@ 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>luyaran</title>
</head>
<body>
<h1>使用 GET 方法读取数据</h1>
<ul>
<li><p><b>my lover is :</b>
   <%= request.getParameter("name")%>
</p></li>
</ul>
</body>
</html>

完事我们来尝试使用表单的 GET 方法,来提交一部分数据。我么来看一个简单的 HTML 表单,文件名称为test.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body>

<form action="main.jsp" method="GET">
my lover: <input type="text" name="name">
<br />
pass: <input type="text" name="pass" />
<input type="submit" value="提交" />
</form>

</body>
</html>

完事我们来将该文件放置于当前jsp项目的 WebContent 目录下(与 main.jsp 同一个目录)。然后我们通过http://localhost:8080/blog/test.html来打开表单,并且向main.jsp提交数据。main.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>luyaran</title>
</head>
<body>
<h1>使用 GET 方法读取数据</h1>
<ul>
<li><p><b>my lover is :</b>
   <%= request.getParameter("name")%>
</p></li>
<li><p><b>pass is :</b>
   <%= request.getParameter("pass")%>
</p></li>
</ul>
</body>
</html>

至于运行效果,大家可以手动来试试,在下就不赘述了。

完事我们来看使用POST方法来传递表单数据。

首先来更改之前两个文件的代码,test.html的代码更改为:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body>

<form action="main.jsp" method="POST">
my lover: <input type="text" name="name">
<br />
pass: <input type="text" name="pass" />
<input type="submit" value="提交" />
</form>

</body>
</html>

main.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>luyaran</title>
</head>
<body>
<h1>使用 POST 方法读取数据</h1>
<ul>
<li><p><b>my lover is:</b>
<%
// 解决中文乱码的问题
String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
%>
   <%=name%>
</p></li>
<li><p><b>pass:</b>
   <%= request.getParameter("pass")%>
</p></li>
</ul>
</body>
</html>

上述代码中我们使用 new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8")来转换编码,防止中文乱码的发生。完事大家手动运行试试,看下效果。咱这里就不赘述了哈。

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

猜你喜欢

转载自blog.csdn.net/luyaran/article/details/81220527