<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 原理 ![](https://box.kancloud.cn/fd7cf72c34136698a84a6f5c70ef149e_1468x662.png) Struts2框架在運行時,請求會被StrutsPrepareAndExecuteFilter攔截,會根據請求,去 strtus.xml文件中查找到匹配的action,在action執行前,會走一些interceptor 默認執行的攔截器是struts-default.xml文件中定義的。 在默認執行的攔截器中有一個 ![](https://box.kancloud.cn/0dd38403df9c8d514fedb1fe59350106_1746x150.png) 查看一下ServletConfigInterceptor源代碼 以下是部分源代碼 ![](https://box.kancloud.cn/c9b15fb29b979517e52e5cac272d0317_1714x542.png) ServletRequestAware, 實現這個接口可以獲取HttpServletRequest ServletResponseAware ,實現這個接口可以獲取HttpServletResponse ServletContextAware 實現這個接口可以獲取ServletContext # 通過ActionContext 推薦 ~~~ // request域 => map (struts2并不推薦使用原生request域) // 不推薦 //import java.util.Map; Map<String, Object> requestScope = (Map<String, Object>) ActionContext.getContext().get("request"); // 推薦 ActionContext.getContext().put("name", "requestTom"); // session域 => map Map<String, Object> sessionScope = ActionContext.getContext().getSession(); sessionScope.put("name", "sessionTom"); // application域=>map Map<String, Object> applicationScope = ActionContext.getContext().getApplication(); applicationScope.put("name", "applicationTom"); System.out.println(ActionContext.getContext().get("name")); System.out.println(sessionScope.get("name")); System.out.println(applicationScope.get("name")); ~~~ # 通過ServletContext 不推薦 ~~~ // import javax.servlet.ServletContext; // import javax.servlet.http.HttpServletRequest; // import javax.servlet.http.HttpServletResponse; // import javax.servlet.http.HttpSession; // 不推薦 // 原生request HttpServletRequest request = ServletActionContext.getRequest(); // 原生session HttpSession session = request.getSession(); // 原生response HttpServletResponse response = ServletActionContext.getResponse(); // 原生ServletContext ServletContext servletContext = ServletActionContext.getServletContext(); ~~~ # 通過實現接口方式 想要什么就實現什么接口,ServletXXXXXAware ~~~ package domain; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.interceptor.ServletRequestAware; public class HelloAction implements ServletRequestAware { private HttpServletRequest request; public String hello() { System.out.println("原生request: " + request); return "success"; } @Override public void setServletRequest(HttpServletRequest arg0) { // TODO Auto-generated method stub this.request = arg0; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看