这篇文章主要介绍 servlet filter listener interceptor 之 知识点。博文主要从 概念,生命周期,使命介绍其区别。详情如下:

  概念 生命周期 使命
servlet servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。 servlet的生命周期始于它被装入web服务器的内存时,并在web服务器终止或重新装入servlet时结束。servlet一旦被装入web服务器,一般不会从web服务器内存中删除,直至web服务器关闭或重新装入。(1). 装入:启动服务器时加载Servlet的实例(如果你设置<load-on-startup>的值是一个大于0的数,则tomcat在启动时就会创建servlet,如果没有设置这个属性,则是第一次访问时创建);
(2). 初始化:web服务器启动时或web服务器接收到请求时,或者两者之间的某个时刻启动。初始化工作有init方法负责执行完成;(init方法只执行一次)
(3). 调用:从第一次到以后的多次访问,都是只调用doGet()或doPost()方法;
(4). 销毁:停止服务器时调用destroy()方法,销毁实例。
接受请求,相应请求
filter filter是一个可以复用的代码片段。它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。 (一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行)
(1). 启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;
(2). 每一次请求时都只调用方法doFilter()进行处理;
(3). 停止服务器时调用destroy()方法,销毁实例。
在执行servlet之前,首先执行filter程序,并为之做一些预处理工作;侧重对请求的加工处理

listener 监听器,从字面上可以看出listener主要用来监听。通过listener可以监听web服务器中某一个执行动作,并根据其要求作出相应的响应。 web.xml 的加载顺序是:context- param -> listener -> filter -> servlet 主要使命即为监听,监听web服务器中某一个执行动作,并根据其要求作出相应的响应
interceptor 在面向切面编程的,就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法,比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。 以struts的拦截器为例,加载了struts.xml以后,初始化相应拦截器。当action请求来时调用intercept方法,服务器停止销毁interceptor。 与过滤器十分相似,通过层层拦截,处理用户的请求和响应。
汇总 servlet、filter、listener是配置到web.xml中,interceptor不配置到web.xml中,struts的拦截器配置到struts.xml中。spring的拦截器配置到spring.xml中。    
       
     

最新文章

  1. 搭建一套自己实用的.net架构(2)【日志模块-log4net】
  2. Intellij IDEA 初级学习文章
  3. 深入理解kmp中的next数组
  4. Sql Server Express连接字符串
  5. 第二节 hibernate session介绍以及session常用方法介绍
  6. Servlet课程0424(二) 通过继承GenericServlet来开发Servlet
  7. ie textarea不支持maxlength textarea限制长度
  8. QtInternal 之 高效使用QString(使用QLatin1String,QStringRef,QStringBuilder,QStringMatcher等相关类)
  9. 【SSH三框架】Hibernate基金会七:许多附属业务
  10. JavaScript原型与继承
  11. 简单实用的CSS网页布局中文排版技巧
  12. [转载] FreeMarker教程
  13. dict的操作和三级菜单
  14. 设计模式学习之责任链模式(Chain of Responsibility,行为型模式)(22)
  15. mvc部分视图转换成html字符串
  16. C#导出 Excel 时, 生成 CheckBox 控件
  17. ProtocolBuffer for Objective-C 运行环境配置及使用
  18. C#常见委托のdelegate定义,Func,Action,Predicate总结
  19. (已解决)Xcode 换电脑提示 Could not attach to pid:“XXXX”错误
  20. error C4996: Function call with parameters that may be unsafe – this call relies on the caller to ch

热门文章

  1. JavaScript中BOM的重要内容总结
  2. 在windows10 Linux (centos7)中安装go golang (够浪) 并测试运行
  3. hive的两种使用方式
  4. JavaWeb_(Spring框架)Spring中的aop事务
  5. 用Ajax请求后台数据
  6. jvm 线程状态
  7. Flask-login 例子
  8. MySQL:数据库名或者数据表名包含-
  9. sed中使用变量及变量中存在特殊字符‘/’处理
  10. IDEA 好用的插件