|
@@ -0,0 +1,33 @@
|
|
|
+package org.example;
|
|
|
+
|
|
|
+import org.springframework.core.annotation.Order;
|
|
|
+
|
|
|
+import javax.servlet.*;
|
|
|
+import javax.servlet.annotation.WebFilter;
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
+@Order(1)//多个filter的时候,该序号越小,越早执行
|
|
|
+@WebFilter(filterName = "FirstFilter", urlPatterns = "/*")//url过滤配置,并非包配置
|
|
|
+public class MyFilter implements Filter {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void init(FilterConfig filterConfig) throws ServletException {
|
|
|
+ //这里写init逻辑,该init将在服务器启动时调用
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException, IOException {
|
|
|
+ //request处理逻辑
|
|
|
+ //request在封装逻辑
|
|
|
+ //chain重新写回request和response
|
|
|
+ System.out.println("Filtered");
|
|
|
+ request.setCharacterEncoding("UTF-8");
|
|
|
+ response.setCharacterEncoding("UTF-8");
|
|
|
+ chain.doFilter(request, response);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void destroy() {
|
|
|
+ //这里写destroy逻辑,该destroy逻辑将在服务器关闭时调用
|
|
|
+ }
|
|
|
+}
|