ServletContextEvent vs. ServletContextListener

ServletContextEvent类提供有关Web应用程序Servlet上下文更改的通知。

ServletContextListener接收有关Servlet上下文更改的通知,并执行一些操作。

简而言之,每当ServletContext更改时,ServletContextEvent和ServletContextListener便会成对工作,ServletContextEvent发布一个通知,该通知由ServletContextListener接收,然后基于它执行的某些任务。

ServletContextListener接口的方法

方法描述
void contextDestroyed(ServletContextEvent e)销毁应用程序时调用。
void contextInitialized(ServletContextEvent e)在初始化应用程序时调用。

UserServlet.java

ContextLoaderListener.java

以上代码进一步优化:

问题:耦合高

 解决:抽配置文件,解耦

web.xml

ContextLoaderListener.java

  问题:耦合

解决:建一个工具类

以上只是原理分析,事实上,在Spring内部已经帮我们封装好了,Spring提供了一个监听器ContextLoaderListener封装了上述功能,该监听器内部加载Spring配置文件创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象

所以我们需要做的只有两件事:
① 在web.xml中配置ContextLoaderListener监听器(导入spring-web坐标)
② 使用WebApplicationContextUtils获得应用上下文对象ApplicationContext

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值