zoukankan      html  css  js  c++  java
  • struts2中访问servlet API

    Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等。Struts2中提供了一个ActionContext类,Struts2的Action可以通过该类来访问Servlet API。

    ActionContext类中包含的几个常用方法:

      Object get(Object key):该方法类似于调用HttpServletRequest的getAttribute(String name)方法。

      Map getApplication:返回一个Map对象,该对象模拟了该应用的ServletContext实例。

      static ActionContext getContext():静态方法,获取系统的ActionContext实例。

      Map getParameters():获取所有的请求参数。类似于调用HttpServletRequest对象的getParameterMap()方法。

      Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。

      void setApplication(Map application):直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名、属性值。

      void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名、属性值。

    例子:

      public class TextAction implements Action{

        public String execute() throws Exception{

           ActionContext ctx=ActionContext.getContext(); //获取ActionContext实例

           Integet counter=(Integer)ctx.getApplication().get("counter");   //获取application范围的属性值

           return SUCCESS; 

                   }

           }

    虽然struts2提供了ActionContext来访问Servlet API,但这种访问不是直接获得servlet API的实例,为了在Action中访问Servlet API,struts2中还提供了以下几个接口:

    ServletContextAware:实现该接口的Action可以直接访问WEB应用的ServletContext实例。

    ServletRequestAware:实现该接口的Action可以直接访问WEB应用的HttpServletRequest实例。

    ServletResponseAware:实现该接口的Action可以直接访问服务器响应的HttpServletResponse实例。

    除此之外,为了能直接访问Servlet API,struts2还提供了一个ServletActionContext工具类,这个类包含了如下几个静态方法:

    static PageContext getPageContext():取得WEB应用的PageContext对象。

    static HttpServletRequset getRequets():取得Web应用的HttpServletRequset对象。

    static HttpServletRsponse getResponse():取得WEB应用的HttpServletResponse对象。

    static ServletContext getServletContext():取得WEB应用的ServletContext对象。

  • 相关阅读:
    leetcode链表--15、reverse-nodes-in-k-group(按照k值进行k个结点的逆序)
    4、消除重复元素--网易2017春招
    24、剑指offer--二叉树中和为某一值的路径
    leetcode链表--14、add-two-numbers(两链表相加 得到新链表)
    3、调整队形--网易2017春招
    2、赶去公司--网易2017春招
    1、双核处理--网易2017春招
    CSS3自定义滚动条样式 -webkit-scrollbar
    git安装使用
    div+css居中
  • 原文地址:https://www.cnblogs.com/ChanSS/p/5492380.html
Copyright © 2011-2022 走看看