Java三大器 Filter Listener Servlet学习
-
Servlet
- Servlet三大作用域对象
HttpServletRequest(request) - HttpSession(session) - ServletContext(application)
一般用request来传递java的值到页面 用session保存用户的信息 servletContext计数
Filter:过滤器
: web服务器管理的所有web资源 如Jsp Servlet 图片
servlet每次调用service都先调用filter的doFilter
request response提前过滤掉一些信息
作用
- 调用目标资源之前执行doFilter doFilter判断是否调用目标资源 面向切面思想
-
Listener:监听器
- web应用的启动而启动初始化一些内容 如一些参数或一些固定的对象
作用
- 统计当前系统在线数量
- 自定义session扫描器
-
Interceptor:拦截器
- 类似于Filter Action每次调用service都先调用Interceptor
区别:
基于Java反射机制来实现,过滤器是基于函数回调来实现
不依赖servlet容器,过滤器依赖于servlet容器
拦截器只对Action起作用,过滤器可以对所有请求起作用
拦截器可以访问Action上下文和值栈中的对象,过滤器不能
在action的生命周期中,拦截器可以多次调用,过滤器只能在容器初始化时调用一次
作用
- java的拦截器主要是用在框架上 如 Hibernate Spring Struts2 面向切面思想