大漠驼铃

置身浩瀚的沙漠,方向最为重要,希望此blog能向大漠驼铃一样,给我方向和指引。
Java,Php,Shell,Python,服务器运维,大数据,SEO, 网站开发、运维,云服务技术支持,IM服务供应商, FreeSwitch搭建,技术支持等. 技术讨论QQ群:428622099
随笔 - 238, 文章 - 3, 评论 - 117, 引用 - 0
数据加载中……

struts2中如何获取Session,HttpServletRequest,HttpServletResponse

1,How do we get access to the session?

You can obtain the session attributes by asking the ActionContext or implementing SessionAware. Implementing SessionAware is preferred.

Ask the ActionContext

 

Map attibutes = ActionContext.getContext().getSession();

 

Implement SessionAware

The session attributes are available on the ActionContext instance, which is made available via ThreadLocal. _Preferred_

  • Ensure that servlet-config Interceptor is included in the Action's stack.
    • The default stack already includes servlet-config.
  • Edit the Action so that it implements the SessionAware interface.
    • The SessionAware interface expects a setSession method. You may wish to include a companion getSession method.
  • At runtime, call getSession to obtain a Map representing the session attributes.
  • Any changes made to the session Map are reflected in the actual HttpSessionRequest. You may insert and remove session attributes as needed.
  • Map parameters = this.getSession();
To unit test a SessionAware Action, create your own Map with the pertinent session attributes and call setSession as part of the test's setUp method.


2,How can we access the HttpServletRequest

You can obtain the request by asking the ActionContext or implementing ServletRequestAware. Implementing ServletRequestAware is preferred.

Ask the ActionContext

The request is available on the ActionContext instance, which is made available via ThreadLocal.
HttpServletRequest request = ServletActionContext.getRequest();

Implement ServletRequestAware

Preferred

  • Ensure that servlet-config Interceptor is included in the Action's stack.
    • The default stack already includes servlet-config.
  • Edit the Action so that it implements the ServletRequestAware interface.
    • The ServletRequestAware interface expects a setServletRequest method. You may wish to include a companion getServletRequest method.
  • At runtime, call getServletRequest to obtain a reference to the request object.
It is more difficult to test Actions with runtime dependencies on HttpServletRequest. Only implement ServletRequestAware as a last resort. If the use case cannot be solved by one of the other servet-config interfaces (ApplicationAware, SessionAware, ParameterAware), consider whether an custom Interceptor could be used instead of Action code. (Review how servlet-config works for examples of what can be done.)


3,How can we access the HttpServletResponse

You can obtain the request by asking the ActionContext or implementing ServletResponseAware. Implementing ServletResponseAware is preferred.

Ask the ActionContext


The response is available on the ActionContext instance, which is made available via ThreadLocal.
HttpServletResponse response = ServletActionContext.getResponse();

Implement ServletResponseAware


Preferred

  • Ensure that servlet-config Interceptor is included in the Action's stack.
    • The default stack already includes servlet-config.
  • Edit the Action so that it implements the ServletResponseAware interface.
    • The ServletResponseAware interface expects a setServletResponse method. You may wish to include a companion getServletResponse method.
  • At runtime, call getServletResponse to obtain a reference to the response object.
t is more difficult to test Actions with runtime dependencies on HttpServletReponse. Only implement ServletResponseAware as a last resort. A better approach to solving a use case involving the response may be with a custom Result Type.

posted on 2009-03-29 16:40 草原上的骆驼 阅读(3757) 评论(0)  编辑  收藏 所属分类: JAVA框架


只有注册用户登录后才能发表评论。


网站导航: