sendRedirect()和forward()方法的区别
来源:互联网 发布:交互设计师java 编辑:程序博客网 时间:2024/06/06 08:28
2.6.4 sendRedirect()和forward()方法的区别
HttpServletResponse接口的sendRedirect()方法和RequestDispatcher接口的forward()方法都可以利用另外的资源(Servlet、JSP页面或HTLM文件)来为客户端进行服务,但是这两种方法有着本质上的区别。
下面分别给出了sendRedirectt()方法和forward()方法的工作原理图,如图2-20和图2-21所示。
图2-20 sendRedirect()方法的工作原理图图2-20的交互过程如下:
① 浏览器访问Servlet1。
② Servlet1想让Servlet2为客户端服务。
③ Servlet1调用sendRedirect()方法,将客户端的请求重定向到Servlet2。
④ 浏览器访问Servlet2。
⑤ Servlet2对客户端的请求做出响应。
从图2-20中的交互过程可以看出,调用sendRedirect()方法,实际上是告诉浏览器Servlet2所在的位置,让浏览器重新访问Servlet2。调用sendRedirect()方法,会在响应中设置Location响应报头。要注意的是,这个过程对于用户来说是透明的,浏览器会自动完成新的访问。从图2-14浏览器的地址栏中,可以看到,显示的URL是重定向之后的URL。
图2-21 forward()方法的工作原理图图2-21的交互过程如下:
① 浏览器访问Servlet1。
② Servlet1想让Servlet2对客户端的请求进行响应,于是调用forward()方法,将请求转发给Servlet2进行处理。
③ Servlet2对请求做出响应。
从图2-21中的交互过程可以看出,调用forward()方法,对浏览器来说是透明的,浏览器并不知道为其服务的Servlet已经换成Servlet2了,它只知道发出了一个请求,获得了一个响应。从图2-18和图2-19浏览器的地址栏中,可以看到,显示的URL始终是原始请求的URL。
sendRedirect()方法和forward()方法还有一个区别,那就是sendRedirect()方法不但可以在位于同一主机上的不同Web应用程序之间进行重定向,而且可以将客户端重定向到其他服务器上的Web应用程序资源。
- sendRedirect()和forward()方法的区别
- sendRedirect()和forward()方法的区别
- sendRedirect()和forward()方法的区别
- forward和sendRedirect的区别
- forward和sendRedirect的区别
- forward和sendRedirect的区别
- sendredirect()和forward()的区别
- forward和sendRedirect的区别
- sendRedirect和forward的区别
- sendRedirect 和 forward 的区别
- SendRedirect和forward的区别
- sendRedirect()和forward的区别
- forward()和sendRedirect()的区别
- sendredirect()和forward()的区别
- forward和sendRedirect的区别
- sendredirect()和forward()的区别
- sendredirect()和forward()的区别
- sendRedirect和forward的区别
- 正则表达式
- SCI/ISTP和EI论文检索号IDS number和收录号查询方法
- Open Inventor-Coin3D开发环境
- CSDN
- 三层架构和MVC
- sendRedirect()和forward()方法的区别
- 与win7管理员权限有关的问题
- powerdesigner生成数据库或反向工程中出现的问题
- myeclipse8.x安装svn插件
- 【转】SQL和数据库的规范化(Normalization)
- pentaho学习小结
- jsp内置对象为什么可以直接使用?
- 有关MyEclipse7.0的插件集成和优化(转载)
- MySQL远程连接设置(转载)