过滤器-监听器
2016-03-13 09:14
459 查看
过滤器
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)案例
单态登陆
显示在线用户
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)案例
单态登陆
显示在线用户
相关文章推荐
- JSP/PHP基于Ajax的分页功能实现
- 开发阶段Jetty运行Jsp报错且响应空白
- jsp简单实现页面之间共享信息的方法
- Apache Web让JSP“动”起来
- JSP学习经验小结分享
- JSP 多条SQL语句同时执行的方法
- 在jsp页面中响应速度提高的7种方法分享
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- JSP上传excel及excel插入至数据库的方法
- JSP中文乱码常见3个例子及其解决方法
- jsp实现将动态网页转换成静态页面的方法
- JSP避免Form重复提交的三种方案
- 纯jsp实现的倒计时动态显示效果完整代码
- JSP自定义标签入门学习
- JSP实现添加功能和分页显示实例分析
- JSP中param标签用法实例分析
- JSP实现从不同服务器上下载文件的方法
- jsp 标准标签库简析