|
@@ -0,0 +1,34 @@
|
|
|
+package com.sf.tomcatdemo.filter;
|
|
|
+
|
|
|
+import jakarta.servlet.*;
|
|
|
+import jakarta.servlet.http.HttpServletRequest;
|
|
|
+import jakarta.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+// 日志过滤器
|
|
|
+public class LoggingFilter implements Filter {
|
|
|
+
|
|
|
+ private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
|
|
+ throws IOException, ServletException {
|
|
|
+ // 缩小请求和响应的范围
|
|
|
+ HttpServletRequest req = (HttpServletRequest) request;
|
|
|
+ HttpServletResponse resp = (HttpServletResponse) response;
|
|
|
+ // 在请求之前和处理之后 进行日志的打印
|
|
|
+ String requestURI = req.getRequestURI();
|
|
|
+ String time = sdf.format(new Date());
|
|
|
+ System.out.println( requestURI + " : " + time );
|
|
|
+
|
|
|
+ long start = System.currentTimeMillis();
|
|
|
+ // 让请求被Servlet处理
|
|
|
+ chain.doFilter(request, response);
|
|
|
+ long end = System.currentTimeMillis();
|
|
|
+ System.out.println( requestURI + " : " + (end - start) );
|
|
|
+
|
|
|
+ }
|
|
|
+}
|