dispatcher、redirect和chain三种result type的使用区别
2013-11-03 00:52
507 查看
dispatcher:用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存,它是基于服务器内部跳转的。处理流程图:
redirect:把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问,它是基于客户端跳转的,因此可以看到地址栏地址发生的变化。
所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。处理流程如下:
chain:功能与redirect的action转发类似,不过与redirection转发功能不同的是它可以将Action中的数据一直保存在同一个HTTP请求中,实现的是forward的功能(该结论待验证)。
PS:
1.一次request只有一个值栈
2.forward请求共享一个值栈,因此基于服务器端的forward请求对client端是“不可见”的,client端无法察觉出变化
end
redirect:把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问,它是基于客户端跳转的,因此可以看到地址栏地址发生的变化。
所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。处理流程如下:
chain:功能与redirect的action转发类似,不过与redirection转发功能不同的是它可以将Action中的数据一直保存在同一个HTTP请求中,实现的是forward的功能(该结论待验证)。
PS:
1.一次request只有一个值栈
2.forward请求共享一个值栈,因此基于服务器端的forward请求对client端是“不可见”的,client端无法察觉出变化
end
相关文章推荐
- dispatcher、redirect和chain三种result type的使用区别
- [转]dispatcher、redirect和chain三种result type的使用区别
- struts2 中dispatcher、redirect和chain三种result type的使用区别
- 配置文件Struts.xml <result>中type属性 redirect,redirectAction,chain的区别
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型、 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2跳转类型result type=chain/dispatcher/redirect
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-act...
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- 配置文件Struts.xml <result>中type属性 redirect,redirectAction,chain的区别
- 配置文件Struts.xml <result>中type属性 redirect,redirectAction,chain的区别
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- 配置文件Struts.xml <result>中type属性 redirect,redirectAction,chain的区别
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)_forever
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)