response.sendRedirect()的用法,能保持request 中的值吗?

raoyanting 2011-03-12 09:59:30
最近遇到了response.sendRedirect(); 和 request.getRequestDispatcher().forward(),的用法区别,用response.sendRedirect(); 不能传递 request 中的参数,用 request.getRequestDispatcher().forward(),原来jsp 中的图片等信息不能显示,这该怎么解决,请高手指教。
...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyang1991 2011-03-13
  • 打赏
  • 举报
回复
response.sendRedirect(); 不能保存
request.getRequestDispatcher().forward()是服务器端跳转,request和response对象传递,因此可以保持
humanity 2011-03-12
  • 打赏
  • 举报
回复
forward 时可以用相对于这个服务器的全路径,比如 Servlet Context 是 /app 的话,那就用 /app/toPage.jsp ,不要用相对目录,比如 toPage.jsp 这种在 /app/servlet/todo 看来它就是 /app/servlet/toPage.jsp, 而在 /app/admin/todo 看来它就是 /app/admin/toPage.jsp。这相对路径就有问题,要用/app 开头的路径。

有没注意到 forward 时是用 request 去拿东西,而 send redirect 则是用 response,背后啥差别啊。
stefli 2011-03-12
  • 打赏
  • 举报
回复
sendRedirect是二次请求,是全新的request请求,所以没有先前的数据了。你可以考虑使用?param=1¶m1=2的方式再次传递参数

forward是服务器端跳转,所以原有request的请求信息还在,所以图片的信息,你可以放到request的attribute中,再在第二个页面中使用。
chenmiaoquan2008 2011-03-12
  • 打赏
  • 举报
回复
将页面中的图片不要用相对路径就行了
在<head></head>设置一格<base href="基本路径">就可以了

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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