struts2獲取Servlet API的兩種方法
阿新 • • 發佈:2019-01-26
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 介面可以獲取
ServletContextAware 介面可以獲取ServletContext