• Filter拦截用户请求


    下面这个Filter负责拦截所有用户的用户请求:

    1.创建Filter必须实现javax.servlet.Fileter接口。

    2.

     1 // FilterConfig可用于访问Filter的配置信息
     2     private FilterConfig config;
     3     // 实现初始化方法
     4     public void init(FilterConfig config)
     5     {
     6         this.config = config;
     7     }
     8     // 实现销毁方法
     9     public void destroy()
    10     {
    11         this.config = null;
    12     }

    destory方法用于在Filter销毁前,完成某些资源的回收。

    3.

    1 // 获取ServletContext对象,用于记录日志
    2         ServletContext context = this.config.getServletContext();
    3         long before = System.currentTimeMillis();
    4         System.out.println("开始过滤...");
    5         // 将请求转换成HttpServletRequest请求
    6         HttpServletRequest hrequest = (HttpServletRequest)request;
    7         // 输出提示信息
    8         System.out.println("Filter已经截获到用户的请求的地址: " +
    9             hrequest.getServletPath());

    上面这一段代码是对用户请求进行预处理。

    (1)currentTimeMillis方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。而且可以用这个值来构造一个Date对象。

    4.

    // Filter只是链式处理,请求依然放行到目的地址
            chain.doFilter(request, response);

    实现该方法前对用户请求进行预处理,实现后对服务器响应进行后处理。

    5.

    long after = System.currentTimeMillis();
            // 输出提示信息
            System.out.println("过滤结束");
            // 输出提示信息
            System.out.println("请求被定位到" + hrequest.getRequestURI() +
                "   所花的时间为: " + (after - before));

    对服务器响应执行后处理。

  • 相关阅读:
    Linux 系统下 “账户管理”
    gulp添加版本号解决缓存问题
    vue3.0的proxy浅析内层绑定原理
    rem用font-size布局与easyui的datagrid通用,出现table不显示
    堆与栈 | 对象深浅拷贝
    vue双向绑定原理值Object.defineProperty
    bootstrap模态框不出,只出现黑色蒙层bug
    Appdelegate 导航操作
    CLLocationManager 位置定位
    导航创建
  • 原文地址:https://www.cnblogs.com/MapleDream/p/8644229.html
Copyright © 2020-2023  润新知