`
lichdb
  • 浏览: 39279 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

spring在servlet容器中获取上下文

阅读更多

 本文示例源代码或素材下载

  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>

 

  获取的方式和上述完全一样。

分享到:
评论
1 楼 namelujl 2011-08-25  
学习了....http://www.kcto.net/nvg/nvg1.htm

相关推荐

    SpringBoot之配置嵌入式Servlet容器.pdf

    标题“SpringBoot之配置嵌入式Servlet容器.pdf”透露了文档的核心内容,主要讲解了在SpringBoot框架中如何配置和使用嵌入式Servlet容器。SpringBoot作为一个广泛使用的Java框架,它的一个显著优势就是能快速搭建项目...

    servlet与spring整合例子

    然后在Web应用的`web.xml`中,通过`ContextLoaderListener`配置Spring上下文,使得在应用启动时Spring容器被初始化。 2. **Servlet与Spring的交互** 传统的Servlet在接收到请求后,会手动创建或查找需要的服务对象...

    在Servlet直接获取Spring框架中的Bean.docx

    通常,这会在Servlet容器启动时由Spring的`ContextLoaderListener`或`DispatcherServlet`完成。如果在Spring初始化之前尝试获取Bean,可能会抛出异常。 总之,在Servlet中直接获取Spring的Bean可以帮助简化代码,...

    Spring 管理filter 和servlet

    在`web.xml`中,使用`ContextLoaderListener`来初始化Spring的WebApplicationContext,确保在Filter执行之前Spring的上下文已经被加载。配置如下: ```xml &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;/...

    Spring源代码解析(二):IoC容器在Web容器中的启动.doc

    在Spring框架中,IoC(Inversion of Control)容器是核心组件,负责管理应用程序的bean。当我们在Web环境中运行Spring应用时,IoC容器需要在Web容器(如Tomcat、Jetty等)中启动并运行。这个过程涉及到一系列的初始...

    spring-boot-04-servlet.rar

    在Spring Boot 04-servlet的学习笔记中,我们将深入探讨如何配置和使用Servlet容器,特别是针对Spring Boot的集成特性。这篇笔记将涵盖以下几个关键知识点: 1. **Servlet容器简介**: Servlet容器,如Tomcat、...

    Spring在容器在启动的时候发生了什么

    在这个方法中,`ContextLoaderListener`创建了一个`ContextLoader`实例,并通过`initWebApplicationContext`方法初始化Web应用的上下文。 `ContextLoader`的核心方法是`initWebApplicationContext`,它负责根据`...

    体验Spring的IoC容器的优点(Eclipse中).doc

    在 UserManageTest 类中,我们首先需要创建一个 Spring 的应用上下文对象 ApplicationContext,然后使用该对象来获取一个名为 oneUserInfoManage 的 bean。接着,我们可以使用该 bean 来调用 doUserLogin 方法,并将...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如servlet、filter、listener等。了解这些组件之间的加载顺序对于正确配置和优化...

    Spring3.1.3 Ioc在Web容器中的建立

    2. **上下文配置**:`servlet-context.xml`文件是Spring Web应用的主要配置文件,其中可以定义bean,设置扫描包路径,以及配置视图解析器等。 3. **使用@ContextConfiguration注解**:对于基于Java配置的Spring ...

    JavaWeb_servlet(10)_ 通过 ServletContex 获得根目录下的文件路径

    // 获取Servlet上下文 String rootPath = context.getRealPath("/"); // 获取根目录的物理路径 String imagePath = rootPath + "images/logo.png"; // 拼接文件路径 ``` `getRealPath("/")`返回的是Web应用的根...

    手写自己的Springboot, 从Servlet容器选择彻底理解自动配置

    8. **应用上下文**:理解Spring Boot如何初始化和加载应用上下文也是关键。这涉及到bean的生命周期,包括初始化、销毁方法,以及依赖注入等概念。 9. **属性配置**:`application.properties`或`application.yml`...

    servletAPI 中文 chm版

    5. **ServletContext接口**:代表整个Web应用的上下文,可用于在整个应用范围内共享数据,获取应用配置信息等。 6. **ServletRequest和ServletResponse接口**:分别表示HTTP请求和响应,提供了获取请求参数、设置...

    Servlet英文API

    5. **ServletContext接口**: 表示整个Web应用的上下文。它允许Servlet访问全局信息,如Web应用的初始化参数、其他Servlet、资源路径等。`ServletContext`可以用来广播事件,或者在Web应用的不同组件间共享数据。 6....

    ServletAPI文档(中文/chm格式)

    10. **监听器(Listener)**:Servlet容器支持各种监听器,如`ServletContextListener`, `HttpSessionListener`等,可以在特定事件(如上下文初始化、会话创建/销毁)发生时进行回调。 11. **MVC模式**:Servlet ...

    servlet代码+说明文档

    9. **Spring MVC中的Servlet**:在现代的Java Web开发中,Servlet常与Spring MVC框架结合使用,Spring MVC将请求映射、模型绑定、视图解析等工作都进行了封装,使得开发更为简洁。 通过这份"Servlet代码+说明文档...

    Spring在web下启动流程学习笔记

    本文将深入探讨Spring在Tomcat环境下如何初始化并创建ApplicationContext,以及Spring MVC与Spring协同工作时的应用上下文创建过程。 首先,我们关注的是在Web应用启动时的监听器注册。在`web.xml`中,我们通常会...

    Web服务启动时自动加载Servlet,并读取数据库内容

    在上述代码中,`getRequiredWebApplicationContext(sc)`用于从Servlet上下文中获取Spring的应用上下文。`ac.getBean("mobileService")`则根据bean的ID(在Spring配置文件中定义)获取`MobileService`的实例。`dic()`...

    spring配置中<context-param> 和<init-param>的 区别

    在Web应用中,Servlet容器(如Tomcat)在Servlet实例化之前会先读取这些参数,然后传递给Servlet的`init`方法。这些参数通常与Servlet的内部逻辑或特定功能有关,比如设置Filter的拦截规则或者配置某些特定服务的...

    特殊情况(ActionForm,Servlet, Filter, Listener)下Spring如何注入对象

    1. **Servlet**: 可以在Servlet的init()方法中,通过ApplicationContextAware接口获取Spring上下文,然后手动从上下文中获取依赖的bean。 2. **Filter**: 同样,可以在Filter的init()方法中获取ApplicationContext...

Global site tag (gtag.js) - Google Analytics