javaweb三大组件之监听器

一、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>

猜你喜欢

转载自blog.csdn.net/Hpsyche/article/details/81990000