zoukankan      html  css  js  c++  java
  • 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. }
  • 相关阅读:
    按比例缩放图片,JavaScript代码
    ajax学习资料
    真正的取真实IP地址
    trac+svn+apache
    2009年的十大流行网站技术
    未能使用提供程序“RsaProtectedConfigurationProvider”进行解密
    ajax 自动保存草稿[转]
    从资源文件里加载文件(C#)
    javascript获取FCKeditor内容
    apache+php+mysql+phpadmin配置
  • 原文地址:https://www.cnblogs.com/kabi/p/5182767.html
Copyright © 2011-2022 走看看