zoukankan      html  css  js  c++  java
  • 分析LogFilter

     1 package lee;
     2 
     3 import javax.servlet.*;
     4 import javax.servlet.http.*;
     5 import javax.servlet.annotation.*;
     6 
     7 import java.io.*;
     8 
     9 /**
    10  * Description:
    11  * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
    12  * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
    13  * <br/>This program is protected by copyright laws.
    14  * <br/>Program Name:
    15  * <br/>Date:
    16  * @author  Yeeku.H.Lee kongyeeku@163.com
    17  * @version  1.0
    18  */
    19 
    20 @WebFilter(filterName="log"
    21     ,urlPatterns={"/*"})
    22 public class LogFilter implements Filter
    23 {
    24     // FilterConfig可用于访问Filter的配置信息
    25     private FilterConfig config;
    26     // 实现初始化方法
    27     public void init(FilterConfig config)
    28     {
    29         this.config = config;
    30     }
    31     // 实现销毁方法
    32     public void destroy()
    33     {
    34         this.config = null;
    35     }
    36     // 执行过滤的核心方法
    37     public void doFilter(ServletRequest request,
    38         ServletResponse response, FilterChain chain)
    39         throws IOException,ServletException
    40     {
    41         // ---------下面代码用于对用户请求执行预处理---------
    42         // 获取ServletContext对象,用于记录日志
    43         ServletContext context = this.config.getServletContext();
    44         long before = System.currentTimeMillis();
    45         System.out.println("开始过滤...");
    46         // 将请求转换成HttpServletRequest请求
    47         HttpServletRequest hrequest = (HttpServletRequest)request;
    48         // 输出提示信息
    49         System.out.println("Filter已经截获到用户的请求的地址: " +
    50             hrequest.getServletPath());
    51         // Filter只是链式处理,请求依然放行到目的地址
    52         chain.doFilter(request, response);
    53         // ---------下面代码用于对服务器响应执行后处理---------
    54         long after = System.currentTimeMillis();
    55         // 输出提示信息
    56         System.out.println("过滤结束");
    57         // 输出提示信息
    58         System.out.println("请求被定位到" + hrequest.getRequestURI() +
    59             "   所花的时间为: " + (after - before));
    60     }
    61 }

    long before = System.currentTimeMillis();

    long after = System.currentTimeMillis();

    这两句代码定义了doFilter()过滤用户请求的范围。

    HttpServletRequest hrequest = (HttpServletRequest) request;

    HttpServletRequest接口是ServletRequest子接口,HttpServletRequest接口遵循http协议。将请求转换成HttpServletRequest请求。

    System.out.println("Filter 已经截获到用户的请求的地址: "  + hrequest.getSeryletPath() );

    输出提示信息,输出截获到用户的请求的地址。

  • 相关阅读:
    leetcode 347. Top K Frequent Elements
    581. Shortest Unsorted Continuous Subarray
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 217. Contains Duplicate、219. Contains Duplicate II、220. Contains Duplicate、287. Find the Duplicate Number 、442. Find All Duplicates in an Array 、448. Find All Numbers Disappeared in an Array
    leetcode 461. Hamming Distance
    leetcode 19. Remove Nth Node From End of List
    leetcode 100. Same Tree、101. Symmetric Tree
    leetcode 171. Excel Sheet Column Number
    leetcode 242. Valid Anagram
    leetcode 326. Power of Three
  • 原文地址:https://www.cnblogs.com/cxfff/p/8650160.html
Copyright © 2011-2022 走看看