`

与spring集成后struts中action对象的创建

阅读更多


使用Spring的单例Singlton和原型(多例)来创建action Bean:
javabean使用两种方式来进行部署:单例和原型
当一个Bean是单例模式的情况下, Spring将只管理一个共享实例. 整个spring IOC容器内是唯一的,共享的。
原型的部署方式是每次响应一个访问请求的时候都将重新创建一个实例action

所有的Bean默认情况下都是使用Singlton方式来进行部署的,除非手动特殊指定



在action中我们会定义一些成员变量用于接收页面传过来的参数

比如页面有的输入用户名的文本框name

在action中通过定义name和getter,setter方法就可以得到输入的用户名,然后再某个方法里使用



private String name;



public void setName(String name){



    this.name=name;

}



public String getName(){

    return this.name;

}



问题来了

我们用完name,一般情况下就会不管他了,让他自生自灭(gc)。这样的做法在没有spring支持或在spring的原型模式下是没问题的

因为每次调用系统都要创建一个新的action,name也是新的,默认是null。



如果是在spring单例模式下,这样不管他就会出问题了,action会一直存在(直到服务器关了或重启),存在spring的IOC容器里面,既然action一直存在没有被销毁,那么action的成员name也会一直存在,这样如果通过浏览器地址直接访问这个action,那么就完全可以绕过输入用户名的阶段直接进入到其他页面。由于IOC容器时在服务里,所以,无论是不同浏览器,不同客户端,都能得到name,直接访问action成功。



知道了原理以后,我们的做法是用完name后手动销毁(name=null),这样action一直存在,但它的成员name就不会保留上一次的值,从而避免上述后果的出现。
分享到:
评论

相关推荐

    Spring与Struts集成方式一

    下面,我们将深入探讨Spring与Struts的集成方式,并基于给定的标题“Spring与Struts集成方式一”展开讨论。 首先,我们需要理解Spring和Struts的核心概念。Spring框架提供了一个全面的基础架构,支持创建健壮的、...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Struts2集成,Spring可以作为Struts2的Action的依赖注入容器,通过Spring的ApplicationContext获取服务层对象,实现业务逻辑处理。 - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取...

    struts+spring集成

    Struts+Spring集成的主要目的是利用两者的优点,使开发更高效、维护更方便。在集成过程中,通常会用Spring来管理Struts中的Action类,实现Action的依赖注入,从而提高代码的可测试性和解耦性。下面将详细讲解这个...

    第28讲--Struts与Spring集成方案2(Spring集成Struts)

    本讲解将深入探讨如何将Spring集成到Struts中,以实现更好的控制反转(IoC)和面向切面编程(AOP)。 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理HTTP请求和展示视图。它...

    Spring之Spring2.5集成Struts2.2

    标题“Spring之Spring2.5集成Struts2.2”涉及到的是在Web开发中整合两个非常流行的开源框架——Spring和Struts2的过程。这个过程旨在利用Spring的强大IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...

    Spring整合集成Struts1.2最简单例子

    将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...

    struts2 spring hibernate集成

    集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...

    struts2与spring2的整合

    4. **Spring插件**:在Struts2中使用Spring插件(struts2-spring-plugin),这个插件能够帮助Struts2与Spring进行交互,自动将Action类实例化并注入依赖。 5. **Action类**:Action类需要实现Spring的`org.spring...

    spring集成Struts与Hibernate

    ### Spring集成Struts与Hibernate详解 #### Spring集成Struts **背景介绍** 随着Java技术的发展,Struts作为最早的MVC框架之一,在Java EE领域中占据了重要地位。虽然随着时间的推移,新的框架和技术不断涌现,但...

    Spring 2.0集成Struts 2.0

    首先,Spring 2.0与Struts 2.0的集成使得Action类变得更加灵活。Action类不再必须实现特定的Action接口,而是可以选择实现自定义接口或直接使用ActionSupport类,这个类已经包含了Struts 2常用的接口实现。此外,...

    Spring struts ibatis Mysql 集成

    在IT行业中,集成Spring、Struts和iBatis与MySQL是构建企业级Java Web应用程序的常见选择。这个项目集成了Spring 2.5.5、Struts 2.1.6、iBatis 2.3.4以及MySQL 5.1数据库,使用IntelliJ IDEA 9作为开发环境。下面将...

    Spring集成struts以及hibernate jar包

    标题中的"Spring集成struts以及hibernate jar包"指的是在Java Web开发中,将Spring框架与Struts2和Hibernate框架进行整合的过程。这通常是为了构建一个完整的MVC(Model-View-Controller)架构,其中Spring负责依赖...

    mongo集成spring struts2 json velocity

    在"mongo集成spring struts2 json velocity"这个项目中,我们将看到如何将这些技术整合到一起,创建一个功能丰富的Web应用程序。 首先,MongoDB的集成意味着项目会利用其NoSQL特性和文档存储的优势。Spring Data ...

    struts spring集成【下】

    在集成Struts和Spring的过程中,通常有以下关键步骤: 1. **配置Spring**:首先,我们需要创建Spring的配置文件,如`applicationContext.xml`,在这个文件中定义bean,包括Action类、DAO类和服务类。这些bean可以...

    第27讲--Struts与Spring集成方案1(Struts集成Spring)

    在"第27讲--Struts与Spring集成方案1(Struts集成Spring)"中,我们主要探讨如何将Struts2与Spring进行整合。集成的主要目的是利用Spring的强大功能来管理Struts2中的Action类,从而实现更灵活的依赖注入和更好的控制...

    struts spring集成原理

    综上所述,Struts与Spring的集成主要通过Struts的Action与Spring的bean管理相结合,实现了Action对象的生命周期管理以及依赖注入,从而提升了应用的可扩展性和可维护性。这种集成方式在Java Web开发中非常常见,因为...

    spring与struts2集成所需要的jar包

    - `struts2-spring-plugin.jar`: 这个是关键,用于集成Spring框架,使得Spring管理的Bean可以作为Struts2的Action。 - `struts2-json-plugin.jar` (可选): 如果你需要支持JSON响应,这个插件是必要的。 3. **其他...

    SSH集成 Struts+spring+hibernate集成

    Spring与Struts的集成可以通过Struts的Plug-in实现,使Spring能够控制Action的创建和销毁。同时,Spring的AOP能力可以用于事务管理,为整个应用程序提供统一的事务策略。Hibernate与Spring的集成则通常通过Spring的...

    spring与struts2整合

    7. **测试与调试**:完成整合后,需要进行单元测试和集成测试以确保所有组件协同工作。可以使用像 JUnit 和 Mockito 这样的工具来进行测试。 在示例项目 `spring_struts_teranen` 中,开发者可能已经提供了一个简单...

    三大框架集成 struts2,spring,hibernate

    3. 集成Struts2和Spring:使用Spring插件struts2-spring-plugin,使Action类成为Spring的bean。 4. 配置Hibernate:配置hibernate.cfg.xml文件,包含数据库连接信息和实体类映射。 5. 创建DAO层:使用Hibernate ...

Global site tag (gtag.js) - Google Analytics