• Struts2笔记--Action访问Servlet API



      Web应用中通常需要访问的Servlet API就是HttpServletRequest、HttpSession和ServletContext,这三个接口分别代表JSP内置对象中的request、session和application。


    1.使用Struts2提供的ActionContext类来访问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的属性名、属性值。

      eg:
      通过ActionContext设置application范围的属性

        ActionContext ctx = ActionContext.getContext();
        ctx.getApplication.put("name","aaa");

      通过ActionContext设置request范围的属性

       ctx.put("name","bbb");

    2.虽然Struts2提供了ActionContext来访问Servlet API,但这种访问不是直接获得Servlet API的实例,为了直接在Action中访问Serlvet API,struts2提供了如下几个接口

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

      ServletRequestAware:实现该接口的Action可以直接访问用户请求的HttpServletRequest实例。

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

    3.使用ServletActionContext访问Servlet API

      为了能直接访问Servlet API,Struts2还提供了一个ServletActionContext工具类,这个类包含了如下几个静态方法。

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

      static HttpServletRequest getRequest():取得Web应用的HttpServletRequest对象。

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

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

  • 相关阅读:
    Hibernate,get()和load()区别
    Hibernate,Session方法使得java对象进入持久化状态;持久化对象特征
    Hibernate,Session清理缓存时间点
    frameset子窗口获取父窗口失败原因?
    struts2,实现Ajax异步通信
    struts2-json-plugin插件实现异步通信
    Hibernate,JPA注解@ManyToMany_JoinTable
    Hibernate,JPA注解@ManyToMany
    SparkStreaming操作Kafka
    DirectStream、Stream的区别-SparkStreaming源码分析02
  • 原文地址:https://www.cnblogs.com/eleven258/p/8358007.html
Copyright © 2020-2023  润新知