我使用的是spring boot 1.3.3版。随着嵌入式tomcat。
对于每个Web请求,我想知道如何拦截Web请求并执行一些自定义代码,然后继续请求。
我的预感是我会覆盖一些默认的servlet bean或方法?我对此并不了解。
所以要提出具体的问题。对于每个Web请求,我将如何执行以下代码
@Override
public void someGenericWebParentRequest(Servlet servletRequest){
log.info("custom log called");
MDC.put("host-name", System.getenv("HOSTNAME")); // kibana hostname filter added
// whatever code you fancy etc :-)
return servletRequest; // continues onto web target controller
}
答案 0 :(得分:2)
您可以使用 Servlet过滤器并在 doFilter()中添加拦截请求。 要将其添加到Spring Context中,请添加 @Component。
参考此示例。
@Component
public class SecurityFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//you can intercept request and response here
System.out.println("###### security filter ");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}