servlet有拦截器吗

没有。。。
■网友
filter呀,用了责任链模式
透过源码学习设计模式1-Servlet Filter和责任链模式

■网友
servlet规范里有Servlet和Filter
struts2是基于Filter实现的,springmvc是基于Servlet实现的,这两种框架都有自己实现的Interrupter
题主问的是Filter还是Interrupter
Interrupter是框架自己造的概念,Filter是servlet规范里就有的

■网友
又去查了一下,Filter与spring拦截器的区别,大家都可以做同样的事情,但拦截器配置更方便,可以基于全局或指定Controller,甚至指定方法。而Filter只能针对url进行配置,但能做的事是差不多的。
\u0026lt;?xml version="1.0" encoding="UTF-8"?\u0026gt; \u0026lt;web-app\u0026gt; \u0026lt;filter\u0026gt; \u0026lt;filter-name\u0026gt;LogFilter\u0026lt;/filter-name\u0026gt; \u0026lt;filter-class\u0026gt;com.runoob.test.LogFilter\u0026lt;/filter-class\u0026gt; \u0026lt;init-param\u0026gt; \u0026lt;param-name\u0026gt;Site\u0026lt;/param-name\u0026gt; \u0026lt;param-value\u0026gt;菜鸟教程\u0026lt;/param-value\u0026gt; \u0026lt;/init-param\u0026gt;\u0026lt;/filter\u0026gt;一个servlet Filter的例子
public class ATest implements Filter{\t@Override\tpublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {\t\t//预处理\t\tchain.doFilter(req, res);//Filter 链的执行,包括具体Servlet\t\t//后处理\t}\t@Override\tpublic void init(FilterConfig arg0) throws ServletException {\t\t}\t@Override\tpublic void destroy() {\t\t\t}}
【servlet有拦截器吗】 一个Spring MVC 拦截器
public class TestInterceptor extends HandlerInterceptorAdapter { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 请求处理完成之后 System.out.println("请求处理完成啦!"); super.afterCompletion(request, response, handler, ex); } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 处理器执行完毕之后 System.out.println("处理器执行完毕啦!"); super.postHandle(request, response, handler, modelAndView); } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 处理器实际执行之前 System.out.println("处理器执行之前!"); return super.preHandle(request, response, handler); }}
■网友
Struts2核心是通过拦截器实现,SpringMVC核心是通过servlet实现,所以他们在web.xml要分别注册为拦截器和servlet。为什么filter的知识很少,因为j2ee的filter接口设计本身就不复杂,没什么太多要说的。
■网友
你可以看看struts2,spring security


    推荐阅读