struct2利用相关的Aware接口
Struts 2提供了Aware接口。Aware為"感知"的意思,實現(xiàn)了相關(guān)Aware接口的Action能夠感知相應的資源。Struts在實例化一個Action實例時,如果發(fā)現(xiàn)它實現(xiàn)了相應的Aware接口,會把相應的資源通過Aware接口方法注射進去。這種方式也可以叫做注射方式(IoC方式)。
Servlet API中常用對象application、request、response、Session對應的Aware接口分別為ServletContextAware、ServletRequestAware、ServletResponseAware、SessionAware。例如,下面的Action實現(xiàn)了這4種接口,能夠感知到這些對象。
package com.helloweenvsfei.struts2.action; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.util.ServletContextAware; public class ServletAwareAction extends ActionSupport implements ServletRequestAware, ServletResponseAware, SessionAware, Servlet ContextAware { private ServletContext application; // Servlet上下文 private HttpServletRequest request; // request對象 private HttpServletResponse response; // response對象 private Map session; // session對象 public void setServletRequest(HttpServletRequest request) { // request的setter方法 this.request = request; } public void setServletResponse(HttpServletResponse response) { // request的setter方法 this.response = response; } public void setSession(Map sessionValues) { // session的setter方法 this.session = sessionValues; } public void setServletContext(ServletContext application) { // servletContext的setter方法 this.application = application; } public String execute() { // 主方法 String upload = application.getRealPath("upload"); // 使用application request.getRemoteAddr(); // 使用request response.getContentType(); // 使用response session.get("account"); // 使用Session return Action.SUCCESS; }}
?實現(xiàn)了ServletRequestAware接口便會有一個setServletRequest()方法獲取request對象。實現(xiàn)了ServletResponseAware接口便會有一個setServletResponse()方法獲取response對象。不同的是SessionAware接口的setter方法是setSession()方法的參數(shù)是Map類型。該Map代表Session內(nèi)存儲的各種數(shù)據(jù)。
Aware接口其實是一種攔截器,攔截器代碼會在執(zhí)行Action之前執(zhí)行,將相關(guān)的Servlet對象設置進來
轉(zhuǎn)載于:https://www.cnblogs.com/ydymz/p/8330190.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的struct2利用相关的Aware接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Virtual DOM的简单实现
- 下一篇: 7.12固定信息认证