1.
-
过滤器
import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; /** * @author sheng_zs@126.com * @date 2021-07-08 10:47 */ @Slf4j @Component public class TestFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.error("init()"); log.error("getFilterName: {}", filterConfig.getFilterName()); Enumeration<String> parameterNames = filterConfig.getInitParameterNames(); while (parameterNames.hasMoreElements()) { log.error("parameterNames: {}", parameterNames.nextElement()); } log.error("==================================="); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { log.error("进入了拦截器"); HttpServletRequest request = (HttpServletRequest) servletRequest; request.getParameterMap().values().forEach(e -> {if (e != null) { for (String s : e) { log.error(s); } }}); String queryString = request.getQueryString(); log.error("queryString:{}", queryString); Map<String, Object> result = new HashMap<>(); result.put("user", request.getHeader("user")); result.put("type", request.getHeader("type")); result.put("message", "信息参数有误"); servletResponse.setCharacterEncoding("utf-8"); servletResponse.setContentType("application/json; charset=utf-8"); servletResponse.getWriter().println(JSON.toJSONString(result)); // filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { log.error("destroy()"); } }
@Slf4j @Component public class TestFilter extends OncePerRequestFilter { @Override protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException { // 不过滤的方法设置 return super.shouldNotFilter(request); } @Override protected void initFilterBean() throws ServletException { // init() super.initFilterBean(); } @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { } }
-
过滤器注册
import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Collections; /** * @author sheng_zs@126.com * @date 2021-07-08 10:58 */ @Configuration public class TestFilterConfig { @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); // 设置过滤器顺序 filterRegistrationBean.setOrder(1); // 注册 Filter filterRegistrationBean.setFilter(new TestFilter()); // 设置要过滤的拦截路径 filterRegistrationBean.setUrlPatterns(Collections.singletonList("/**")); // 过滤器的名字 filterRegistrationBean.setName("testFilter"); return filterRegistrationBean; } }