监听器/国际化

监听 Listener

主要用于监听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 }”>

posted @ 2016-08-22 00:11  泥猴桃\n  阅读(167)  评论(0编辑  收藏  举报