struts2如何获取Request-Session-ServletContext-Response

1. 访问和添加request/session/application属性 
   如果只是往request/session/application中设置属性,可以用下面的方式 
   
Java代码  收藏代码
  1. ActionContext ctx = ActionContext.getContext();  
  2. ctx.getApplication().put("app""应用范围");//往ServletContext里放入app  
  3. ctx.getSession().put("ses""session范围");//往session里放入ses  
  4. ctx.put("req""request范围");//往request里放入req  
  5. ctx.put("names", Arrays.asList("老张""老黎""老方"));  
  6.    
   jsp页面上获取方式 
   
Java代码    收藏代码
  1. ${applicationScope.app}<br>  
  2.    ${sessionScope.ses}<br>  
  3.    ${requestScope.req}<br>  
2. struts2中如何获取httpServletRequest/HttpSession/ServletContext/HttpServletResponse对象 
方法一,通过ServletActionContext类获取:(推介使用) 
   
Java代码    收藏代码
  1.  public String rsa() throws Exception{  
  2.     HttpServletRequest request = ServletActionContext.getRequest();  
  3.     ServletContext servletContext = ServletActionContext.getServletContext();  
  4.     request.setAttribute("req""请求范围属性");  
  5.     request.getSession().setAttribute("ses""会话范围属性");  
  6.     servletContext.setAttribute("app""应用范围属性");  
  7.     HttpServletResponse response = ServletActionContext.getResponse();  
  8.     return "message";  
  9. }  
方法二,实现指定接口,由struts框架注入: 
Java代码    收藏代码
  1. import com.opensymphony.xwork2.ActionContext;  
  2. public class HelloWorldAction2 implements ServletContextAware,ServletRequestAware,ServletResponseAware{  
  3.     private HttpServletRequest request ;  
  4.     private HttpServletResponse response ;  
  5.     private ServletContext servletContext ;  
  6.     public void setServletContext(ServletContext context) {  
  7.     //context对象不是应用程序传进去的,而是由struts框架自动注入的  
  8.         this.servletContext = context ;  
  9.     }  
  10.     public void setServletRequest(HttpServletRequest request) {  
  11.         this.request = request ;  
  12.     }  
  13.     public void setServletResponse(HttpServletResponse response) {  
  14.         this.response = response ;  
  15.     }  
  16. }  

你可能感兴趣的:(struts2.0)