一、javaweb三大组件:
Servlet、Listener、Filter
监听器: 他是一个接口,内容由我们来实现
它需要注册,例如注册在按钮上
监听器中的方法,会在特殊事件发生时被调用
二、Javaweb中的监听器(8个接口)
1.事件源:三大域
ServletContext
1.生命周期监听:ServletContextListener:它有两个方法,一个在出生时调用,一个在死亡时调用
void contextInitialized(ServletContextEvent sce)
void contextDestroyed(ServletContextEvent sce)
2.属性监听:ServletContextAttributeListener:它有三个方法,一个在添加属性时调用|替换属性|移除属性
HttpSession
3.生命周期监听:HttpSessionListener:它有两个方法,一个在出生时调用,一个在死亡时调用
void sessionCreated(HttpSessionEvent se):创建session时
void sessionDestoryed(HttpSessionEvent se):销毁session时
4.属性监听:HttpSessionAttributeListener:它有三个方法,一个在添加属性时调用|替换属性|移除属性
ServletRequest
5.生命周期监听:ServletRequestListener:它有两个方法,一个在出生时调用,一个在死亡时调用
void requestInitialize(ServletRequestEvent se)
void requestDestoryed(ServletRequestEvent se)
6.属性监听:ServletRequestAttributeListener:它有三个方法,一个在添加属性时调用|替换属性|移除属性
2. javaweb中完成编写监听器
写一个监听器类:要求必须去实现某个监听器的接口
注册,是在web.xml中配置来完成注册
事件对象
ServletContextEvent:ServletContext getServletContext
HttpSessionEvent:HttpSession getSession
ServletRequestEvent:ServletContext getServletContext
3. 感知监听(都与HttpSession相关)
它用来添加到JavaBean上,而不是添加到三大域上
这两个监听器都不需要在web.xml上注册!
7.HttpSessionBindingListener:添加到javabean上,Javabean就知道自己是否添加到session中了。
8.HttpSessionActivationListener:监听javaBean是否随session一起钝化、活化
三、国际化
1.应用程序使用ResourceBundle类来加载两个资源中文中的一个,到底加载谁,是通过给ResourceBundler的Locale来决定,
如果Locale是中文的,那么加载a文件,否则加载b文件。
2.资源文件名称的格式:基本名称+Locale部分+.properties
例如:res_zh_CN.properties,其中基本名称就是res,而zh_CN是Locale部分
必须所有的资源文件基石名称要相同,不同部分就是Locale部分
test:
//得到Locale
Locale locale=Locale.CHINA;
//得到ResourceBundle
//第一个参数是:基本名称
//第二个参数是:Locale
ResourceBundle rb=new ResourceBundle.genBundle("res",locale);
//使用ResourceBundle来获取资源信息
rb.getString("username");
rb.getString("password");.....
在jsp中代码如下:
<%
//获取当前浏览器的首选语言
Locale locale=request.getLocale();
ResourceBundle rb=ResourceBundle.getBundle("res",locale);
%>
<h1><%=rb.getString("login")%></h1>
<form>
用户名:<input type="text" name="<%=rb.getString("username")%>"/><br/>
密 码:<input type="password" name="<%=rb.getString("password")%>"/><br/>
<input type="submit" value="<%=rb.getString("login")%>"/>
</form>