Kela's Blog

                      前面的路很坎坷,但畢竟是條路.也許走過(guò)這一段就會(huì)發(fā)現(xiàn),走過(guò)去就是夢(mèng)想中的地方.因此堅(jiān)持成為此刻唯一能做且必須去做的事情.
          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 的配置片段,在訪問(wèn) /MyServlet_1.action 是進(jìn)行過(guò)濾
            <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]: 創(chuàng)建... ...");
                  this.filterConfig = filterConfig;
              }

              public void destroy() {
                  System.out.println("[INFO]: 銷(xiāo)毀... ...");
                  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]:撲捉的頁(yè)面輸出內(nèi)容是 :" + 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 的頁(yè)面輸出代碼片段
          ... ...
          out.println("I love you for ever .... ....");
          ... ...

          --------------------------------------------------------------------------------
          打印輸入結(jié)果:[INFO]:撲捉的頁(yè)面輸出內(nèi)容是 :I love you for ever .... ....

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          分享到:
          主站蜘蛛池模板: 蛟河市| 惠水县| 稷山县| 许昌县| 岑溪市| 江永县| 都昌县| 湖口县| 伊吾县| 定安县| 昌图县| 克拉玛依市| 邵阳县| 离岛区| 堆龙德庆县| 探索| 西乡县| 枣强县| 页游| 方山县| 深水埗区| 濉溪县| 屏边| 乐山市| 隆回县| 大兴区| 兴山县| 铜梁县| 南京市| 迭部县| 乐安县| 额敏县| 全南县| 台北县| 泰来县| 延津县| 边坝县| 出国| 河西区| 宝应县| 仪征市|