标签:
主要用于监听ServletRequest\ServletContext\HttpSession三个对象的创建、销毁、属性的变更的。
创建一个监听类:需要继承Filter.
对象部分:
ServletRequestListener request对象的创建销毁;
初始化方法获取页面请求对象无法获取,销毁方法可以获取。
Answer:初始化在tomca启动就开始了,访问是没法获取的。
HttpSessionListener session对象的创建销毁;
ServletContextListener servletContext对象的创建销毁。
由服务器创建context对象
Web.xml配置
<listener>
<listener-class>cn.qidi.ListenerDemo.Demo1</listener-class>
</listener>
属性部分:
ServletRequestAttributeListener request属性的变化:增加、删除、修改
变更之前的值如何获取?
Answer:再添加属性或者替换属性方法中传入的HttpSessionbindingevent se,通过se.getValue获得的值与se.getSession.getAttrribute区别就是,一旦修改就会触发监听机制,传入的se与创建时候的se不同,传入修改方法的是修改属性之前的se,所以通过这个se可以获得就值。但是通过se.getSession.getAttribute获得的就是新值,这个是更改后的属性值。
HttpSessionAttributeListener session 属性的变化:增加、删除、修改
ServletContextAttributeListener ServletContext 属性的变化:增加、删除、修改
案例:
退出是不是用session.removeAttribute实现?
Invalidate()
SevletContext怎么创建?
在java代码中getServleContext即可。
DeBug:
* F5 step into 单步进入 (跳入方法)
* F6 step over 单步跳过
* F7 step return 跳出方法
* F8 resume 结束调试运行程序,或者跳入下一个断点
Session特有监听器:(不用写配置文件中)
HttpSessionBindingListener 监听对象绑定到session上的事件上
创建一个对象并实现此接口,可监听到本类什么时候被添加或删除session。
HttpSessionActivationListener 监听session序列化和反序列化事件
国际化
i18n
Locale本地化:Locale.CHINA或者Locale.getDefault();还有一个e别忘了。
静态文本国际化
存储国际化显示文本的文件名:
msg_zh_CN.properties 存贮中文
msg_en_US.properties 存储英文
命名方式:基础名_语言简称_国家简称.properties
获取这些配置文件:
ResourceBundle.getBundle(“包.msg”,local).getString(“key值”);
动态文本国际化
NumberFormat.get*******(local).format(***);加上本子化
NumberFormat.get******(local).parse(***);撤销本地化
国际化标签
<fmt: />
设置本地化对象
<fmt: setLocale value=”${pageContext.request.locale}” />
设置工具类
<fmt:setBundle basename=”包.msg” var=”bundle”/>
使用方式
<fmt:message key=”” bundle=”${ bundle }”>
标签:
原文地址:http://www.cnblogs.com/core404/p/5794087.html