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

    package lee;

    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.annotation.*;
    import java.io.*;

    /**
    * Description:
    * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
    * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
    * <br/>This program is protected by copyright laws.
    * <br/>Program Name:
    * <br/>Date:
    * @author Yeeku.H.Lee kongyeeku@163.com
    * @version 1.0
    */

    @WebFilter(filterName="log"
    ,urlPatterns={"/*"})
    public class LogFilter implements Filter
    {
    // FilterConfig可用于访问Filter的配置信息
    private FilterConfig config;
    // 实现初始化方法
    public void init(FilterConfig config)
    {
    this.config = config;
    }
    // 实现销毁方法
    public void destroy()
    {
    this.config = null;
    }
    // 执行过滤的核心方法
    public void doFilter(ServletRequest request,
    ServletResponse response, FilterChain chain)
    throws IOException,ServletException
    {
    // ---------下面代码用于对用户请求执行预处理---------
    // 获取ServletContext对象,用于记录日志
    ServletContext context = this.config.getServletContext();
    long before = System.currentTimeMillis();
    System.out.println("开始过滤...");
    // 将请求转换成HttpServletRequest请求
    HttpServletRequest hrequest = (HttpServletRequest)request;
    // 输出提示信息
    System.out.println("Filter已经截获到用户的请求的地址: " +
    hrequest.getServletPath());
    // Filter只是链式处理,请求依然放行到目的地址
    chain.doFilter(request, response);
    // ---------下面代码用于对服务器响应执行后处理---------
    long after = System.currentTimeMillis();
    // 输出提示信息
    System.out.println("过滤结束");
    // 输出提示信息
    System.out.println("请求被定位到" + hrequest.getRequestURI() +
    " 所花的时间为: " + (after - before));
    }
    }

    复制代码

    long before = System.currentTimeMillis();

    long after = System.currentTimeMillis();

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

    HttpServletRequest hrequest = (HttpServletRequest) request;

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

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

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

  • 相关阅读:
    sqlplus时报Linux-x86_64 Error: 13: Permission denied
    thrift之TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 合并石子
  • 原文地址:https://www.cnblogs.com/yc123456/p/8650233.html
Copyright © 2011-2022 走看看