本文示例源代码或素材下载
ApplicationContext是Spring的容器环境,通过ApplicationContext对象可以访问所有配置的bean。
在Web开发开发中,常常需要从JSP或者Servlet或者Action中获取ApplicationContext对象,这时候,就无法使用new关键字通过查找配置文件来实例化ApplicationContext这个对象了。Spring通过WebApplicationContextUtils可以方便实现您的需求。下面看个例子:
一、Spring2.5+Struts2环境下
1、配置web.xml,通过这个配置来获取的。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
</web-app>
2、在JSP、Servlet、Action中获取ApplicationContext
<%@ page import="lavasoft.service.TestService" %>
<%@ page import="org.springframework.context.ApplicationContext" %>
<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Simple jsp page</title></head>
<body>
<%
// ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(session.getServletContext());
TestService service = (TestService) ctx.getBean("testService");
String s = service.test();
out.print(s);
%>
</body>
</html>
二、Spring+JSP的环境
在此环境下web.xml配置会有些变化:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
</web-app>
获取的方式和上述完全一样。
分享到:
相关推荐
标题“SpringBoot之配置嵌入式Servlet容器.pdf”透露了文档的核心内容,主要讲解了在SpringBoot框架中如何配置和使用嵌入式Servlet容器。SpringBoot作为一个广泛使用的Java框架,它的一个显著优势就是能快速搭建项目...
然后在Web应用的`web.xml`中,通过`ContextLoaderListener`配置Spring上下文,使得在应用启动时Spring容器被初始化。 2. **Servlet与Spring的交互** 传统的Servlet在接收到请求后,会手动创建或查找需要的服务对象...
通常,这会在Servlet容器启动时由Spring的`ContextLoaderListener`或`DispatcherServlet`完成。如果在Spring初始化之前尝试获取Bean,可能会抛出异常。 总之,在Servlet中直接获取Spring的Bean可以帮助简化代码,...
在`web.xml`中,使用`ContextLoaderListener`来初始化Spring的WebApplicationContext,确保在Filter执行之前Spring的上下文已经被加载。配置如下: ```xml <param-name>contextConfigLocation <param-value>/...
在Spring框架中,IoC(Inversion of Control)容器是核心组件,负责管理应用程序的bean。当我们在Web环境中运行Spring应用时,IoC容器需要在Web容器(如Tomcat、Jetty等)中启动并运行。这个过程涉及到一系列的初始...
在Spring Boot 04-servlet的学习笔记中,我们将深入探讨如何配置和使用Servlet容器,特别是针对Spring Boot的集成特性。这篇笔记将涵盖以下几个关键知识点: 1. **Servlet容器简介**: Servlet容器,如Tomcat、...
在这个方法中,`ContextLoaderListener`创建了一个`ContextLoader`实例,并通过`initWebApplicationContext`方法初始化Web应用的上下文。 `ContextLoader`的核心方法是`initWebApplicationContext`,它负责根据`...
在 UserManageTest 类中,我们首先需要创建一个 Spring 的应用上下文对象 ApplicationContext,然后使用该对象来获取一个名为 oneUserInfoManage 的 bean。接着,我们可以使用该 bean 来调用 doUserLogin 方法,并将...
在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如servlet、filter、listener等。了解这些组件之间的加载顺序对于正确配置和优化...
2. **上下文配置**:`servlet-context.xml`文件是Spring Web应用的主要配置文件,其中可以定义bean,设置扫描包路径,以及配置视图解析器等。 3. **使用@ContextConfiguration注解**:对于基于Java配置的Spring ...
// 获取Servlet上下文 String rootPath = context.getRealPath("/"); // 获取根目录的物理路径 String imagePath = rootPath + "images/logo.png"; // 拼接文件路径 ``` `getRealPath("/")`返回的是Web应用的根...
8. **应用上下文**:理解Spring Boot如何初始化和加载应用上下文也是关键。这涉及到bean的生命周期,包括初始化、销毁方法,以及依赖注入等概念。 9. **属性配置**:`application.properties`或`application.yml`...
5. **ServletContext接口**:代表整个Web应用的上下文,可用于在整个应用范围内共享数据,获取应用配置信息等。 6. **ServletRequest和ServletResponse接口**:分别表示HTTP请求和响应,提供了获取请求参数、设置...
5. **ServletContext接口**: 表示整个Web应用的上下文。它允许Servlet访问全局信息,如Web应用的初始化参数、其他Servlet、资源路径等。`ServletContext`可以用来广播事件,或者在Web应用的不同组件间共享数据。 6....
10. **监听器(Listener)**:Servlet容器支持各种监听器,如`ServletContextListener`, `HttpSessionListener`等,可以在特定事件(如上下文初始化、会话创建/销毁)发生时进行回调。 11. **MVC模式**:Servlet ...
9. **Spring MVC中的Servlet**:在现代的Java Web开发中,Servlet常与Spring MVC框架结合使用,Spring MVC将请求映射、模型绑定、视图解析等工作都进行了封装,使得开发更为简洁。 通过这份"Servlet代码+说明文档...
本文将深入探讨Spring在Tomcat环境下如何初始化并创建ApplicationContext,以及Spring MVC与Spring协同工作时的应用上下文创建过程。 首先,我们关注的是在Web应用启动时的监听器注册。在`web.xml`中,我们通常会...
在上述代码中,`getRequiredWebApplicationContext(sc)`用于从Servlet上下文中获取Spring的应用上下文。`ac.getBean("mobileService")`则根据bean的ID(在Spring配置文件中定义)获取`MobileService`的实例。`dic()`...
在Web应用中,Servlet容器(如Tomcat)在Servlet实例化之前会先读取这些参数,然后传递给Servlet的`init`方法。这些参数通常与Servlet的内部逻辑或特定功能有关,比如设置Filter的拦截规则或者配置某些特定服务的...
1. **Servlet**: 可以在Servlet的init()方法中,通过ApplicationContextAware接口获取Spring上下文,然后手动从上下文中获取依赖的bean。 2. **Filter**: 同样,可以在Filter的init()方法中获取ApplicationContext...