【问题标题】:what is ContextLoaderListener and Servlet context in a web application?什么是 Web 应用程序中的 ContextLoaderListener 和 Servlet 上下文?
【发布时间】:2012-11-28 14:25:41
【问题描述】:
任何人都可以参考下面提到的来自 spring-reference 的声明来解释这一点。
如果您不想使用 Spring 的 Web MVC,但打算利用
Spring 提供的其他解决方案,您可以集成 Web MVC
使用 Spring 轻松选择您选择的框架。只需启动一个 Spring
根应用上下文通过其ContextLoaderListener,并访问
它通过其 ServletContext 属性(或 Spring 的相应帮助程序
方法)来自 Struts 或 WebWork 操作。没有“插件”
涉及,因此不需要专门的集成。
【问题讨论】:
标签:
java
spring
model-view-controller
web
【解决方案1】:
这意味着如果您不想使用 Spring MVC,请使用 ContextLoaderListener 在 ServletContext 中引导 WebApplicationContext。像这样的:
<!-- Bootstrap the root application context as usual using ContextLoaderListener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
然后使用WebApplicationContextUtils 方法getRequiredWebApplicationContext(ServletContext sc)(或其他许多方法)获取WebApplicationContext 并访问您的Spring Bean。
您可以在应用程序的任何部分执行此操作(只要您可以获得 ServletContext)。这意味着您不必将 Spring 集成到其他技术。
【解决方案2】:
servlet 上下文是 Web 应用程序目录的根目录。其他一切都相对于它给出参考。上下文加载侦听器是加载 spring 上下文的第二种方式,首先是使用调度程序 servlet。
Application Context 是由 web.xml 中定义的 ContextLoaderListener 或 ContextLoaderServlet(dispatcher-servlet) 初始化的容器