Springmvc的组件ServletContextListener

springmvc的核心内容是流程和组件,springmvc需要初始化IOC容器和DispatcherServlet请求两个上下文,其中后者是前者的扩展,这样才能使得spring各个Bean能够形成依赖注入。控制器是springmvc开发的核心内容,要知道如何获取请求参数,处理业务逻辑,然后将得到的数据通过视图解析器和视图渲染出来展现给客户。

ServletContext

ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。

request,一个用户可有多个;session,一个用户一个;
而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的,线程安全的一些信息。多个Servlet通过ServletContext对象实现数据共享。

ServletContext context = this.getServletContext();   
//存入共享的数据    
context.setAttribute("name", "haha"); 
//获取共享的数据   
String name = context.getAttribute("name"); 

ServletContextListener

1.java web容器围棋生命周期提供了ServletContextListener接口,他可以在web容器初始化和结束期执行一定的逻辑,通过它可以使得在DispatcherServlet初始化前就可以完成Spring Ioc容器的初始化,也可以在结束期完成对Spring IOC容器的销毁。初始化和销毁都是通过触发其参数ServletContextEvent事件来完成。springmvc将SpringIOC的初始化和销毁交给了ContextLoaderListener,它是一个实现了ServletContextListener的类。由于SpringIOC的初始化是一个比较耗时的操作,大部分场景下,都建议使用ContextLoaderListener在服务器启动期间完成SpringIoC的初始化。

contextInitialized(ServletContextEvent sce)

@Override
public void contextInitialized(ServletContextEvent event) {
	//通过以下方法获取ApplicationContext
	ServletContext context = event.getServletContext();
	ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
}

contextDestroyed(ServletContextEvent sce)

在调用该方法之前,容器会先销毁所有的Servlet和Filter过滤器。

这个事件类作为Web应用服务的一部分,处理Web应用的 servlet上下文(context)的变化的通知。这可以解释为,好像有个人在服务器旁不断地通知我们服务器在发生什么事件。

HttpSessionAttributeListener

attributeAdded        //在session中添加对象时触发此操作 笼统的说就是调用setAttribute这个方法时候会触发的

attributeRemoved   //修改、删除session中添加对象时触发此操作  笼统的说就是调用 removeAttribute这个方法时候会触发的

attributeReplaced   //在Session属性被重新设置时

【推荐】在web环境中,获取ApplicationContext:

ServletContext servletContext = request.getSession().getServletContext();               
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext); 

ServletRequestListener

ServletContextListener只负责监听Web容器的启动和关闭的事件。

RequestContextFilter实现ServletRequestListener监听器接口,该监听器监听HTTP请求事件,Web服务器接收的每次请求都会通知该监听器。通过配置RequestContextFilter,Spring容器与Web容器结合的更加密切。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值