第一次散分!JSP/Servlet页面重定向的问题
今天用<jsp:forward 标签对页面重定向,request好像没有传递过来...
想弄明白那些重定向可以传递请求参数?
请问页面重定向的语句应用上区别在哪里?
<jsp:forward page="" />
response.sendRedirect()
RequestDispatcher.forward()
pageContext.forward()
... // 还有没有其他实现重定向的方式?
能不能用session和application重定向
问题点数:100、回复次数:16Top
1 楼dachun(达达)回复于 2005-09-15 11:23:23 得分 5
response.sendRedirect("http://");
return;Top
2 楼majy()Oo.冲天剑.oO()(为这个国家做点什么吧)回复于 2005-09-15 11:28:30 得分 0
session和application是服务器的东东,重定向个什么劲啊
Top
3 楼xiaofei7569(夏雁)回复于 2005-09-15 11:33:06 得分 0
同意楼上的。Top
4 楼caimaohua(杨白劳)回复于 2005-09-15 11:38:06 得分 10
session和application是服务器的东东,是设置变量,session是单独的,application是全局的,创建了就存在,除非消毁,否则一直存在的
Top
5 楼soulcounter(风精灵)回复于 2005-09-15 11:46:44 得分 10
重定向不影响SESSION 的,如果你想保留一些数据的话,可以把变量存在SESSION里面,然后重定向出去,再在新页面里面取出来。如果不是很严格的话,可以把SESSION理解为一个浏览器的全局变量,虽然数据是存在服务器上的。Top
6 楼xdop(鸿飞处)回复于 2005-09-15 11:52:11 得分 0
谢谢
我的问题可能问片面了,其实困惑的是页面间参数传递和共享的问题
比如,页面A根据一个动态参数,做选择,把处理交给页面B、页面C、页面D...
页面B需要原始请求的所有参数;
页面C需要某个被页面A加工过的参数;
页面D可能是个静态的,不要参数;
那么这些跳转,应该选择那一种比较合适。
值得指出的是,有时候我想用setAttribute()保存参数
而事实上pageContext、request、session、application都可以用setAttribute()又如何选用?Top
7 楼xdop(鸿飞处)回复于 2005-09-15 13:05:15 得分 0
ding 一下Top
8 楼zdsdiablo(十分钟年华老去)回复于 2005-09-15 13:08:28 得分 0
同上
=================================================================
角落里的理想
http://blog.csdn.net/zdsdiablo/
--------十分钟年华老去
=================================================================
Top
9 楼xinxiakk(特亚)回复于 2005-09-15 13:16:43 得分 5
jsp:forward page
response.sendRedirect
两种页面跳转Top
10 楼atttongmu(atttongmu)回复于 2005-09-15 13:22:15 得分 5
pageContext、request、session、application都可以用
但是它们生命周期不一样吧
懂得不多,等待高手出现。Top
11 楼LuckyBall(LuckyBall)回复于 2005-09-15 13:37:49 得分 25
response.sendRedirect()就是重定向,传递参数用“?”的方式
getServletContext().getRequestDispatcher("aaa.jsp").forward(req,res)是请求转发
传递参数request.setAttribute("aa",aa)
session,application是生命周期和作用范围的东西,与转发没什么关系Top
12 楼xdop(鸿飞处)回复于 2005-09-15 13:43:49 得分 0
to LuckyBall(LuckyBall)
getServletContext().getRequestDispatcher("aaa.jsp").forward(req,res)转发后
接收页面得到的request是不是仍然携带来自客户端的请求数据?
也就是说,不需要在第一个jsp页面中一一设置setAttribute(k,v),是吗Top
13 楼mh81_1981(梦海)回复于 2005-09-15 13:45:05 得分 40
<jsp:forward page="" />,用于jsp页面请求转发,只限于一个web应用,共享request
RequestDispatcher.forward(),用于servlet请求转发,只限于一个web应用,共享request
response.sendRedirect(),用于jsp/servlet,请求重定向,可以是不同的web应用(任意url),不共享
request
"页面A根据一个动态参数,做选择,把处理交给页面B、页面C、页面D...
页面B需要原始请求的所有参数;
页面C需要某个被页面A加工过的参数;
页面D可能是个静态的,不要参数;
那么这些跳转,应该选择那一种比较合适"=================="选择session.setAttribute吧"
pageContext、request、session、application这四者区别,网上多的是,就不说了(也是java面试常考题)
Top
14 楼xdop(鸿飞处)回复于 2005-09-15 14:22:04 得分 0
今天写个模块,传入一系列的查询参数,其中一个查询主题决定了需要选择不同的表
参考以上各位高手的意见,我使用了下列几种写法,但请求参数在后续页面中似乎没
了,难道必须把request参数一个一个setAttribute()才行?!
================================写法1======================================
<%@ page contentType="text/xml; charset=GBK" %>
<%
String pa_querysubject = xmlForm.getValue("querysubject");//取参 pageContext.forward("subject"+pa_querysubject+".jsp");
%>
================================写法2======================================
<%@ page contentType="text/xml; charset=GBK" %>
<%
String pa_querysubject = xmlForm.getValue("querysubject");
request.sendRedirect("subject"+pa_querysubject+".jsp");
%>
================================写法3======================================
<%@ page contentType="text/xml; charset=GBK" %>
<%
String pa_querysubject = xmlForm.getValue("querysubject");
%>
<jsp:forward page="<%=pa_querysubject%>">
================================写法4======================================
<%@ page contentType="text/xml; charset=GBK" %>
<%
String pa_querysubject = xmlForm.getValue("querysubject");
getServletContext().getRequestDispatcher("subject"+pa_querysubject+".jsp").forward(request,response); // 这个还没调试
%>
Top
15 楼xdy3008(IT难民营执行主席)回复于 2005-09-15 15:18:39 得分 0
servlet 用的少 帮顶 学习!!!!!!!!Top
16 楼zeq258(周二强)回复于 2005-09-15 16:57:47 得分 0
支持上边所有的~Top




