解JavaWeb页面传参方法_参数传递
导读::图1用户注册页面regUser.html。表单传参是最常用的参数传递方法:利用表单收集用户键入的信息。
关键词:JavaWeb,页面,参数传递
1.表单传参
表单传参是最常用的参数传递方法:利用表单收集用户键入的信息,传递到服务器进行处理。“用户注册”的例子。
参数传递参数传递参数传递
图 1 用户注册页面regUser.html
1) 注册新用户页面regUser.html代码:
<form id="regUserForm"name="regUserForm" method="post" action="saveRegUser.jsp">
……
<input name="userName"type="text" id="userName"onclick="dispPrompt(0,true)"
onblur="dispPrompt(0,false)"/>
……
</form>
name属性:用户名文本框名称,也是参数名称;method属性:表单传参的方法;action属性:接收页面名称。
接收参数用request对象,request对象是javax.servlet.HttpServletRequest的实例。客户端请求一个JSP页面时,
JSP服务器将客户端的请求信息封装在request对象中。
接收方法为request.getParameter(“参数名”)。
2) saveRegUser.jsp代码:
<%
……
//接收用户输入的信息(账号、密码)
StringuserName=request.getParameter("userName");
//参数名用引号(")括起来
……
%>
表单隐藏域传参,例如:
<input type=”hidden” name=”action” value=”deleStud”/>
hidden:<input>标签为隐藏域标签参数传递,参数action,值为“deleStud”。接收方法相同。
表单传参常用于用户登录、用户注册等信息提交的场合。
2.URL传递参数
URL传参就是在传递地址的尾部加上? 后面跟参数的名字和其值,在URL所指向的页面中就可以用
request.getParameter("参数名字")获取的参数值。
用法:URL?参数名=参数值,例:
http://localhost:8080/news/DispNews.jsp?newId=34
DispNews.jsp页面中接收方法:
request.getParameter(“newId”)免费论文。
优点:灵活。
缺点:传参数据量不能太大,且参数信息显示在地址栏中,对用户来说是透明的,不安全。
可以将传递的字符进行加密,达到隐藏数据的目的。
一般在超级链接传递参数时使用方法。
3.session传参
session对象通常用来实现状态维持,可在多个页面间的共享信息,是JSP的内置对象,
javax.servlet.http.HttpSession类的实例,指的是客户端与服务器的一次会话,会话从客
户端链接到服务器开始参数传递,直到与服务器断开连接为止。
存取session中对象的常用方法的有setAttribute()、getAttribute()。setAttribute()
方法有两个参数,第一个为标识名,第二个为值,形式("key","value"),采用键值对的形式。
例,把用户名为userName,值为“admin123”的信息保存到session对象中,写法:
session.setAttribute("userName","admin123");
取出方法:
String userName=(String)(session.getAttribute("userName"));
注意:session对象中对象需要强制类型转换。
优点:不管什么数据类型,都可以放到session中,以对象的形式存储于散列表中。在会话结束之前有效。
持续时间与request相比要长。
缺点:session中把所有数据当成对象来存取,使用时需强制类型转换。占用服务器的资源大。
与seesion对象相似的另一个内置对象application,有效期更长。只用系统开始运行,直到系统结束
为止参数传递,application对象一直有效。常用于系统的公共变量,如访问次数的实现等。
4.jsp:para标签传参
jsp:para标签参数传递一般与jsp:forword标签结合使用。语法格式:
<jsp:forword page=”URL”>
<jsp:para name="参数名1" value="参数1的值"/>
……
<jsp:para name="参数名n" value="参数n的值"/>
</jsp:forword>
说明:page属性的值是转向的文件名,若是动态网页如JSP文件,则可以传递参数。
例:
1)para0.jsp代码:
<body>
<jsp:forwardpage="/para1.jsp">
<jsp:paramname="role" value="admin"/>
<jsp:param name="userName" value="czz"/>
</jsp:forward>
</body>
2)para1.jsp
<body>
<% Stringrole=request.getParameter("role");
StringuserName=request.getParameter("userName");%>
密码:<%=role%>
用户名:<%= userName%>
</body>
特点:地址栏显示的地址不变。
5.jsp:useBean动作指令传参
1)jsp:useBean指令
用于创建JavaBean对象。语法格式:
<jsp:useBean id="JavaBean的名称" scope="有效范围" class="包名.类名">
</jsp:useBean>
id属性:JavaBean实例的名字。
scope属性:JavaBean实例(对象)的有效范围,取值有四种:page、request、session、application
免费论文。默认值为page——当前页面及当前页面所包含的静态文件中有效;request——request期间有效;
session——会话期间有效;application——所有客户端共享这个JavaBean对象,直至服务器关闭。
class属性:javaBean的类名。
2)setProperty动作指令
用来设置bean对象的属性值,基本语法格式有4种:
<jsp:setProperty name="JavaBean的名称"property=""/>
<jsp:setProperty name="JavaBean的名称" property="属性名称"/>
<jsp:setProperty name="JavaBean的名称" property="属性名称" param="参数名称"/>
<jsp:setProperty name="JavaBean的名称" property="属性名称" value="属性值"/>
第一种格式:property=“”,应用这种格式要求bean属性的名字与类型要和request对象中参数名称与类型一致,
以此用bean中的属性来接收客户输入的数据,系统会根据名称来自动匹配。第二种格式:只设置其中匹配的一个
bean的属性。第三种格式:根据指定的request对象中的参数与属性匹配。
该指令可以在useBean动作指令中使用,也可在声明了useBean后使用,但不能在声明之前使用。
提示:在同一个setProperty动作指令中不能同时存在param和value参数。
3)geProperty动作指令
用来获得bean的属性并将其转换为字符串,再在JSP页面中输出。使用的语法格式如下:
<jsp:getProperty name="bean的名称" property="属性名称"/>
例子:
<%@ page language="java"import="java.util.*" pageEncoding="gb2312"%>
<jsp:useBean id="stud"class="com.czz.Stud"scope="session"></jsp:useBean>
<jsp:setPropertyproperty="sid" value="200901001" name="stud"/>
<jsp:setPropertyproperty="sname" value="张平" name="stud"/>
学号:<jsp:getPropertyname="stud" property="sid" />
姓名:<jsp:getPropertyname="stud" property="sname" />
6.其他传参方法
页面传参的方法还有很多参数传递,如JSTL中的<c:redirect>和<c:param>标签、 <c:url>标签,
Struts、JSF等框架中,也定义了各自标签满足页面传参的需要,在此不做讲述。
在实战开发中,Java Web中页面传参方法很多,各自的特点和使用范围各不相同,但是方法和原理基本一致。