您的位置:首页 > 编程语言 > Java开发

java web中jsp与servlet之间的跳转和传递参数

2012-04-26 21:03 239 查看

java web中jsp与servlet之间的跳转和传递参数

一、jsp跳转到servlet并传递参数:

在jsp中使用下列两种方式跳转到servlet
a> <jsp:forward page=“servlet的url-parrten”>(此时可以传递参数,也可以传递属性值)
1.通过page属性来传递参数值
在doXX()方法中使用request.getParameter("name")获取参数值
2.通过<jsp:param name=" " value=" ">来传递参数值
在doXX()方法中使用request.getParameter("name")获取参数值
3.在跳转之前设置属性-属性值的话,可以将属性-属性值传递到servlet中。
如在jsp中使用:<%request.setAttribute("name","liuanxin");%> 或者<%session.setAttribute("name","liuanxin");%>
然后:<jsp:forward page=“servlet的url-parrten”>
在servlet中使用:req.getAttribute("name") 或者session.getAttribute("name")便可以将属性值取出。
注意:因为使用forward跳转,jsp的request范围是servlet的request范围的子集。
b> response.sendRedirect(“servlet的url-parrten”)(此方法也可以传递参数,但不能传递属性值)
1.通过属性来传参数值
在doXX()方法中使用request.getParameter("name")获取参数值
2.在跳转之前设置属性-属性值的话,不能将属性-属性值传递到servlet中
注意:因为使用response.sendRedirect(" ")跳转,jsp和servlet的request不是同一个,所以不能用来传递属性值。
c> 通过浏览器地址栏来传参数值
在doXX()方法中使用request.getParameter("name")获取参数值。
二、servlet跳转到jsp[b]并传递参数:[/b]
在servlet的doXX()方法中调用下列语句跳转到jsp
a>resp.sendRedirect(req.getContextPath()+“/ ……” );(此时可以传递参数,但不能传递属性值)
1.通过属性来传递参数值
在jsp中使用request.getParameter("name")获取参数值。
注意: req.getContextPath()取出的是 /工程名,而http://127.0.0.1是自动添加的。
2.在跳转之前设置属性-属性值的话,不能将属性-属性值传递到jsp中
注意:因为使用response.sendRedirect(" ")跳转,jsp和servlet的request不是同一个,所以不能用来传递属性值。

b>this.getServletConfig().getServletContext.getRequestDipatcher(“/ ……”).forward(req,resp)
注意:此方法不能传参,但是能够传递属性值
1.在跳转之前设置属性-属性值的话,可以将属性-属性值传递到jsp中。
如在servlet中使用:req.setAttribute("name","liuanxin");%> 或者session.setAttribute("name","liuanxin");
然后:this.getServletContext.getRequestDipatcher(“/……”).forward(req,resp)
在servlet中使用:req.getAttribute("name") 或者session.getAttribute("name")便可以将属性值取出。
注意:因为使用forward跳转,servlet的request范围是jsp的request范围的子集。
c>this.getServletContext.getRequestDipatcher(“/……”).forward(req,resp)
注意:此方法不能传参,但是能够传递属性值
1.在跳转之前设置属性-属性值的话,可以将属性-属性值传递到jsp中。
如在servlet中使用:req.setAttribute("name","liuanxin");%> 或者session.setAttribute("name","liuanxin");
然后:this.getServletContext.getRequestDipatcher(“/……”).forward(req,resp)
在servlet中使用:req.getAttribute("name") 或者session.getAttribute("name")便可以将属性值取出。
注意:因为使用forward跳转,servlet的request范围是jsp的request范围的子集。
以上的a>、b>、c>中的“/”的后面跟上jsp页面所在的文件夹及.jsp文件。且“/”必须写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: