• Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)


    truts2在Action中如何访问request,session,application(即ServletContext)对象????
    方式一:与Servlet API解耦的方式
         可以使用struts2中提供的Map对象来访问HttpRequest,HttpSession和ServletContext对象,要获取这三个Map对象,可以使用com.opensymphony.xwork2.ActionContext类提供的静态方法
         ActionContext ctx=ActionContext.getContext();
        ctx.getApplication().put(“app”,”Application应用对 象”);//ServletContext放入app
        ctx.getSession().put(“ses”,”session应用对象”);
        ctx.put(“req”,”request对象”);

    ######:
    上面的三个方法,仅相当与
    request,session,applicationsetAttribute(string,object)方法。
    struts2中提供的Map对象来提供类似request,session,application内置对象的功能,这些内置对象只有内置对象的一小部分功能,它不依赖于servlet,所以是解耦合的!!!

    方式二:
    与Servlet API耦合的访问方式
         也可以直接访问Servlet环境中的HttpRequest,HttpSession和ServletContext对象。通过ServletActionContext.类提供的静态方法直接获取:

           HttpServletRequest request=ServletActionContext.getRequest();
           ServletContext context=ServletActionContext.getServletContext();
           HttpSession session=request.getSession();
           HttpServletResponse response=ServletActionContext.getResponse();

    方式三、实现相关接口
       

      1. public class BaseAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {  
      2.   
      3.     private static final long serialVersionUID = 7620009925942346125L;  
      4.       
      5.     ActionContext context = ActionContext.getContext();  
      6.     HttpServletRequest request;  
      7.     HttpServletResponse response;  
      8.     SessionMap session;  
      9.       
      10.     //获取request,response,session方式一,非IoC方式,不用实现SessionAware, ServletRequestAware, ServletResponseAware  
      11.     //ActionContext context = ActionContext.getContext();  
      12.     //HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);  
      13.     //HttpServletResponse response = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE);  
      14.     //Map session = context.getSession();  
      15.     //SessionMap session = (SessionMap) context.get(ActionContext.SESSION);  
      16.       
      17.     //获取request,response,session方式一,IoC方式,必须实现SessionAware, ServletRequestAware, ServletResponseAware  
      18.     public void setSession(Map map) {  
      19.         this.session = (SessionMap) map;  
      20.     }  
      21.     public void setServletRequest(HttpServletRequest request) {  
      22.         this.request = request;  
      23.     }  
      24.     public void setServletResponse(HttpServletResponse response) {  
      25.         this.response = response;  
      26.     }  
      27.       
      28. }
  • 相关阅读:
    模板模式创建一个poi导出功能
    vim python和golang开发环境配置
    vim快捷键
    golang聊天室
    goroutine与channels
    Redis中的GETBIT和SETBIT(转载)
    二叉树
    满二叉树与完全二叉树
    拓扑排序
    ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/kabi/p/5182767.html
Copyright © 2020-2023  润新知