过滤器-监听器
来源:互联网 发布:手机淘宝用邮箱注册 编辑:程序博客网 时间:2024/05/16 01:39
过滤器
1、Fliter
public voidinit(FliterConfig config) throws ServletException
publc voiddoFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws ServletException,IOException
public void destroy();
过滤链
web.xml
<filter>
<filter-name> </filter-name>
<filter-class> </filter-class>
<init-param>
<param-name></param-name>
<param-value></param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern> 适用路径 /jsp/ *.do
<dispatcher></dispatcher> REQUEST/FORWARD/INCLUDE/ERROR
</filter-mapping>
url-pattern和dispatcher为且关系
应用
防盗链/ 字符编码
日志记录
建立log4j.properties commons-logging
导入Lgo4J.jar等包
异常捕获
Throwable rootCase = e;
While(rootCase.getCause() != null){
rootCause = rootCause.getCause();
}
rootCase .getMessage();
rootCase.getClass().getName()
权限验证
javaweb一般适用session和cookie记录登陆及权限,Filter在servlet提交前对session和cookie校验
权限配置放置于配置文件或者数据库
内容替换
自定义response
通过继承HttpServletResponseWrapper,覆盖其中的方法getOutputStream()
和getWriter()
properties要进行Unicode编码
GZIP压缩
提升网络传输速率,适用是要判断客户浏览器是否支持GZIP自动解压
自定义response
缓冲Filter
适用于变化不大的数据,不能够适用post方式提交数据
数据更新后删除缓存,
XSLT
配置fliter时应当注意其配置的顺序,其彼此之间会产生影响
监听器
监听创建、修改、删除session/request/context等
1.
publicclass SessionListener implements HttpServletListener{
public void sessionCreated(HttpSessionEventse){
}
public void sessionDestroyed(HttpSessionEventse){
}
}
创建时服务器调用sessionCreated(),销毁时sessionDestroyed()
web.xml
<listener>
<listener-class>
packageName.className
</listener-class>
</listener>
(1)第一类接口
HttpSessionListener
sessionCreated(HttpSessionEventse)
sessionDestoryed(HttpSessionEvente)
ServletContextListener
contextInitialized(ServletContextEventevent)
contextDestoryed(ServletContextevent)
ServletRequestListener
requestInitialized(ServletRequestevent)
requestInitialized(ServletRequestevent)
分别监听session context requestc创建销毁
(2)第二类接口
用于监听session/context/request的属性变化,
接口名称为HttpSession/ServletContext/ServletRequestAttributeListener
向被监听对象添加、更新、删除属性时,分别执行
**Added() **Replaced() **Removed()
session / request / context
(3)第三类接口
监听session内的对象
HttpSessionBindingListener
当对象放到session中时执行valueBound(HttpSessionBindingEvent evnet)
当对象移除时 valueUnBound(HttpSessionBindingEvent)
HttpSessionActivationListener
服务器关闭,会将session中的内容保存到硬盘上,这个过程叫钝化
sessionWillPassivate(HttpSessionEvent)
服务器启动,会将session内容重新加载,
sessionDidActivate(HttpSessionEvent)
(4)案例
单态登陆
显示在线用户
- 过滤器、监听器
- 过滤器 监听器
- 过滤器 监听器
- 过滤器-监听器
- 过滤器-监听器
- 过滤器、监听器
- 过滤器、监听器
- 监听器/过滤器
- 过滤器、监听器 (监听器 )
- 过滤器、监听器 (过滤器)
- servlet过滤器和监听器
- java--监听器、过滤器
- servlet 过滤器 监听器
- java--监听器、过滤器
- 作用域、监听器、过滤器
- jsp 过滤器和监听器
- JavaWeb_day5-监听器和过滤器
- 过滤器,监听器,servlet
- android布局
- 深入JSP
- 构造函数
- 会话跟踪
- 百度真多多的内容
- 过滤器-监听器
- 图片和压缩包加密
- Struts1.x
- Android开发探索第一章 Activity生命周期及启动模式总结(一)
- bestcoder Round #75(前四)
- Struts 2.x
- Java\jdk1.7.0_79\bin\java.exe finished with non-zero exit value 2的错误处理
- 【翻译自mos文章】怎么检查、启用、禁用 Oracle binary的option?
- ConcurrentHashMap实现细节