简述Struts2中Redirect和Dispatcher的区别
2014-03-02 21:22
323 查看
Redirect 把一个 HTTP 返回码(譬如 SUCCESS)以及返回的页面位置一起重新发给 Web
服务器,然后由 Web 服务器产生一个新的 HTTP 请求,就会产生一个新的线程,
保存在原来 Action 执行的线程中的数据,就无法访问,所以无法显示出“hello world!” ;
而 Dispatcher 则不同,它只是发出内部的资源请求,只需要一个 HTTP 请求,
就可以为浏览器生成视图, 它的操作都是在一个线程中完成的。如果 result 需要包含
Action 的数据,那么 redirect 不是一个可行的方法。因为新的 HTTP请求是在
Servlet 容器的新的线程中处理的,那么 ActionContext 中的所有状态都不会存在。
下 图 展示了这两种 Result 类型的执行过程,可进一步了解他们的差别。
服务器,然后由 Web 服务器产生一个新的 HTTP 请求,就会产生一个新的线程,
保存在原来 Action 执行的线程中的数据,就无法访问,所以无法显示出“hello world!” ;
而 Dispatcher 则不同,它只是发出内部的资源请求,只需要一个 HTTP 请求,
就可以为浏览器生成视图, 它的操作都是在一个线程中完成的。如果 result 需要包含
Action 的数据,那么 redirect 不是一个可行的方法。因为新的 HTTP请求是在
Servlet 容器的新的线程中处理的,那么 ActionContext 中的所有状态都不会存在。
下 图 展示了这两种 Result 类型的执行过程,可进一步了解他们的差别。
相关文章推荐
- Struts2的dispatcher,chain,redirect和redirectAction的区别
- Struts2中dispatcher与redirect的区别
- Struts2的dispatcher chain redirect和redirectAction的区别
- Struts2的dispatcher chain redirect和redirectAction的区别
- Struts2的dispatcher chain redirect和redirectAction的区别
- struts2中chain、redirect和redirectAction的区别
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 result type=(chain、dispatcher、redirect、redirect-action)
- Struts2中result的type其中redirect,redirectAction,chain的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2跳转类型result type=chain/dispatcher/redirect
- struts2——(7)(①result常用结果类型(dispatcher,redirect,redirectAction)②全局result)
- 请求转发与重定向的区别(dispatcher和redirect的区别)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 result type= redirect redirectAction chain dispatcher等类型
- struts2 中chain、redirect、redirectaction的区别
- 简述request.getRequestDispatcher(url)与response.sendRedirect(url)的区别
- dispatcher、redirect和chain三种result type的使用区别
- Redirect和Dispatcher 区别
- struts2 中chain、redirect、redirectaction的区别