为了账号安全,请及时绑定邮箱和手机立即绑定

jsp页面间的传参方式(小结)

标签:
Java WebApp

解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中页面传参方法很多,各自的特点和使用范围各不相同,但是方法和原理基本一致。

点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
24
获赞与收藏
840

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消