1. 程式人生 > >struts2獲取Servlet API的兩種方法

struts2獲取Servlet API的兩種方法

1.通過ServletActionContext獲取

    在Action中呼叫ServletActionContext的靜態方法來獲取:

        HttpServletRequest request  = ServletActionContext.getRequest();

        HttpServletResponse response  = ServletActionContext.getResponse();

        ServletContext servletcontext  = ServletActionContext.getServletContext();

2.通過注入的方式獲取

    Struts2框架在執行時,在struts.xml查詢匹配的action後,action執行之前,會預設執行一些interceptor,

    其中有一個servletConfig的interceptor會判斷action類是否實現了一些介面,實現了這些介面,就會將Servlet API注入到action中,如下圖所示,此時Action類中的request就獲取到了 ServletRequestAware 介面注入的request.

    

             ServletRequestAware 介面可以獲取HttpServletRequest

            ServletResponseAware 介面可以獲取

HttpServletResponse

            ServletContextAware 介面可以獲取ServletContext