Web 应用中通常需要访问的 Servlet Api 就是 HttpServletRequest 、HttpSession 和 ServletContext,这三个接口分别代表 JSP内置对象中的 request、session 和 application.
一、通过 struts 的 ActionContext 类来访问(间接性访问).
eg1:
action文件:
struts.xml文件:
jsp 页面:
二、struts 通过 ServletContextAware、ServletRequestAware、ServletResponseAware 接口直接访问.
ServletContextAware:实现该接口的 Action 可以直接访问 web应用的 ServletContext 实例.
ServletRequestAware:实现该接口的 Action 可以直接访问 用户请求的 HttpServletRequest 实例.
ServletResponseAware:实现该接口的 Action 可以直接访问 服务器响应的 HttpServletResponse 实例.
eg2:
实现步骤:实现 ServletResponseAware 接口,仅需要实现public void setServletResponse(HttpServletResponse response) 方法,该方法中有一个HttpServletResponse 参数,该参数就代表了 web 应用对客户端的响应。写法如 eg2 所示.同理,如果实现 ServletRequestAware 接口 和 ServletContextAware 接口,操作 同前面的 ServletResponseAware 操作一样.
三、struts 通过 工具类 ServletActionContext 来 访问 Servlet Api (不建议使用)
static PageContext getPageContext(): 取得 web 应用的 PageContext 对象.
static HttpServletRequest getRequest(): 取得 web 应用的 HttpServletRequest 对象.
static HttpServletResponse getResponse(): 取得 web 应用的 HttpServletResponse 对象.
static ServletContext getServletContext(): 取得 web 应用的 ServletContext 对象.