javaWeb监听器

本文详细介绍了JavaWeb中的监听器概念及其应用场景,包括三大域(ServletContext、HttpSession、ServletRequest)的生命周期与属性监听器,以及如何实现和配置监听器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaWeb监听器

三大组件:Servlet Listener Filter

监听器:接口

内容由我们来实现

它需要注册,例如注册在按钮上

监听器中的方法,会在特殊事件发生时调用

观察者:

事件源:

事件

监听器

javaweb中的监听器

事件源:三大域

ServletContext

生命周期监听:ServletContextListener,它有两个方法,一个出生时调用,一个死亡调用

void contextInitialized(ServletContextEvent sre);创建ServletContext

void contextDestroyed(ServletContextEvent sce) 销毁时

属性监听:ServletContextAttributeListener,它有三个方法,一个添加属性时调用,一个替换时期调用,最后一个移除属性时调用

void attributeAdded(ServletContextAttributeEvent event)

void attributeReplaced(ServletContextAttributeEvent event)

void attributeRemoved(ServletContextAttributeEvent event)

HttpSession

生命周期监听:HttpSessionListener,它有两个方法,一个出生时调用,一个死亡调用

void sessionCreated(HttpSession se) :创建session时

void sessionDestroyed(HttpSession se) 销毁session时

属性监听:HttpSessionAttributeListener,它有三个方法,一个添加属性时调用,一个替换时期调用,最后一个移除属性时调用

void attributeAdded(HttpSessionBindingEvent event)

void attributeReplaced(HttpSessionBindingEventevent)

void attributeRemoved(HttpSessionBindingEventevent)

ServletRequest

生命周期监听: ServletRequestListener,它有两个方法,一个出生时调用,一个死亡调用

void requestInitialized(ServletRequestEvent sre) 创建request时

void requestDestroyed(ServletRequestEvent sre) 销毁request时

属性监听ServletRequestAttributeListener,它有三个方法,一个添加属性时调用,一个替换时期调用,最后一个移除属性时调用

void attributeAdded(ServletRequestAttributeEvent event)

void attributeReplaced(ServletRequestAttributeEventevent)

void attributeRemoved(ServletRequestAttributeEventevent)


创建监听器 1 需要实现监听器接口 2 需要在web.xml中配置


2事件对象:

ServletContextEvent:   ServletContext  getServletContext();

HttpSessionEvent: HttpSession getSession()

ServletRequestEvent : 

 ServletContext  getServletContext();

ServletRequest getServletRequest()

ServletContextAttributeEvent:

ServletContext  getServletContext();

String getName() 获取属性名

Object getValue() :获取属性值

HttpSessionBindingEvent:略

ServletRequestAttributeEvent :略


3 session序列化,简单来说,服务器开关,没有影响到session


4 感知监听(都与HttpSession相关)

它用来添加到javaben上,而不是添加到三大域上

不需要要web.xml注册

SessionBindingListener 使javabean实现这个接口,javabean就知道自己是否添加到session域中了

HttpSessionActicationListener 监听javabean是否和session一起钝化或活化


5 session 的钝化与活化

用户太多的情况下,session个数太多,导致内存承受不了

配置钝化参数:tomcat\conf\catalinalocalhost目录下,文件名为项目名称 

<Manger className="org.apache.catalina.session.PersistentManger" maxIdlessSwap="1">

<Store className="org.apache.catalina.session.FileStore" directory="mysession"/ > 

session钝化:保存信息到硬盘

session活化:从硬盘中取出信息

6 国际化

国际化就是可以把页面中的中文变成英文

资源文件的名称:基本名称+Locale部分+.properties ,所有的资源文件名称要相同,不同之处就是Locale部分

页面操作:

  1获取locale,这是由客户端的浏览器提供的locale

  2 创建ResourceBundle

  3 把所有的语言信息使用rb.getString("xxx")来替换

  Locale locale = request.getLocale();

  ResourceBundle rb = ResourceBundle.getBundle("res",locale);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值