Kela's Blog

                      前面的路很坎坷,但畢竟是條路.也許走過這一段就會發現,走過去就是夢想中的地方.因此堅持成為此刻唯一能做且必須去做的事情.
          posts - 9, comments - 27, trackbacks - 0, articles - 15

          # Query the request and act accordingly.
          # Block the request-and-response pair from passing any further.
          # Modify the request headers and data. You do this by providing a customized version of the request.
          # Modify the response headers and data. You do this by providing a customized version of the response.
          # Interact with external resources.
          ----------------------------------------------------------------------------------------
          web.xml filter 的配置片段,在訪問 /MyServlet_1.action 是進行過濾
            <filter>
              <filter-name>MyFilter</filter-name>
              <filter-class>com.kela.web.filters.MyFilter</filter-class>
            </filter>

            <filter-mapping>
              <filter-name>MyFilter</filter-name>
              <servlet-name>MyServlet_1</servlet-name>
            </filter-mapping>

            <servlet>
              <display-name>MyServlet_1</display-name>
              <servlet-name>MyServlet_1</servlet-name>
              <servlet-class>com.kela.web.servlets.MyServlet_1</servlet-class>
            </servlet>
           
            <servlet-mapping>
              <servlet-name>MyServlet_1</servlet-name>
              <url-pattern>/MyServlet_1.action</url-pattern>
            </servlet-mapping>
          ---------------------------------------------------------------------------------------
          MyFilter.java
          public class MyFilter implements Filter {
              private FilterConfig filterConfig = null;

              public void init(FilterConfig filterConfig) throws ServletException {
                  System.out.println("[INFO]: 創建... ...");
                  this.filterConfig = filterConfig;
              }

              public void destroy() {
                  System.out.println("[INFO]: 銷毀... ...");
                  this.filterConfig = null;
              }

              public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                                      throws IOException, ServletException {
                  if (filterConfig == null)
                      return;

                  PrintWriter out = response.getWriter();
                  CharResponseWrapper wrapper = new CharResponseWrapper((HttpServletResponse) response);
                  chain.doFilter(request, wrapper);
                  CharArrayWriter caw = new CharArrayWriter();
                  caw.write("[INFO]:撲捉的頁面輸出內容是 :" + wrapper.toString());

                  response.setContentLength(caw.toString().getBytes().length);
                  out.write(caw.toString());
                  out.close();
              }

              public class CharResponseWrapper extends HttpServletResponseWrapper {
                  private CharArrayWriter output;

                  public String toString() {
                      return output.toString();
                  }

                  public CharResponseWrapper(HttpServletResponse response) {
                      super(response);
                      output = new CharArrayWriter();
                  }

                  public PrintWriter getWriter() {
                      return new PrintWriter(output);
                  }
              }
          }

          -------------------------------------------------------------------------------
          MyServlet_1.java 的頁面輸出代碼片段
          ... ...
          out.println("I love you for ever .... ....");
          ... ...

          --------------------------------------------------------------------------------
          打印輸入結果:[INFO]:撲捉的頁面輸出內容是 :I love you for ever .... ....

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          分享到:
          主站蜘蛛池模板: 得荣县| 休宁县| 三明市| 黔西县| 天祝| 麟游县| 大宁县| 田林县| 泽普县| 阿拉善左旗| 南投市| 松江区| 突泉县| 寿宁县| 宁安市| 桦南县| 龙口市| 邮箱| 民乐县| 石屏县| 孝昌县| 大悟县| 花垣县| 东兴市| 天等县| 二连浩特市| 丰顺县| 临汾市| 南川市| 威海市| 伊吾县| 平江县| 乐清市| 贵港市| 民丰县| 乐东| 太谷县| 蓬溪县| 富平县| 马尔康县| 密云县|