代码分析

Posted zy12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码分析相关的知识,希望对你有一定的参考价值。

 1 @WebFilter(filterName="log"
 2 ,urlPatterns={"/*"})
 3 //创建一个LOgFilter类
 4 public class LogFilter implements Filter
 5 {
 6 //FilterConfig可用于访问Filter的配置信息
 7 private FilterConfig config;
 8 //实现初始化方法
 9 public void init(FilterConfig config)
10 {
11 this.config = config;
12 }
13 //实现销毁方法
14 public void destroy()
15 {
16 this.config = null;
17 }
18 //执行过滤的核心方法
19 public void doFilter(ServletRequest request,
20 ServletResponse response, FilterChain chain)
21 throws IOException,ServletException//创建一个doFilter 类,request参数是用于获取客户请求数据,response参数是用于发送响应数据,chain参数是过滤调用链。
22 {
23 //---------下面代码用于对用户请求执行预处理---------
24 //获取ServletContext对象,用于记录日志
25 ServletContext context = this.config.getServletContext();
26 long before = System.currentTimeMillis();//是获得当前时间距离1970-1-1 00:00:00经过的毫秒数
27 System.out.println("开始过滤...");
28 //将请求转换成HttpServletRequest请求
29 HttpServletRequest hrequest = (HttpServletRequest)request;//把request强制类型转换为HttpServletRequest对象
30 //输出提示信息
31 System.out.println("Filter已经截获到用户的请求的地址: " +
32 hrequest.getServletPath());//hrequest.getServletPath()是返回的是项目名到当前jsp文件的路径(意思就是在这个项目首页到文件的路径)
33 //Filter只是链式处理,请求依然放行到目的地址
34 chain.doFilter(request, response);//调用下一个filter。
35 //---------下面代码用于对服务器响应执行后处理---------
36 long after = System.currentTimeMillis();//是获得当前时间距离1970-1-1 00:00:00经过的毫秒数
37 //输出提示信息
38 System.out.println("过滤结束");
39 //输出提示信息
40 System.out.println("请求被定位到" + hrequest.getRequestURI() +
41 " 所花的时间为: " + (after - before));//hrequest.getRequestURI()是返回的整个URL的路径请求(意思就是返回的浏览器地址栏的整个地址)
42 }
43 }
44 复制代码

 

以上是关于代码分析的主要内容,如果未能解决你的问题,请参考以下文章

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

优化 C# 代码片段、ObservableCollection 和 AddRange

分享几个实用的代码片段(附代码例子)

分享几个实用的代码片段(附代码例子)

前端防扒代码片段

前端防扒代码片段