`

JSP获取spring 的容器ApplicationContext

阅读更多

Jsp 中如何获取spring的bean呢?

方式一:通过上下文

 

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="org.springframework.context.ApplicationContext"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
<%
ServletContext context = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
Object supermarketDao= ctx.getBean("supermarketDao");
System.out.println("jsp:"+supermarketDao);
%>
</body>
</html>

 问题:JSP页面中获取的bean与spring 容器中的bean是同一个吗?

 

是的

 

方式二:通过类路径加载bean文件,得到bean工厂

 

<?xml version="1.0" encoding="UTF-8" ?>
<%@page import="org.springframework.beans.factory.BeanFactory"%>
<%@page import="org.springframework.context.support.ClassPathXmlApplicationContext"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="org.springframework.context.ApplicationContext"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
<%
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("beans.xml","user_beans.xml","goods_beans.xml","supermarket_beans.xml","aop.xml","upload_beans.xml"); 
BeanFactory factory = (BeanFactory) appContext; 
Object obj=factory.getBean("supermarketDao");
System.out.println("jsp2:"+obj);

%>
</body>
</html>

  问题:JSP页面中获取的bean与spring 容器中的bean是同一个吗?

 

是的

 

总结:(1)通过WebApplicationContextUtils 获取bean是直接从spring容器中拿的;

(2)通过ClassPathXmlApplicationContext,实际上又解析了一遍xml,即又创建了一个新的spring容器,所有获取的bean与web上下文中是不同的。

0
2
分享到:
评论

相关推荐

    JSP 获取spring容器中bean的两种方法总结

    下面将详细介绍在JSP页面中获取Spring容器中bean的两种方法。 ### 方法一:在Web应用中使用 在Web应用中,一般推荐使用Spring提供的WebApplicationContextUtils工具类来获取ApplicationContext。这种方法主要适用...

    JSP 获取Spring 注入对象示例

    4. 从ApplicationContext获取bean:最后,通过`ApplicationContext`的`getBean()`方法,我们可以按bean的ID获取到具体的对象。这里假设我们的bean ID为"myService"。 ```jsp MyService serv = (MyService) ac2....

    jsp javabean spring hibernate

    开发者可以在这个项目中看到如何配置Spring的ApplicationContext,如何声明和注入Bean,以及如何在JSP中调用这些Bean。同时,项目可能会包含一个简单的数据库模型,展示如何使用Hibernate进行数据操作,并在JSP页面...

    JSP Spring ApplicationContext的国际化支持

    在应用程序中使用国际化支持时,可以在需要显示本地化消息的地方通过ApplicationContext获取MessageSource实例,并调用getMessage方法。在调用时,通常需要提供消息代码(对应资源文件中的key),可选的消息参数...

    spring+springmvc+mybatis整合(含简单jsp页面)

    在IT行业中,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们分别用于处理应用程序的不同层次:Spring作为全面的容器管理依赖注入,SpringMVC负责Web层的处理,而MyBatis则专注于数据库操作。这次我们将...

    spring+Hibernate+jsp的简单例子

    - 配置Spring环境,包括设置Spring的bean定义文件(如applicationContext.xml),定义数据源、事务管理器等。 - 配置Hibernate,创建hibernate.cfg.xml文件来指定数据库连接,以及实体类对应的hbm.xml映射文件。 - ...

    bank.tar.gz_jsp 银行_jsp银行_spring bank_存取款_银行

    - **Spring配置文件**:可能有applicationContext.xml,定义Spring容器中的bean及其依赖关系。 - **资源文件**:如数据库连接配置(db.properties)、国际化消息资源(messages.properties)等。 - **样式表和...

    struts2+spring整合例子

    在整合过程中,我们通常会配置Spring的ApplicationContext,定义Bean的定义,并通过Struts2的插件来读取Spring的ApplicationContext,这样Struts2的动作类就可以直接从Spring容器中获取依赖的对象。 具体步骤如下:...

    S2SH中JSP页面调用dao的方法

    如果直接在JSP页面尝试调用DAO层的方法,很可能会遇到空指针异常,这是因为JSP页面无法直接获取到Spring容器管理的对象实例。因此,我们需要一种方法使得JSP页面能够间接地调用DAO层的方法。 #### 三、解决方案步骤...

    spring dome

    1. **配置文件**:如`applicationContext.xml`和`servlet-context.xml`,它们定义了Spring MVC的组件、数据源、视图解析器等设置。 2. **Controller类**:如`HelloWorldController.java`,展示了如何定义处理HTTP...

    jsp (spring+hibernate+structs)人力资源管理系统

    Spring作为整体应用的容器,负责依赖注入(DI)和面向切面编程(AOP),提供了事务管理和服务层抽象;Hibernate是持久化层框架,用于简化数据库操作,实现了对象关系映射(ORM);而Struts则作为表现层框架,处理...

    struts 整合spring 例子,测试通过

    这样,Action可以从Spring容器中获取依赖,实现依赖注入。 1. **配置Struts-Spring插件**。在Struts2的配置文件(struts.xml)中,需要启用Spring插件并指定Action类的Spring bean名称。 ```xml ...

    Spring5中文文档

    它介绍了Spring的ApplicationContext和BeanFactory等核心组件,以及如何通过注解和Java配置文件来配置bean。还涉及了Spring IoC容器的扩展功能,例如资源加载、环境抽象和加载时编织器的注册。 资源管理章节涵盖了...

    spring官方完整jar包-4.1.6版

    1. **控制反转(IoC)**:IoC是Spring的核心特性,它将对象的创建和管理权交给了Spring容器。开发者只需要定义对象的配置,而无需关注如何实例化和依赖关系的建立。这使得代码更加灵活,易于测试和维护。 2. **依赖...

    spring整合struts

    这通常通过在Service层的方法上添加@Transactional注解实现,Spring容器会自动处理事务的开启、提交或回滚。 最后,整合完成后,我们的应用程序将能够充分利用Spring的灵活依赖注入和事务管理,以及Struts的流程...

    Spring框架的示例项目源码 Spring Petclinic

    该项目可以帮助开发者理解和学习Spring框架的核心组件,如IoC(Inversion of Control,控制反转)容器、AOP(Aspect Oriented Programming,面向切面编程)、MVC(Model-View-Controller,模型-视图-控制器)架构...

    spring4.1.6.jar

    3. **容器**:Spring容器(如ApplicationContext)负责创建、配置和管理应用中的对象。对象可以通过XML、Java配置或注解进行定义。 4. **数据访问**:Spring提供了JDBC抽象层,简化了数据库操作,同时支持ORM(对象...

Global site tag (gtag.js) - Google Analytics