Struts2笔记——与ServletAPI解耦
2015-08-27 12:11
495 查看
与ServletAPI解耦的访问方式
为了避免与 Servlet API 耦合在一起, 方便 Action 做单元测试, Struts2 对 HttpServletRequest, HttpSession 和 ServletContext 进行了封装, 构造了 3 个 Map 对象来替代这 3 个对象, 在 Action 中可以直接使用 HttpServletRequest, HttpSession, ServletContext 对应的 Map 对象来保存和读取数据.
========================================
访问request/session/application对象
方法一:通过ServletActionContext类直接获取
* ActionContext 是 Action执行的上下文对象, 在 ActionContext 中保存了 Action执行所需要的所有对象, 包括 parameters,request, session, application 等.
* 获取 HttpServletRequest 对应的 Map对象:
>public Object get(Object key): ActionContext 类中没有提供类似 getRequest() 这样的方法来获取HttpServletRequest 对应的 Map对象. 要得到HttpServletRequest 对应的 Map对象, 可以通过为 get()方法传递 “request” 参数实现
* 获取 HttpSession 对应的 Map对象:
>public Map getSession()
* 获取 ServletContext 对应的 Map对象:
>public Map getApplication()
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/K4ZMYumqPtNEdvE53n6.g9DDX5SOZcBZpySBFlmjX8A!/o/dIgBAAAAAAAA&bo=YQM6AWEDOgEDACU!)
----------------------
方法二:实现指定接口,由struts框架运行时注入:
Action 类通过可以实现某些特定的接口, 让Struts2 框架在运行时向 Action 实例注入 parameters,request, session 和 application 对应的 Map 对象:
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/n51mr9OUNdDtL23BnHfwif2ki*Vdqb3PkqxnuiQD0EQ!/o/dG4AAAAAAAAA&bo=DwNvAA8DbwADACU!)
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/y1rK2NhwsCeBCjq1THVs*s8eI2aZ6yrcHbBD0her2pg!/o/dIYBAAAAAAAA&bo=XgPTAV4D0wEDACU!)
========================================
访问request/session/application对象中的属性
为了避免与 Servlet API 耦合在一起, 方便 Action 做单元测试, Struts2 对 HttpServletRequest, HttpSession 和 ServletContext 进行了封装, 构造了 3 个 Map 对象来替代这 3 个对象, 在 Action 中可以直接使用 HttpServletRequest, HttpSession, ServletContext 对应的 Map 对象来保存和读取数据.
========================================
访问request/session/application对象
方法一:通过ServletActionContext类直接获取
* ActionContext 是 Action执行的上下文对象, 在 ActionContext 中保存了 Action执行所需要的所有对象, 包括 parameters,request, session, application 等.
* 获取 HttpServletRequest 对应的 Map对象:
>public Object get(Object key): ActionContext 类中没有提供类似 getRequest() 这样的方法来获取HttpServletRequest 对应的 Map对象. 要得到HttpServletRequest 对应的 Map对象, 可以通过为 get()方法传递 “request” 参数实现
* 获取 HttpSession 对应的 Map对象:
>public Map getSession()
* 获取 ServletContext 对应的 Map对象:
>public Map getApplication()
----------------------
方法二:实现指定接口,由struts框架运行时注入:
Action 类通过可以实现某些特定的接口, 让Struts2 框架在运行时向 Action 实例注入 parameters,request, session 和 application 对应的 Map 对象:
========================================
访问request/session/application对象中的属性
相关文章推荐
- java中volatile关键字的含义
- springMVC上传多个文件
- Struts2笔记——通配符和动态方法调用
- Struts2笔记——通配符和动态方法调用
- Struts2笔记——类型转换
- Struts2笔记——类型转换
- Java集合框架
- java的枚举类型初始
- java 集合(arraylist set map)遍历问题
- java-captcha实现验证码(二)
- import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport;这两行报错
- demo2 JAVA变量
- kafka学习(三)--java开发(基于kafka0.8版本)
- Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建
- java中四种引用类型
- MyBatis之java.lang.UnsupportedOperationException异常解决方案
- salesforce rest api 登录 | Authenticating to Salesforce using REST, OAuth 2.0 and Java
- JAVA问题总结之16-一维数组案例
- java annotation 例子
- 《Java并发编程的艺术》读书笔记(一)