如何将Servlet筛选器仅应用于具有HTTP POST方法的请求
问题内容:
在我的应用程序中,我想应用一个过滤器,但我不希望所有请求都必须转到该过滤器。
这将是一个性能问题,因为我们已经有了其他一些过滤器。
我希望过滤器仅适用于HTTP POST请求。有什么办法吗?
问题答案:
尚无此功能。一个Filter
拥有适用于所有的HTTP方法的开销。但是,如果您的Filter
代码中包含一些逻辑,这些逻辑会产生开销,那么您不应该将该逻辑应用于不需要的HTTP方法。
这是示例代码:
public class HttpMethodFilter implements Filter
{
public void init(FilterConfig filterConfig) throws ServletException
{
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException
{
HttpServletRequest httpRequest = (HttpServletRequest) request;
if(httpRequest.getMethod().equalsIgnoreCase("POST")){
}
filterChain.doFilter(request, response);
}
public void destroy()
{
}
}