Listener和Filter监听器和过滤器
2018-03-11 23:21
375 查看
Listener
WEB中的监听器
WEB中的监听器的分类
一类:监听三个域对象的创建和销毁的监听器
二类:监听三个域对象的属性变更的监听器:(属性添加,移除,替换)
三类:监听HttpSession中的JavaBean的对象的状态改变的监听器
Filter
过滤器的生命周期
FilterConfig:过滤器的配置对象
FilterChain:过滤器链
Filter相关的配置
增强request中的getParameter方法
监听器的术语
事件源:指的是被监听的对象.(汽车)
监听器:值的是监听的对象.(报警器)
事件源与监听器的绑定:就是在汽车上安装报警器.
事件:指的是事件源的改变.(踹汽车一脚)—主要的功能获得事件源对象.
事件源:Servlet中的三个域对象.ServletContext,HttpSession,ServletRequest.
监听器:自定义类实现8个接口.
事件源和监听器的绑定:配置.
一类:监听三个域对象的创建和销毁的监听器:
ServletContextListener
HttpSessionListener
ServletRequestListener
二类:监听三个域对象的属性变更的监听器(属性添加,移除,替换):
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
三类:监听HttpSession中的JavaBean的状态改变(绑定,解除绑定,钝化,活化)
HttpSessionBindingListener
HttpSessionActivationListener
WEB中的监听器的使用
编写一个类实现监听器的接口:
通过配置文件配置监听器:
void contextDestroyed(ServletContextEvent sce)
void contextInitialized(ServletContextEvent sce)
ServletContext对象的创建和销毁
创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext.
销毁:服务器关闭或者项目从服务器中移除的时候.
HttpSessionListener:监听HttpSession的创建和销毁的监听器
void sessionCreated(HttpSessionEvent se)
void sessionDestroyed(HttpSessionEvent se)
HttpSession何时创建和销毁的
创建:服务器端第一次调用getSession();
销毁:
非正常关闭服务器(正常关闭session会序列化):
session过期了默认30分钟.
手动调用session.invalidate();
HttpSession的问题
访问Servlet会不会创建Session : 不会
访问JSP会不会创建Session :会.
JSP内置的九个对象中有session,但是由page标签的session属性决定是否会自动创建session对象。默认值是true。
访问html会不会创建Session :不会
ServletRequestListener:监听ServletRequest对象的创建和销毁的监听器:
void requestDestroyed(ServletContextEvent sce)
void requesttInitialized(ServletContextEvent sce)
request对象何时创建和销毁
创建:客户端向服务器发送一次请求,服务器就会创建request对象.
销毁:服务器对这次请求作出响应后就会销毁request对象.
问题
访问一个Servlet会不会创建request对象:会
访问一个JSP会不会创建request对象:会
访问一个HTML会不会创建request对象:会
HttpSessionAttributeListener:监听HttpSession中的属性变更:
ServletRequestAttributeListener:监听ServletRequest对象的属性变更的:
方法都是如下三个
void attributeAdded(ServletContextAttributeEvent scab)
void attributeRemoved(ServletContextAttributeEvent scab)
void attributeReplaced(ServletContextAttributeEvent scab)
HttpSessionBindingListener:监听HttpSession中的JavaBean的绑定和解除绑定的
void valueBound(HttpSessionBindEvent event)
void valueUnbound(HttpSessionBindEvent event)
HttpSessionActivationListener:监听HttpSession中的JavaBean的钝化和活化的.
void sessionDidActivate(HttpSessionBindEvent event); :–活化(反序列化)
void sessionWillPassivate(HttpSessionBindEvent event); :–钝化(序列化到硬盘)
优化Session
通过配置标签配置定时session序列化.
在tomcat/conf/context.xml中配置 :在tomcat中所有的虚拟主机和虚拟路径都会按照这个配置执行.
在tomcat/conf/Catalina/localhost/context.xml配置 :在tomcat中的localhost虚拟主机中的所有虚拟路径按照这个配置执行.
在当前的工程下的META-INF/context.xml配置 :当前这个工程按照配置执行.
过滤器的生命周期
过滤器的创建和销毁:
创建:服务器启动的时候.
销毁:服务器关闭的时候.
String getInitParameter(String name)
Enumeration getInitParameterNames()
ServletContext getServletContext()
doFilter(request,response); – 放行,放行到下一个过滤器中,如果没有下一个过滤器,到达目标资源
完全路径匹配 :以 / 开始 /demo4/demo1.jsp
目录匹配 :以 / 开始 以 * 结束. /* /demo1/*
扩展名匹配 :不能以 / 开始 以 * 开始. .do .action
REQUEST :默认值.
FORWARD :转发.
INCLUDE :包含.
ERROR :错误页面跳转.(全局错误页面)
增强request中的getParameter方法
继承 :控制这个类构造.
装饰者模式 :增强的类和被增强类实现相同的接口,增强的类中获得到被增强的类的引用.
缺点:接口中方法太多.可以在中间加上一个适配器类
动态代理 :被增强的类实现接口就可以.
WEB中的监听器
WEB中的监听器的分类
一类:监听三个域对象的创建和销毁的监听器
二类:监听三个域对象的属性变更的监听器:(属性添加,移除,替换)
三类:监听HttpSession中的JavaBean的对象的状态改变的监听器
Filter
过滤器的生命周期
FilterConfig:过滤器的配置对象
FilterChain:过滤器链
Filter相关的配置
增强request中的getParameter方法
Listener
监听器:就是一个Java类,用来监听其他的Java的状态的变化。监听器用来监听其他的对象的变化的,主要应用在图形化界面中比较多(GUI,Android)。监听器的术语
事件源:指的是被监听的对象.(汽车)
监听器:值的是监听的对象.(报警器)
事件源与监听器的绑定:就是在汽车上安装报警器.
事件:指的是事件源的改变.(踹汽车一脚)—主要的功能获得事件源对象.
WEB中的监听器
WEB中的监听器共有三类八种(监听三个域对象)事件源:Servlet中的三个域对象.ServletContext,HttpSession,ServletRequest.
监听器:自定义类实现8个接口.
事件源和监听器的绑定:配置.
WEB中的监听器的分类
三类八种:一类:监听三个域对象的创建和销毁的监听器:
ServletContextListener
HttpSessionListener
ServletRequestListener
二类:监听三个域对象的属性变更的监听器(属性添加,移除,替换):
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
三类:监听HttpSession中的JavaBean的状态改变(绑定,解除绑定,钝化,活化)
HttpSessionBindingListener
HttpSessionActivationListener
WEB中的监听器的使用
编写一个类实现监听器的接口:
通过配置文件配置监听器:
一类:监听三个域对象的创建和销毁的监听器
ServletContextListener:监听ServletContext对象的创建和销毁void contextDestroyed(ServletContextEvent sce)
void contextInitialized(ServletContextEvent sce)
ServletContext对象的创建和销毁
创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext.
销毁:服务器关闭或者项目从服务器中移除的时候.
HttpSessionListener:监听HttpSession的创建和销毁的监听器
void sessionCreated(HttpSessionEvent se)
void sessionDestroyed(HttpSessionEvent se)
HttpSession何时创建和销毁的
创建:服务器端第一次调用getSession();
销毁:
非正常关闭服务器(正常关闭session会序列化):
session过期了默认30分钟.
手动调用session.invalidate();
HttpSession的问题
访问Servlet会不会创建Session : 不会
访问JSP会不会创建Session :会.
JSP内置的九个对象中有session,但是由page标签的session属性决定是否会自动创建session对象。默认值是true。
访问html会不会创建Session :不会
ServletRequestListener:监听ServletRequest对象的创建和销毁的监听器:
void requestDestroyed(ServletContextEvent sce)
void requesttInitialized(ServletContextEvent sce)
request对象何时创建和销毁
创建:客户端向服务器发送一次请求,服务器就会创建request对象.
销毁:服务器对这次请求作出响应后就会销毁request对象.
问题
访问一个Servlet会不会创建request对象:会
访问一个JSP会不会创建request对象:会
访问一个HTML会不会创建request对象:会
二类:监听三个域对象的属性变更的监听器:(属性添加,移除,替换)
ServletContextAttributeListener:监听ServletContext对象的属性变更:HttpSessionAttributeListener:监听HttpSession中的属性变更:
ServletRequestAttributeListener:监听ServletRequest对象的属性变更的:
方法都是如下三个
void attributeAdded(ServletContextAttributeEvent scab)
void attributeRemoved(ServletContextAttributeEvent scab)
void attributeReplaced(ServletContextAttributeEvent scab)
三类:监听HttpSession中的JavaBean的对象的状态改变的监听器
第三类监听器很特殊,不需要进行配置的.作用在JavaBean上的监听器.JavaBean可以自己感知到在Session中的状态.HttpSessionBindingListener:监听HttpSession中的JavaBean的绑定和解除绑定的
void valueBound(HttpSessionBindEvent event)
void valueUnbound(HttpSessionBindEvent event)
HttpSessionActivationListener:监听HttpSession中的JavaBean的钝化和活化的.
void sessionDidActivate(HttpSessionBindEvent event); :–活化(反序列化)
void sessionWillPassivate(HttpSessionBindEvent event); :–钝化(序列化到硬盘)
优化Session
通过配置标签配置定时session序列化.
在tomcat/conf/context.xml中配置 :在tomcat中所有的虚拟主机和虚拟路径都会按照这个配置执行.
在tomcat/conf/Catalina/localhost/context.xml配置 :在tomcat中的localhost虚拟主机中的所有虚拟路径按照这个配置执行.
在当前的工程下的META-INF/context.xml配置 :当前这个工程按照配置执行.
Filter
过滤器Filter可以过滤从客户端向服务器发送的请求。过滤器的生命周期
过滤器的创建和销毁:
创建:服务器启动的时候.
销毁:服务器关闭的时候.
FilterConfig:过滤器的配置对象
String getFilterName()String getInitParameter(String name)
Enumeration getInitParameterNames()
ServletContext getServletContext()
FilterChain:过滤器链
过滤器链中的过滤器的执行的顺序与<filter-mapping>的配置顺序有关.
doFilter(request,response); – 放行,放行到下一个过滤器中,如果没有下一个过滤器,到达目标资源
Filter相关的配置
<url-pattern>的配置
完全路径匹配 :以 / 开始 /demo4/demo1.jsp
目录匹配 :以 / 开始 以 * 结束. /* /demo1/*
扩展名匹配 :不能以 / 开始 以 * 开始. .do .action
<servlet-name>的配置:根据Servlet的名称拦截Servlet.
<dispatcher>的配置:
REQUEST :默认值.
FORWARD :转发.
INCLUDE :包含.
ERROR :错误页面跳转.(全局错误页面)
增强request中的getParameter方法
4000
继承 :控制这个类构造.装饰者模式 :增强的类和被增强类实现相同的接口,增强的类中获得到被增强的类的引用.
缺点:接口中方法太多.可以在中间加上一个适配器类
动态代理 :被增强的类实现接口就可以.
相关文章推荐
- [置顶] 过滤器(Filter)和监听器(Listener)
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- 过滤器Filter和监听器Listener
- Filter(过滤器)、Listener(监听器)
- JavaEE Web开发之Filter和Listener(过滤器和监听器)
- 过滤器Filter与监听器Listener
- JSP 中的 Filter 过滤器和 Listener 监听器
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
- 过滤器(Filter)、监听器(Listener)学习
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- Java 反射(reflection)/注释(Annotation)/监听器(Listener)/装饰器(wrapper)/过滤器(Filter)一锅煮
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- 过滤器(Filter)监听器(Listener)
- Web中的监听器【Listener】与过滤器【Filter】 实例
- Filter(过滤器)、Listener(监听器)
- JSP对象之cookie、session、过滤器(Filter)、监听器(Listener)
- 监听器Listener与过滤器Filter
- 为springmvc设置servelet、拦截器(interceptor)、监听器(listener)、过滤器(filter),类型转换器
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别