想象一下,有一天你会来跨两个Servlet过滤器,一个延伸,就像这样:Servlet过滤器继承
public class MainFilter implements Filter{
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain){
.... some stuff ...
chain.doFilter(request, response);
}
}
public class FilterExtended extends MainFilter{
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain){
// Is the following code mentally ok?
if(some business condition){
{
super.doFilter(request, response, chain); // we call MainFilter.doFilter(), which as a consequence calls chain.doFilter()
return;
}
chain.doFilter(request, response); // let the request pass through
}
}
我的问题是,如果它是一个很好的做法也别想继承Servlet过滤器一样那。我无法在网上找到关于此的任何信息。
我个人认为过滤器不应该在一些可怕的类层次结构中,它们应该单独保留(这对我的大脑更容易掌握,并且更容易看到web.xml中附加的过滤器),但是我想在做任何代码更改之前了解一些其他意见。
要征求意见有可能会让您得到很长的答案,但无论如何都不能真正解决您的问题。请考虑改写你的问题,使其更具体。另外,请分享你自己的优点和缺点。 – Bex
为什么你认为过滤器的继承是错误的?他们是正常的班级。没有魔法。您应该确保的唯一事情是如何从父类处理配置注释。但在你的上面的例子中,你不要通过注释来使用配置。 –