web08

来源:互联网 发布:windows exp导出数据库 编辑:程序博客网 时间:2024/06/08 15:08

过滤器:


什么是过滤器:

是servlet规范中一种特殊的类,用于对servlet调用过程的拦截.


如何编写一个过滤器:

1>编写一个java类,该类必须实现Filter接口

2>重写接口中的抽象方法

3>在web.xml中配置该过滤器,让web容器了解当用户访问那些地址时需要经过该过滤器.


案例:

过滤请求中的敏感词:


Filter的优先级:

在web.xml中配置靠前的优先级越高,约先执行.


Filter的生命周期:



Filter的创建阶段:

web容器创建.服务器启动时创建,Filter对象在容器中是单例的.

Filter的初始化阶段:

web容器调用.对象创建完成后立即调用.

init(FilterConfig config)

FilterConfig可以读取web.xml中的配置信息:初始化参数:

<init-param>

<param-name></param-name>

<param-value></param-value>

</init-param


Filter对象业务的调用阶段:

doFilter(request,response,filterchain)

若调用chain.doFilter(req,resp),web容器会继续执行后续组件业务,若后续组件是filter,则执行doFilter方法,若是servlet,则执行service方法.



Filter的销毁阶段阶段:

web容器调用.在项目被移除或服务器关闭时调用destroy 方法.


过滤器的优点:

a .把在servlet中需要编写的相同的业务逻辑,封装起来,实现代码的重用,便于代码的维护.

b .实现模块功能的可插拔性,需要,配置,不需要,不配做.(编码,事物,日志.....)



监听器:

什么是监听器:

servlet规范中一种特殊的类,用于监听web容器在运行中所触发的事件,并且进行相应的事件处理.


web容器中的事件分为两大类:

1>生命周期相关事件

指的是当容器创建或销毁request sesson,servletContext这些对象时所触发的事件.


2>数据绑定事件

指的是当容器调用,request,session,servletContext对象的setAttribute() removeAttribute()等对保存的值操作时所触发的一些事件.


ServletContext:

当web容器启动时,容器为部署在当前容器中的所有应用都分别创建一个ServeltContext实例,该实例会随着应用一直存在,并且每个应用有且只有一个.


何时销毁?

应用被移除,或web容器关闭.


常用API:

setAttribute("key",value)绑定数据

getAttribute("key")获取绑定数据


如何获取ServeltContext对象:

GenericServlet提供了getServletContext()

HttpSession提供了getServeltContext();

ServletConfig提供了getServletContext();


案例:统计在线人数:

统计web容器创建session对象的个数


如何写一个监听器:

1>编写一个java类,实现相应监听器接头.

HttpSessionListener

2>重写抽象方法

3>在web.xml中配置该监听器.作用是让web容器了解系统中有这么一个监听器.



0 0
原创粉丝点击