注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

赵启鹏的博客

lonely@boy

 
 
 

日志

 
 

过滤器&监听器  

2013-09-20 12:39:21|  分类: servlet/jsp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1 过滤器
1) 什么是过滤器
servlet规范当中定义的一种特殊的组件,可以拦截servlet容器(比如tomcat)调用的过程,并进行相应的处理。注意 拦截的是调用过程
可以有多个过滤条件 最后调用servlet
servlet过滤器拦截请求和响应 以便查看 提取和操作客户机和服务器之间交换的数据
servlet 过滤器可以检查和修改servtRequest和ServletResponse对象
Servlet过滤器可以被指定和特定的URlL关联 只有当客户请求访问该URL时 才会触发该过滤器
servlet过滤器可以被串联在一起 形成管道效应 协同修改请求和响应对象
2)编程
a 写一个java类 实现Filter接口
b 在doFilter()方法里面 实现处理逻辑
c 配置过滤器(web.xml)
3)过滤器的优先级
当有多个过滤器都满足过滤条件时 则容器依据<filter-mapping>的优先顺序来调用
4)初始化参数
a 使用<init-param>来配置初始化参数 和servlet的初始化参数配置方式一样
2 使用FilterConfig提供的
String getInitParameter(String paramname);

2 监听器
1)什么是监听器
servlet规范中定义的一种特殊的组件,用来监听servlet容器产生的事件并进行相应的处理
主要是监听容器产生的两大事件
第一类 生命周期相关的事件 指得是容器创建或者销毁request,session,servletContext时产生的事件
第二类 绑定相关的事件 指的是调用了以上对象的setAttribute,removeAttribute方法时产生的事件
2)servletContext接口
a  容器在启动的时候 会为每一个应用创建唯一的一个符合ServletContext接口的实例 一般将这个实例称之为servlet上下文。servlet上下文会一直存在 除非容器关闭或者应用被卸载
b 如何让获得servlet上下文
a GenericServlet提供的getServletContext的方法
b HttpSession提供的getServletContext方法
c ServletConfig提供的getServletContext方法
d FilterConfig提供的getServletContext方法
3)作用
a 绑定的数据可以被同一个应用的所有组件访问 并且可以随时访问 注意
reqeust,session,servlet上下文都有setAttribute,getAttribute方法 区别如下
 request session servletContext 生存时间依次增加 request对象生存时间是依次请求和响应期间 session对象时多次请求和响应期间 servlet上下文会一直存在。
一般来说 以上三个对象都可以解决绑定时的问题 应该优先使用生命周期短的
b 以上三个对象访问的范围不一样
request对象  只有同一个请求当中涉及的各个组件可以访问
session对象 同一个回话所涉及的各个组件可以访问
servletContext 同一个应用的所有组件都可以访问
访问全局初始化参数
同一个应用中 可以被servlet filter 共享的初始化参数
a 使用<context-param>来配置全局初始化参数
b 使用servletContext提供的getInitParameter(String name);
c 依据逻辑路径获得实际部署时的物理路径
String getRealPath(String path);
3) 编程
a 写一个java类 实现监听器接口
(比如 要监听session的创建和销毁 需要实现HttpSessionListener接口)
b 实现监听器接口中的方法
c 注册(web.xml).
ServletRequestListener 
ServletContextListener



  评论这张
 
阅读(8)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017