struts2学习
来源:互联网 发布:linux命令大全下载 编辑:程序博客网 时间:2024/05/17 23:29
如果已经有ActionContext,则使用“actionContext.get(StrutsStatics.HTTP_REQUEST)”来获得HttpServletRequest。
在自定义的拦截器中,先获得ActionContext,再通过ActionContext来获得。
在Action中,先获得ActionContext,再通过ActionContext来获得。或者让Action实现ServletRequestAware接口,并使用ServletConfigInterceptor拦截器,这样这个拦截器就会注入HttpServletRequest。
HttpServletRequest类或request的Map
Struts2中提供了两种对request的操作:一种是Web服务器提供的HttpServletRequest类,这和传统Java Web项目中的操作request的方式相同;另一种是一个“request的Map”,即封装了HttpServletRequest的attributes的映射类,操作该Map相当于操作HttpServletRequest的attributes。之所以提供了Map的操作方式,一是方便操作,二是能方便使用Ognl在JSP标签中读取request。无论如何,这两个request是互通的。至于request的生命周期等概念,与其他的Java Web项目没有区别,本文不再详述。
使用HttpServletRequest类还是request的Map
虽然两者是互通的,但就读取request的attributes而言,使用request的Map要方便许多,并且不会暴露不必要的接口。当然,HttpServletRequest有一些request的Map没有的方法,使用这些方法时当然还是要用前者。
使用request的Map还是ActionContext:
两者都是Map,两者的生命周期都是一个请求。
传统的Java Web项目中,往往是通过request的attributes来向JSP传递值的:先在Servlet里setAttribute(),然后在JSP里getAttribute()。当然在Struts2的项目中,你仍然可以使用这个方法,然而抛弃了Struts2提供的传递功能是得不偿失的。虽然笔者没有找到官方文档说一定要用ActionContext替换request的Map,也没有发现程序中有能获得ActionContext却获得不了request的Map的地方,但在Struts2框架下,操作ActionContext要比操作request的Map更加方便。因此,笔者建议:尽量使用ActionContext而不是request的Map来传递值。
- [Struts2]Struts2学习总结
- Struts2 学习
- Struts2学习
- 学习struts2
- 学习struts2
- 学习struts2
- 学习Struts2
- Struts2学习
- struts2学习
- 学习struts2
- struts2学习
- struts2学习
- struts2学习
- struts2学习
- struts2学习
- Struts2学习
- struts2学习
- struts2学习
- HDU 猜猜谁是我 两点间距离公式
- map容器
- 猜猜谁是我
- SCU4487 king's trouble I(深搜DFS)
- [省选] [树链剖分] [BZOJ2243] [SDOI2011] 染色
- struts2学习
- 剑指offer学习笔记(Java实现)(26-30)
- 网络同步赛——猜猜谁是我
- 初始容量问题
- 算年龄
- Unity OnBecameVisible 与 OnBecameInvisible 用法
- 大话设计模式之设计模式的六大原则
- Codeforces Round #358 (Div. 2) D. Alyona and Strings dp
- (1)算法学习-递归法