通过接口注入获取Request,session,application

来源:互联网 发布:淘宝担保交易怎么设置 编辑:程序博客网 时间:2024/05/22 06:11
 1.
  1. mport java.util.Map;   
  2.   
  3. import org.apache.struts2.interceptor.ApplicationAware;   
  4. import org.apache.struts2.interceptor.RequestAware;   
  5. import org.apache.struts2.interceptor.SessionAware;   
  6. import org.sunxin.struts2.ch03.model.User;   
  7.   
  8. import com.opensymphony.xwork2.Action;   
  9.   
  10. public class LoginAction2 implements Action,RequestAware,SessionAware,ApplicationAware   
  11. {      
  12.   private User user;   
  13.   private Map request;   
  14.   private Map session;   
  15.   private Map application;   
  16.      
  17.   public User getUser()   
  18.   {   
  19.     return user;   
  20.   }   
  21.   
  22.   public void setUser(User user)   
  23.   {   
  24.     this.user = user;   
  25.   }   
  26.   
  27.   @SuppressWarnings("unchecked")   
  28.   @Override  
  29.   public String execute() throws Exception   
  30.   {   
  31.     if("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))   
  32.     {    
  33.       //在请求中放置欢迎信息。   
  34.       request.put("greeting""欢迎您来到程序员之家");   
  35.          
  36.       //在session中保存user对象   
  37.       session.put("user", user);   
  38.          
  39.       //统计用户访问量,在application中保存用户访问量数据   
  40.       Integer count = (Integer)application.get("counter");   
  41.       if(null == count)   
  42.         count=1;   
  43.       else  
  44.         count++;   
  45.       application.put("counter", count);   
  46.          
  47.       return SUCCESS;   
  48.     }   
  49.     else  
  50.     {   
  51.       return ERROR;   
  52.     }   
  53.   }   
  54.   
  55.   @Override  
  56.   public void setRequest(Map request)   
  57.   {   
  58.     this.request = request;   
  59.   }   
  60.   
  61.   @Override  
  62.   public void setSession(Map session)   
  63.   {   
  64.     this.session = session;   
  65.   }   
  66.   
  67.   @Override  
  68.   public void setApplication(Map application)   
  69.   {   
  70.     this.application = application;   
  71.   }   
  72. }  

 

 

 

2.

  1. import javax.servlet.ServletContext;   
  2. import javax.servlet.http.HttpServletRequest;   
  3. import javax.servlet.http.HttpSession;   
  4.   
  5. import org.apache.struts2.interceptor.ServletRequestAware;   
  6. import org.apache.struts2.util.ServletContextAware;   
  7. import org.sunxin.struts2.ch03.model.User;   
  8.   
  9. import com.opensymphony.xwork2.Action;   
  10.   
  11. public class LoginAction4 implements Action, ServletRequestAware, ServletContextAware   
  12. {   
  13.   private User user;   
  14.   private HttpServletRequest request;   
  15.   private ServletContext context;   
  16.   
  17.   public User getUser()   
  18.   {   
  19.     return user;   
  20.   }   
  21.   
  22.   public void setUser(User user)   
  23.   {   
  24.     this.user = user;   
  25.   }   
  26.   
  27.   @Override  
  28.   public String execute() throws Exception   
  29.   {   
  30.     if ("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))   
  31.     {   
  32.       HttpSession session = request.getSession();   
  33.          
  34.       //在请求中放置欢迎信息。   
  35.       request.setAttribute("greeting""欢迎您来到程序员之家");   
  36.   
  37.       //在session中保存user对象   
  38.       session.setAttribute("user", user);   
  39.   
  40.       //统计用户访问量,在application中保存用户访问量数据   
  41.       Integer count = (Integer) context.getAttribute("counter");   
  42.       if (null == count)   
  43.         count = 1;   
  44.       else  
  45.         count++;   
  46.       context.setAttribute("counter", count);   
  47.   
  48.       return SUCCESS;   
  49.     }   
  50.     else  
  51.     {   
  52.       return ERROR;   
  53.     }   
  54.   }   
  55.   
  56.   @Override  
  57.   public void setServletRequest(HttpServletRequest request)   
  58.   {   
  59.     this.request = request;   
  60.   
  61.   }   
  62.   
  63.   @Override  
  64.   public void setServletContext(ServletContext context)   
  65.   {   
  66.     this.context = context;   
  67.   }   
  68. }  

 

3.

  1. import javax.servlet.ServletContext;   
  2. import javax.servlet.http.HttpServletRequest;   
  3. import javax.servlet.http.HttpSession;   
  4.   
  5. import org.apache.struts2.ServletActionContext;   
  6. import org.sunxin.struts2.ch03.model.User;   
  7.   
  8. import com.opensymphony.xwork2.Action;   
  9.   
  10. public class LoginAction3 implements Action   
  11. {      
  12.   private User user;   
  13.      
  14.   public User getUser()   
  15.   {   
  16.     return user;   
  17.   }   
  18.   
  19.   public void setUser(User user)   
  20.   {   
  21.     this.user = user;   
  22.   }   
  23.   
  24.   @Override  
  25.   public String execute() throws Exception   
  26.   {   
  27.     if("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))   
  28.     {   
  29.       HttpServletRequest request = ServletActionContext.getRequest();          
  30.       HttpSession session = request.getSession();   
  31.       ServletContext context = ServletActionContext.getServletContext();         
  32.          
  33.       /*ActionContext ctx = ActionContext.getContext();  
  34.       HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);          
  35.       HttpSession session = request.getSession();  
  36.       ServletContext context = (ServletContext)ctx.get(ServletActionContext.SERVLET_CONTEXT);*/  
  37.          
  38.       //在请求中放置欢迎信息。   
  39.       request.setAttribute("greeting""欢迎您来到程序员之家");   
  40.          
  41.       //在session中保存user对象   
  42.       session.setAttribute("user", user);   
  43.          
  44.       //统计用户访问量,在application中保存用户访问量数据   
  45.       Integer count = (Integer)context.getAttribute("counter");   
  46.       if(null == count)   
  47.         count=1;   
  48.       else  
  49.         count++;   
  50.       context.setAttribute("counter", count);   
  51.          
  52.       return SUCCESS;   
  53.     }   
  54.     else  
  55.     {   
  56.       return ERROR;   
  57.     }   
  58.   }   
  59. }  

原创粉丝点击