static ServletContext getServletContext():取得Web应用的ServletCo

时间:2022-03-19 05:59:34


  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东西。