第一次散分!JSP/Servlet页面重定向的问题

xdop 2005-09-15 11:15:16
今天用<jsp:forward 标签对页面重定向,request好像没有传递过来...
想弄明白那些重定向可以传递请求参数?
请问页面重定向的语句应用上区别在哪里?
<jsp:forward page="" />
response.sendRedirect()
RequestDispatcher.forward()
pageContext.forward()
... // 还有没有其他实现重定向的方式?

能不能用session和application重定向
...全文
333 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdop 2005-09-15
  • 打赏
  • 举报
回复
谢谢
我的问题可能问片面了,其实困惑的是页面间参数传递和共享的问题
比如,页面A根据一个动态参数,做选择,把处理交给页面B、页面C、页面D...
页面B需要原始请求的所有参数;
页面C需要某个被页面A加工过的参数;
页面D可能是个静态的,不要参数;
那么这些跳转,应该选择那一种比较合适。
值得指出的是,有时候我想用setAttribute()保存参数
而事实上pageContext、request、session、application都可以用setAttribute()又如何选用?
soulcounter 2005-09-15
  • 打赏
  • 举报
回复
重定向不影响SESSION 的,如果你想保留一些数据的话,可以把变量存在SESSION里面,然后重定向出去,再在新页面里面取出来。如果不是很严格的话,可以把SESSION理解为一个浏览器的全局变量,虽然数据是存在服务器上的。
Mark_MaoHUA 2005-09-15
  • 打赏
  • 举报
回复
session和application是服务器的东东,是设置变量,session是单独的,application是全局的,创建了就存在,除非消毁,否则一直存在的
xiaofei7569 2005-09-15
  • 打赏
  • 举报
回复
同意楼上的。
majy 2005-09-15
  • 打赏
  • 举报
回复
session和application是服务器的东东,重定向个什么劲啊
dachun 2005-09-15
  • 打赏
  • 举报
回复
response.sendRedirect("http://");
 return;
zeq258 2005-09-15
  • 打赏
  • 举报
回复
支持上边所有的~
xdy3008 2005-09-15
  • 打赏
  • 举报
回复
servlet 用的少 帮顶 学习!!!!!!!!
xdop 2005-09-15
  • 打赏
  • 举报
回复
今天写个模块,传入一系列的查询参数,其中一个查询主题决定了需要选择不同的表
参考以上各位高手的意见,我使用了下列几种写法,但请求参数在后续页面中似乎没
了,难道必须把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); // 这个还没调试
%>
mh81_1981 2005-09-15
  • 打赏
  • 举报
回复
<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面试常考题)
xdop 2005-09-15
  • 打赏
  • 举报
回复
to LuckyBall(LuckyBall)

getServletContext().getRequestDispatcher("aaa.jsp").forward(req,res)转发后
接收页面得到的request是不是仍然携带来自客户端的请求数据?

也就是说,不需要在第一个jsp页面中一一设置setAttribute(k,v),是吗
LuckyBall 2005-09-15
  • 打赏
  • 举报
回复
response.sendRedirect()就是重定向,传递参数用“?”的方式
getServletContext().getRequestDispatcher("aaa.jsp").forward(req,res)是请求转发
传递参数request.setAttribute("aa",aa)
session,application是生命周期和作用范围的东西,与转发没什么关系
atttongmu 2005-09-15
  • 打赏
  • 举报
回复
pageContext、request、session、application都可以用
但是它们生命周期不一样吧
懂得不多,等待高手出现。
xinxiakk 2005-09-15
  • 打赏
  • 举报
回复
jsp:forward page
response.sendRedirect
两种页面跳转
  • 打赏
  • 举报
回复
同上



=================================================================
角落里的理想
http://blog.csdn.net/zdsdiablo/
--------十分钟年华老去
=================================================================
xdop 2005-09-15
  • 打赏
  • 举报
回复
ding 一下

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧