springboot+過濾器
阿新 • • 發佈:2020-12-26
技術標籤:springboot過濾器filterjavaspring boot
過濾器
//@WebFilter這個註解是Servlet3.0的規範,並不是Spring boot提供的。
//所以除了這個註解以外,我們還需在配置類中加另外一個註解:@ServletComponetScan,指定掃描的包。
//filter中/*是全部攔截 inteceptor中/**是全部攔截
@WebFilter(filterName = "RequestUrlFilter",urlPatterns = "/*")
public class RequestUrlFilter implements Filter {
/**
* filter物件只會建立一次,init方法也只會執行一次,在專案啟動的時候進行初始化。
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("RequestUrlFilter init...");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
String requestURI = req.getRequestURI();
System.out.println("------->請求地址:"+requestURI);
if(requestURI. contains("demo")){
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.sendRedirect("http://www.baidu.com");
}else{
filterChain.doFilter(servletRequest,servletResponse);
}
}
@Override
public void destroy() {
System.out.println("RequestUrlFilter destory...");
}
}
主配置類
@SpringBootApplication()
@ServletComponentScan("com.jarvis.msgserver.filter") //掃描過濾器
public class MsgServerApplication {
public static void main(String[] args) {
SpringApplication.run(LanjieqiApplication.class, args);
}
}