servlet, filter, listener, interceptor 区别

这几个概念,本来是非常基础的,平常也不会太关注。简要说明如下:

  • servlet 常规的 Java web 项目服务端程序,接受浏览器端的参数,并生成动态 web 页面返回。
  • filter 在浏览器端的请求到达 servlet 之前,执行的「过滤」操作,通常可用于字符编码,用户权限检查等。 也用于服务端的回应到达浏览器之前。
  • listener 监听服务端对象的变化(如 servlet, session 的创建和销毁等),并作出相应处理。
  • interceptor 服务端面向方面编程的拦截器。

在通常的 web 项目中,Spring 一般作为 listener 配置,Struts 2 作为 filter 配置,Struts 1 作为 servlet 配置。

参:

  1. 《servlet/filter/listener/interceptor区别与联系》by 云姐
  2. 《MVC框架比较-struts1、struts2、springMVC》 by 云姐