[原创]请详细说一下JSP内部跳转和重定向
最近做个项目 出现了一个不解的问题在Servlet中用内部跳转和重定向出现问题 Servlet中处理了一个插入数据库的语句
系统不报错 且插入数据成功 要求插入数据成功后跳转一个成功页面
但是用内部跳转时 出现空白网页 用重定向就能显示成功的哪个网页
请问这是什么问题 虽然我出现这个问题后 都是用重定向从视觉上解决了这个问题
不过 疑惑的是 为什么用内部跳转就不会显示? 我觉得应该2种方法都应该跳转到哪个页面
又没报错 请各位详细解释一下 谢谢了 一直是个不解的问题
搜索更多相关主题的帖子:
JSP 数据库 网页 Servlet 系统
----------------解决方案--------------------------------------------------------
你说的内部跳转是什么?
----------------解决方案--------------------------------------------------------
楼主所说的内部跳转和重定向.
实际上也就是说从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问题,楼主可以运行程序,然后查看内部跳转的空白页的属性,看看路径是否是要跳转的路径.
----------------解决方案--------------------------------------------------------
楼上说的很对
----------------解决方案--------------------------------------------------------
以下是引用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问题,楼主可以运行程序,然后查看内部跳转的空白页的属性,看看路径是否是要跳转的路径.
楼主所说的内部跳转和重定向.
实际上也就是说从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问题,楼主可以运行程序,然后查看内部跳转的空白页的属性,看看路径是否是要跳转的路径.
好强...留下此帖
----------------解决方案--------------------------------------------------------
谢谢wyq03
----------------解决方案--------------------------------------------------------