Action直接访问Servlet API

虽然Struts2提供了ActionContext来访问Servlet API,但这必经不能直接获得Servlet API实例,为此Struts2提供了如下接口:

  • ServletContextAware:实现该接口的Action可以直接访问用户请求的ServletContext实例
  • ServletRequestAware:实现该接口的Action可以直接访问用户请求的HttpServletRequest实例
  • ServletResponseAware:实现该接口的Action可以直接访问用户请求的HttpServletResponse实例

为了直接访问Servlet API,struts2提供了一个ServletActionContext,这个类包含了如下一个静态方法:

  • static PageContext getPageContext():取得Web应用的PageContext对象
  • static HttpServletRequest getRequest():取得Web应用的HttpServletRequest对象
  • static HttpServletResponse getRespnse:取得Web应用的HttpServletResponse对象
  • static ServletContext getServletContext():取得Web应用的ServletContext对象

通过ServletActionContext,也可以直接在Action访问Servlet API,避免Action类需要实现XxxAware接口。但这样Action就与Servlet API直接耦合,不利于程序解耦。

posted @ 2013-08-15 23:24  黎明前的黑夜  阅读(218)  评论(0编辑  收藏  举报