filter和listener
来源:互联网 发布:mac输入法切换 编辑:程序博客网 时间:2024/06/12 01:55
Filter:过滤请求和响应
1.应用场景:
自动登陆
统一编码
2.用法:
1).编写一个java类,间接或直接实现filter接口(或者直接新建filter);
2).实现它的方法doFilter()
3).配置filter
a,注册filter<filter></filter>
b.绑定路径:既可以用<servlet-name></servlet-name>,也可以用<url-pattern></url-pattern>
url-pattern配置:
1. 精确匹配:以”/”开头,后面自定义
2. 目录匹配:以”/”开头,以”/*”结束
3. 后缀名匹配:以”*.”开头,以”*.后缀名”结束.
3.filter的生命周期:
Filter是单实例,在服务器启动的时候,服务器会创建filter对象,调用init方法完成初始化操作,每次请求来了,都会拦截请求执行业务逻辑,当服务器正常关闭,移除该项目,卸载filter之后服务器会调用destroy方法完成销毁操作.
4.filterChain过滤器链:
执行顺序与web.xml中filter-mapping的书写顺序有关,请求来的时候,将所有匹配到的filter放置在一个过滤器链中,从第一个开始执行,逻辑执行完毕放行,执行下一个filter,如果下一个filter是最后一个filter,再次放行就会到达目标资源.
5.<dispatcher></dispatcher> 是用来指明该filter拦截哪些类型的请求,类型有request,forward,include,error
<error-page></error-page>全局错误页面配置,有<error-code></error-code>和<location></location>
6.filterConfig对象:
1).获取filter的名字;
2).获取filter的配置参数;
3)获取上下文
7.装饰者模式:
1).装饰者与被装饰者要直接或间接实现同一个接口或者继承同一个类;
2).装饰者中要有被装饰者的引用;
3).如果需要对方法增强就需要重写;
4).如果不需要对方法增强,就调用原来的方法就行.
Listener:监听器
1. listener的作用:
a) 可以监听三个域对象(HttpServletRequest,HttpSession,servletContext)的生命周期;
b) 可以监听三个域对象的属性变化;
c) 可以监听JavaBean在httpSession中的变化.
i. 绑定:往session中放置JavaBean(HttpSessionBindingListener)
ii. 解绑:从session中移除JavaBean’ (HttpSessionBindingListener)
iii. (HttpSessionActivationListener)用来监听JavaBean在session中的钝化和活化
2. 编写listener
a) 编写一个Java类(也可以直接新建listener),直接或间接实现servletContextListener
b) 实现其中的方法(方法随实现接口的变化而变化)
- Listener 、Filter 和 Interceptor
- filter和listener
- Servlet、Filter和Listener
- Filter和Listener
- Servlet、Filter和Listener
- Servlet、Filter和Listener
- Filter 和 Listener小结
- 11Listener和Filter
- Servlet-Filter和Listener
- JavaEE Filter和Listener
- Listener和Filter
- filter和listener
- servlet中的Listener和Filter
- Filter和listener的区别
- tomcat中的filter和listener
- 浅谈Servlet、Filter和Listener
- Servlet、Filter和Listener概述
- 过滤器filter和监听器listener
- JS(JQ)实现table表格固定表头且表头可以随横向滚动而滚动
- 试题1-3
- ESXi下Ubuntu 14.04升级后卡界面的解决
- 使用hibernate操作数据库
- 洛谷 1119 灾后重建 生成树+Floyd 解题报告
- filter和listener
- 实验一(jdbc连接数据库)
- 验证mysql的自动提交事务和手动提交事务(java版)
- javaweb_day7(JDBC)prepareStatement防止sql注入
- 函数指针
- python数据可视化利器--pyecharts
- GridControl 列中显示图片
- 五大常用算法之二:动态规划算法
- 多渠道打包,同一套代码,多包名APK