注册 登录
编程论坛 J2EE论坛

[原创]请详细说一下JSP内部跳转和重定向

backtosong 发布于 2007-05-28 23:37, 986 次点击
最近做个项目 出现了一个不解的问题
在Servlet中用内部跳转和重定向出现问题 Servlet中处理了一个插入数据库的语句
系统不报错 且插入数据成功 要求插入数据成功后跳转一个成功页面
但是用内部跳转时 出现空白网页 用重定向就能显示成功的哪个网页
请问这是什么问题 虽然我出现这个问题后 都是用重定向从视觉上解决了这个问题
不过 疑惑的是 为什么用内部跳转就不会显示? 我觉得应该2种方法都应该跳转到哪个页面
又没报错 请各位详细解释一下 谢谢了 一直是个不解的问题
5 回复
#2
angeloc2007-05-29 09:43
你说的内部跳转是什么?
#3
wyq032007-05-29 10:52
楼主所说的内部跳转和重定向.
实际上也就是说从Servlet中跳转到jsp或下个一个Servlet.
两种跳转方式可以理解为:
(内部跳转)forward 和 (重定向)response.sendRedirect.
forward 属于HttpServletRequest接口
RequestDispatcher rd = request.getRequestDispatcher( “/servlet映射” );
rd.forward( request, response ); 是内部跳转.

response.sendRedirect('url');是重定向.
不过sendRedirect 是通过浏览器来做转向的,所以要等整个过程(页面)全部完成,进行跳转,所以一般情况下,我们要在定向后跟上
if(true)return; 来进行直接跳转.
还有就是Redirect方式会导致request携带的对象丢失.
具体说
forward共亨Request范围内的对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行.
再说说楼主的问题.
我想楼主 在 内部跳转 时,没有跳转到指定页,应该是路径问题,而非Servlet问题,楼主可以运行程序,然后查看内部跳转的空白页的属性,看看路径是否是要跳转的路径.



#4
angeloc2007-05-29 11:00
楼上说的很对
#5
beyond_p2007-05-29 16:52
以下是引用wyq03在2007-5-29 10:52:46的发言:
楼主所说的内部跳转和重定向.
实际上也就是说从Servlet中跳转到jsp或下个一个Servlet.
两种跳转方式可以理解为:
(内部跳转)forward 和 (重定向)response.sendRedirect.
forward 属于HttpServletRequest接口
RequestDispatcher rd = request.getRequestDispatcher( “/servlet映射” );
rd.forward( request, response ); 是内部跳转.

response.sendRedirect('url');是重定向.
不过sendRedirect 是通过浏览器来做转向的,所以要等整个过程(页面)全部完成,进行跳转,所以一般情况下,我们要在定向后跟上
if(true)return; 来进行直接跳转.
还有就是Redirect方式会导致request携带的对象丢失.
具体说
forward共亨Request范围内的对?而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行.
再说说楼主的问题.
我想楼主 在 内部跳转 时,没有跳转到指定页,应该是路径问题,而非Servlet问题,楼主可以运行程序,然后查看内部跳转的空白页的属性,看看路径是否是要跳转的路径.




好强...留下此帖

#6
backtosong2007-05-30 16:20
谢谢wyq03
1