Struts2.3.12+Spring3.2.2+Hibernate4.2.0框架配置详细步骤

合集下载

最新版本Struts2.3.12+Spring3.2.2+Hibernate4.2.0框架配置详细步骤

最新版本Struts2.3.12+Spring3.2.2+Hibernate4.2.0框架配置详细步骤

SSH框架搭建Struts2.3.12+Spring3.2.2+Hibernate4.2.0编号:SSH-S2-S3-H4版本:V1.1级别:公开编写时间:2013-03-18目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建Struts2 (2)2.1 搭建所需jar包 (2)2.2 整合步骤 (2)2.2.1 创建项目 (2)2.2.2 导入jar包 (2)2.2.3 配置web.xml (4)2.2.4 创建web (4)2.2.5 创建jsp页面 (5)2.2.6 配置struts.xml (6)2.2.7 配置Tomcat (6)2.2.8 部署项目 (7)2.3 测试 (8)2.3.1 启动Tomcat (10)2.3.2 测试Tomcat (10)2.3.3 测试Struts (11)3 整合Spring3 (12)3.1 整合所需jar包 (12)3.2 整合步骤 (12)3.2.1 导入jar包 (12)3.2.2 配置web.xml (12)3.2.3 配置struts.xml (13)3.2.4 配置spring.xml (13)3.3 测试 (14)3.3.1 启动Tomcat (14)3.3.2 测试登录 (14)4 整合Hibernate4 (15)4.1 整合所需jar包 (15)4.2 整合步骤 (15)4.2.1 导入jar包 (15)4.2.2 创建数据库ccc (15)4.2.3 创建对象User (16)4.2.4 生成映射文件User.hbm.xml (17)4.2.5 创建dao (18)4.2.6 创建service (19)4.2.7 创建web (20)4.2.8 配置jdbc.properties (21)4.2.9 配置db.xml (22)4.2.10 配置spring.xml (24)4.2.11 配置struts.xml (24)4.3 测试 (25)4.3.1 启动Tomcat (25)4.3.2 测试登录 (25)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSH框架,也是实际应用中比较全面的基础框架,用于指导SSH框架初学者学习搭建SSH框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。

Struct2、Hibernate3、Spring3框架搭建实战

Struct2、Hibernate3、Spring3框架搭建实战

Struct2、Hibernate3、Spring3框架搭建实战采⽤⽬前最新的struts-2.3.1.2、hibernate3.6.10.Final、spring-framework-3.1.1.RELEASE开发包,以及eclipse-jee-indigo-SR2-win32、apache-tomcat-7.0.27服务器、JDK6和mysql5做开发环境,参考了前辈的⼀篇相关⽂章,改正了其中的错误和疏漏,克服了公司分配的“新”机器每⼩时⾃动重启三次的困难,终于把环境给搭好了。

整个过程中遵循的⼀个原则是,避免引⼊⽤不到的jar包,以求搭建⼀个最⼩的SSH 运⾏环境。

⾸先创建⼀个Dynamic web project 输⼊任意名字如SSHBase。

第⼀步:加载Spring环境我们需要引⼊的包有:org.springframework.asm-3.1.1.RELEASE.jarorg.springframework.beans-3.1.1.RELEASE.jarorg.springframework.context-3.1.1.RELEASE.jarorg.springframework.core-3.1.1.RELEASE.jarorg.springframework.expression-3.1.1.RELEASE.jarorg.springframework.jdbc-3.1.1.RELEASE.jarorg.springframework.web-3.1.1.RELEASE.jarorg.springframework.orm-3.1.1.RELEASE.jar由于spring默认开启了⽇志,还需要加⼊commons-logging的jar包,否则会报错。

建议不要⼀次性加⼊应该先加最核⼼的运⾏代码看缺少什么加什么,这样就不会加多余的包进来了,spring3已经把包按功能分开,不像以前⼀个包,这样更灵活,只要运⾏我们需要的功能,⽽没⽤到的就不⽤在硬性的添加进来。

Struts、Spring、Hibernate三大框架的原理和优点

Struts、Spring、Hibernate三大框架的原理和优点

Struts的原理和优点.Struts工作原理MVC即Model—View—Controller的缩写,是一种常用的设计模式。

MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。

MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将Servlet和JSP 标记(属于J2EE 规范)用作实现的一部分。

Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展.Struts的工作原理,视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。

控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。

ActionServlet是一个通用的控制组件。

这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。

它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。

另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。

动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。

最后动作类把控制权传给后续的JSP 文件,后者生成视图。

所有这些控制逻辑利用Struts-config.xml文件来配置。

模型:模型以一个或多个java bean的形式存在。

这些bean分为三类:Action Form、Action、JavaBean or EJB.Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。

Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。

Struts2+Spring框架简介+Hibernate查询语言

Struts2+Spring框架简介+Hibernate查询语言

出自Gavin King的手笔,目前最流行的开源ORM框架,其灵巧的设计,优秀的 性能,还有丰富的文档,都是其迅速风靡全球的重要因素。

Entity EJB

Entity EJB实质上也是一种ORM技术,这是一种备受争议的组件技术,很多人 说它非常优秀,也有人说它一钱不值。事实上,EJB为J2EE的蓬勃发展赢得了 极高的声誉,EJB作为一种重量级、高花费的ORM技术上,具有不可比拟的优势。 但由于其必须运行在EJB容器内,而且学习曲线陡峭,开发周期、成本相对较 高,因而限制EJB的广泛使用。

添加自动注解配置(自动扫描@Service,@Repository等注解)

<context:component-scan base-package="test,a"/>
<context:annotation-config/> 该配置将隐式地向Spring容器注册4个 BeanPostProcessor
<bean id="hello" class="test.HelloWorld" abstract="false“ lazy-init="default" autowire="default" dependencycheck="default"> <property name="helloWorld"> <value type="ng.String">Hello World From IOC</value> </property> </bean>

Struts2、spring2、hibernate_的整合

Struts2、spring2、hibernate_的整合

一.struts 2 与spring2struts2 本身就采用了类似于spring的IOC容器机制,可以利用struts2官方提供的插件struts2-spring-plugin-2.0.11.1.jar,直接与spring进行整合,配置文件中只需要设置struts.objectFactory=spring这样,就将struts2的对象管理交给了spring2的IOC容器。

在struts.xml中配置的action<package name="maintaince" extends="struts-default"><action name="serverInfoList" class="serverInfoService" method="getAllServersInfo"><result name="list">/jsp/server_info/server_info_list.jsp</result></action>在spring的配置文件中配置的bean<bean id="serverInfoService" class="com.wod.service.impl.ServerInfoServiceImpl"><property name="serverInfoDao" ref="serverInfoDao"/><property name="sib" ref="serverInfoBean"/></bean>可以看出,struts2可以直接只用在spring2中配置的bean,引用过来作为action。

java中三大框架struts-Hibernate-Spring,具体是怎样合作工作的?各自实现什么功能?

java中三大框架struts-Hibernate-Spring,具体是怎样合作工作的?各自实现什么功能?

本文由我司收集整编,推荐下载,如有疑问,请与我司联系java 中三大框架struts/Hibernate/Spring,具体是怎样合作工作的?各自实现什么功能?2013/12/28 2049 java 中三大框架struts/Hibernate/Spring,具体是怎样合作工作的?各自实现什么功能?随着Java 技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE 平台得到了长足的发展。

借助于J2EE 规范中包含的多项技术:Enterprise JavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages(JSP)、JavaMessage Service(JMS)等,开发出了许多应用系统。

但是,在传统J2EE 应用的开发过程中也出现了一些问题:1)数据模型和逻辑模型之间的矛盾。

目前使用的数据库基本上都是关系型数据库,而Java 本质上是一种面向对象的语言,对象在存储和读取时使用SQL 和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性;2)传统的J2EE 应用多采用基于EJB 的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB 容器进行开发和调试需要耗费大量时间。

为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Struts 框架和Hibernate 框架的J2EE 应用开发策略。

数据持久层及HibernateHibernate 是一个数据持久层框架,是一种实现对象和关系之间映射(O/R Mapping)的工具,它对JDBC 进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。

它不仅提供了从Java 类到数据表的映射,也提供了数据查询和恢复机制。

相对于使用JDBC 和SQL 来操作数据库,使用Hibernate 能大大的提高实现的效率。

Hibernate 框架用配置文件的形式来定义Java 对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java 对象之间的继承及包含等关系。

Struts2+Spring4+Hibernate4整合(注释版)

Struts2+Spring4+Hibernate4整合(注释版)

Struts2 + Spring 4 + Hibernate 4整合注释版作者:唐礼飞Q Q:272048417目录1准备 (3)2实施 (3)2.1创建项目 (3)2.2添加Struts2、Spring、Hibernate需要的jar文件到项目 (3)2.3创建Hibernate配置文件hibernate.cfg.xml (4)2.4创建项目配置属性文件appParameter.properties (5)2.5创建Spring配置文件applicationContext.xml (6)2.6修改项目web.xml配置文件,添加Spring监听 (6)2.7整合Spring和Hibernate (6)2.8创建Struts2配置文件struts.xml (7)2.9修改项目web.xml配置文件,添加Struts2过滤器 (7)2.10整合Spring和Struts2 (7)3测试 (9)3.1测试Struts2、Spring、Hibernate整合是否成功 (9)3.2实现用户登录功能 (9)3.3实现用户管理功能 (9)4部署 (9)1准备●开发工具:eclipse-reporting-luna-SR2-win32(最新版也可)●数据库:Microsoft SQL Server 2008 R2●本次集成Struts2、Spring、Hibernate版本:⏹struts-2.3.20⏹spring-framework-4.1.0⏹hibernate-release-4.3.92实施2.1创建项目2.2 创建数据库(SSH)2.3添加Struts2、Spring、Hibernate需要的jar文件到项目2.3.1Struts22.3.2Spring2.3.3Hibernate2.3.4删除同名的jar文件(保留高版本号的)2.4添加数据库Microsoft SQL Server 2008的JDBC驱动程序2.5添加DBCP数据库连接技术的jar文件到项目2.6添加其它需要的jar文件根据项目的需要进行添加。

Struts,Spring,Hibernate优缺点

Struts,Spring,Hibernate优缺点

Struts,Spring,Hibernate优缺点Struts,Spring,Hibernate优缺点Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。

使开发者能更深入的了解其内部实现机制。

Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP)技术的Web应用时更加容易。

Struts框架为开放者提供了一个统一的标准框架,通过使用Struts作为基础,开发者能够更专注于应用程序的商业逻辑。

Struts框架本身是使用Java Servlet和JavaServer Pages技术的一种Model-View-Controller(MVC)实现.具体来讲,Struts的优点有:1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现.2. 有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率。

另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

3. 页面导航.页面导航将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。

通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。

尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

4. 提供Exception处理机制 .5. 数据库链接池管理6. 支持I18N缺点:一、转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简单不可想象。

三、Spring3.2.3+Hibernate4.2项目框架搭建

三、Spring3.2.3+Hibernate4.2项目框架搭建

Spring3.2.3+Hibernate4.2.4的框架整合1、新建web项目,导入包(WEB-INF下的lib文件夹中)1) Spring3.2.4 /download/community(这个地址可能无法进入,请另外找地方下载)其中红色部分为spring中数据库连接所需要的jar包,在包中的包。

3) Hibernate4.2.4 http://in.relation.to/Bloggers/HibernateORM424FinalReleased下载完成后选择需要的jar包,在包中。

数据库jar包。

日志jar包(选用struts中的log包,也可以用spring的)。

2、配置1)web项目的配置:web.xmlspring的配置在spring-framework-3.2.3.RELEASE\docs\spring-framework-reference\html打开spring-web.html文件。

进行listener的配置。

进行context-param的配置。

并对spring的配置文件的位置进行修改。

2)Hibernate的配置:把hibernate的配置信息放在spring配置文件中,故hibernate.cfg.xml不需要生成。

3)Spring的配置:applicationContext.xml在项目的根路径下创建Spring配置文件applicationContext.xml设置Spring配置文件的路径和文件名点击finish。

接下来完成spring配置文件的内容,包括bean依赖注入、hibernate配置、数据库连接池dbcp等。

首先打开下载的spring文件包,在spring-framework-3.2.3.RELEASE\docs\spring-framework-reference\html目录下打开“orm.html”文件,找到15.3Hibernate然后将下面方框的内容复制到applicationContext.xml文件中,进行Hibernate数据库的配置。

三大框架的优缺点

三大框架的优缺点

Struts,Spring,Hibernate优缺点1.strutsstruts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。

优点:Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。

使开发者能更深入的了解其内部实现机制。

除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。

Taglib是Struts的标记库,灵活动用,能大大提高开发效率。

另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。

通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。

尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

另外,struts是业界"标准"(很多成功案例),学习资源丰富,HTML标签非常优秀缺点:Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。

Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。

ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。

使开发者能更深入的了解其内部实现机制。

Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP)技术的Web应用时更加容易。

Struts框架为开放者提供了一个统一的标准框架,通过使用Struts作为基础,开发者能够更专注于应用程序的商业逻辑。

Struts2.3.1.2+Spring3.3.1+Hibernate4.1.1 配置步骤

Struts2.3.1.2+Spring3.3.1+Hibernate4.1.1 配置步骤

一.搭建struts-2.3.1.21.Jar包:2.配置struts2.3的过滤器,web.xml位置3.web.xml<?xml version="1.0"encoding="UTF-8"?><web-app id="WebApp_ID"version="3.0"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance" xmlns:web="/xml/ns/javaee/web-app_2_5.xsd "xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"><!-- struts2单控制器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.Struts PrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>4.配置struts.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><!-- 默认的配置包 --><package name="ssh"extends="struts-default,json-default,jfreechart-default,s pring-default"><action name="login"class="loginAction"><result name="ok">/loginOk.jsp</result><result name="error">/loginError.jsp</result></action></package></struts>5.测试struts二.整合Spring 3.1.1和Struts-2.3.1.21.jar包在配置好的strutsjar的基础上,添加额外Struts jar包:struts2-spring-plugin-2.3.1.2.jarcommons-logging-1.1.1.jarSpring的jar包:org.springframework.core-3.1.1.RELEASE.jarorg.springframework.context-3.1.1.RELEASE.jarorg.springframework.beans-3.1.1.RELEASE.jarorg.springframework.asm-3.1.1.RELEASE.jarorg.springframework.expression-3.1.1.RELEASE.jarorg.springframework.web-3.1.1.RELEASE.jar2.web.xml<?xml version="1.0"encoding="UTF-8"?>web-app id="WebApp_ID"version="3.0"xmlns="/xml/ns/javaee"xmlns:xsi=/2001/XMLSchema-instancexmlns:web="/xml/ns/javaee/web-app_2 _5.xsd"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd"><!-- struts2单控制器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.Str utsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- spring创建工厂监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 告知spring config location 的存储位置--><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</par am-value></context-param></web-app>3.配置springapplicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:tx="/schema/tx"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"> <context:annotation-config /><context:component-scan base-package="com.excel" /></beans>三.整合Hibernate4.1.11.jar包添加Hibernate jar文件Hibernate压缩包中的lib/required/antlr-2.7.7.jardom4j-1.6.1.jarhibernate-commons-annotations-4.0.1.Final.jarhibernate-core-4.1.1.Final.jarhibernate-jpa-2.0-api-1.0.1.Final.jarjavassist-3.15.0-GA.jarjboss-logging-3.1.0.GA.jarjboss-transaction-api_1.1_spec-1.0.0.Final.jar lib/jpa/hibernate-entitymanager-4.1.1.Final.jarlib/optional/c3p0/hibernate-c3p0-4.1.1.Final.jarc3p0-0.9.1.jarSpring中的jar文件org.springframework.aop-3.1.1.RELEASE.jarorg.springframework.jdbc-3.1.1.RELEASE.jarorg.springframework.orm-3.1.1.RELEASE.jarorg.springframework.transaction-3.1.1.RELEASE.jar 其他的Spring支持文件aopalliance.jar -- AOP要用到的jar包以及连接db2的jarDb2jcc.Jar以及支持el表达式的standard.jar2.配置文件<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:jee="/schema/jee"xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xmlns:p="/schema/p"xmlns:util="/schema/util"xmlns:tool="/schema/tool" xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd/schema/tx/schema/tx/spring-tx.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/jee/schema/jee/spring-jee.xsd/schema/context/schema/context/spring-context.xsd /schema/util/schema/util/spring-util.xsd/schema/tool/schema/tool/spring-tool.xsd"default-lazy-init="true"default-autowire="byName"> <!--配置数据源 --><bean id="dataSource"class="boPooledDataSource"destroy-method="close"><property name="driverClass"value="com.ibm.db2.jcc.DB2Driver" /><property name="jdbcUrl"value="jdbc:db2://192.168.1.35:50000/ZL_DEMO"/><property name="user"value="db2admin"/><property name="password"value="Forwor888"/></bean><!-- hibernate.cfg.xml Spring config --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><!-- connection --><property name="dataSource"><ref local="dataSource"/></property><!-- hibernate自身属性 --><property name="hibernateProperties"><props><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop><propkey="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop> </props></property><!-- 映射文件 --><property name="mappingResources"><list><value>com/forwor/ssh/entity/xml/User.hbm.xml</value></list></property></bean><!-- 注入 --><bean id="userDAO"class="erDAOImpl"> <property name="sessionFactory"><ref local="sessionFactory"/></property></bean><!-- aop --><!-- transaction --><bean id="userBiz"class="erBizImpl"> <property name="userDAO"><ref local="userDAO"/></property></bean><!-- advice --><bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager "><property name="sessionFactory"><ref local="sessionFactory"/></property></bean><!-- 事务处理 --><bean id="transactionInterceptor"class="org.springframework.transaction.interceptor.TransactionInterce ptor"><property name="transactionManager"><ref local="transactionManager"/></property><property name="transactionAttributes"><props><prop key="register">PROPAGATION_REQUIRED</prop><!--hibernate4必须配置为开启事务否则 getCurrentSession()获取不到--><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="find*">PROPAGATION_REQUIRED,readOnly</prop><prop key="select*">PROPAGATION_REQUIRED,readOnly</prop><prop key="query*">PROPAGATION_REQUIRED,readOnly</prop><prop key="sync*">PROPAGATION_REQUIRED</prop><prop key="finish*">PROPAGATION_REQUIRED</prop><prop key="add*">PROPAGATION_REQUIRED</prop><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="edit*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="save*">PROPAGATION_REQUIRED</prop><prop key="remove*">PROPAGATION_REQUIRED</prop><prop key="delete*">PROPAGATION_REQUIRED</prop><propkey="*">PROPAGATION_REQUIRED,ng.Exception</prop></props></property></bean><!-- autoproxy 自动创建代理--><bean id="ProxyCreator"class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyC reator"><property name="beanNames"><list><value>*Biz</value></list></property><property name="interceptorNames"><list><value>transactionInterceptor</value></list></property></bean><bean id="loginAction"class="com.forwor.ssh.web.LoginAction" scope="prototype"><property name="userBiz"><ref local="userBiz"/></property></bean></beans>。

谈谈对spring_hibernate_struts2的理解

谈谈对spring_hibernate_struts2的理解

面试的时候的一个问题,说得越详细越容易理解越好.我对spring的理解主要有反转控制和面向切面(AOP),面试题:说说你对spring的理解[此问题的推荐答案]spring: 1)是一种开源框架,实际上就是一种容器,是实现了IOC模式的容器,也可以说是一个Bean的工厂,对Bean进行管理。

2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合3)AOP 将安全,事务,log等公共的服务对于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,让程序员更专注于业务逻辑的实现,实现了按照方面编程,提高了可维护性和复用性4) ApplicationContext:spring上下文信息,5) Spring DAO6)spring ORM:可以集成多个ORM框架,像Hibernate,Ibatis,JDO,7)spring Web模块,与struts的集成。

8)spring MVCspring容器的接口分级设计。

IoC和AOP是spring最重要的两个特性,面试官差不多就看这个吧,至于spring mvc 之类的估计面试官不一定感兴趣介绍Spring的核心Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring 的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案。

Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架。

Spring、SpringMVC、Struts2之间的区别

Spring、SpringMVC、Struts2之间的区别

Spring、SpringMVC、Struts2之间的区别⼀、Spring与SpringMVC的区别:spring是⼀个开源框架,是为了解决企业应⽤程序开发,功能如下:功能:使⽤基本的JavaBean代替EJB,并提供了更多的企业应⽤功能范围:任何Java应⽤ Spring是⼀个轻量级的控制反转(IoC)和⾯向切⾯(AOP)的容器框架。

1、轻量——从⼤⼩与开销两⽅⾯⽽⾔Spring都是轻量的。

完整的Spring框架可以在⼀个⼤⼩只有1MB多的JAR⽂件⾥发布。

并且Spring所需的处理开销也是微不⾜道的。

此外, Spring是⾮侵⼊式的:典型地,Spring应⽤中的对象不依赖于Spring的特定类。

2、控制反转——Spring通过⼀种称作控制反转(IoC)的技术促进了松耦合。

当应⽤了IoC,⼀个对象依赖的其它对象会通过被动的⽅式传递进来,⽽不是这个对象⾃⼰创建或者查找依赖对象。

你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,⽽是容器在对象初始化时不等对象请求就主动将依赖传递给它。

3、⾯向切⾯——Spring提供了⾯向切⾯编程的丰富⽀持,允许通过分离应⽤的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进⾏内聚性的开发。

应⽤对象只实现它们应该做的——完成业务逻辑—— 仅此⽽已。

它们并不负责(甚⾄是意识)其它的系统级关注点,例如⽇志或事务⽀持。

4、容器——Spring包含并管理应⽤对象的配置和⽣命周期,在这个意义上它是⼀种容器,你可以配置你的每个bean如何被创建——基于⼀个可配置原型(prototype),你的bean可以创建⼀个单独的实例或者每次需要时都⽣成⼀个新的实例——以及它们是如何相互关联的。

然⽽,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞⼤与笨重的,难以使⽤。

5、框架——Spring可以将简单的组件配置、组合成为复杂的应⽤。

Struts1、Struts2、Hibernate、Spring框架工作原理介绍

Struts1、Struts2、Hibernate、Spring框架工作原理介绍

Struts1、Struts2、Hibernate、Spring框架工作原理介绍Struts1工作原理Struts1工作原理图1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。

(面向对象思想)2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。

3、form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。

4、派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。

5、处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。

服务器通过ActionForward对象进行转发工作。

6、返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。

7、查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。

8、响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。

Struts1优缺点(为什么要用strust1)1.优点:①开源的框架,结构清晰②是MVC的经典实现(MVC是一种思想,而不是一种技术)③处理异常机制,实现国际化④具有强大的标签库⑤解决了JSP页面存在大量的JAVA代码,维护起来方便⑥在formBean中会自动提交,不会去使用传统的get、set方法得到值、取值2.缺点:①配置复杂②测试不方便③依赖web容器④action是一个单例模式,必须设置为线程安全Struts2工作原理struts2工作原理图1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类6 ActionProxy创建一个ActionInvocation的实例。

ch12 Spring、Struts2、Hibernate整合

ch12 Spring、Struts2、Hibernate整合

如果系统采用Spring框架。Spring负责业务逻辑组件的创建 和生成,并可管理业务逻辑组件的生命周期。可以如此理解: Spring是个性能非常优秀的工厂,可以生产出所有的实例,从 业务逻辑组件,到持久层组件,甚至控制器。 控制器如何访问到Spring容器中的业务逻辑组件?为了让Action 访问Spring的业务逻辑组件,有两种策略: 1、Spring管理控制器,并利用依赖注入为控制器注入业务逻辑 组件。 2、控制器定位Spring工厂,也就是Spring的容器,从Spring容 器中取得所需的业务逻辑组件。 对于这两种策略,Spring与Struts2都提供了对应的整合实现。 Struts 2框架整合Spring很简单,整合的步骤参见课本。

Spring有3个作用:
◦ 允许Spring创建Action、Interceptor和Result ◦ 由Struts创建的对象能够被Spring装配 ◦ 如果没有使用Spring ObjectFactory,提供了两个拦截器 来自动装配action
SS2H三者整合代码比较多,初学者做起来很繁,其实如果理 解为什么要整合、整合所需要的包以及根据书中的配置文件模 板也不是很难。以后项目中就使用该配置文件模板。 整合基本步骤描述如下: 1、先向项目中加入Hibernate3.2+Spring2.支持,删除 hibernate.cfg.xml文件,修改applicationContext.xml文件的内容, 增加SessionFactory和dataSource的设置。 2、通过MyEclipse的向导方式,生成POJO类和对应的映射文件。 3、修改applicationContext.xml文件中<property name="mappingResources">元素的内容。 4、编写DAO接口和实现类。 5、修改applicationContext.xml文件,增加对Dao实现类的配置。

java中有哪些框架

java中有哪些框架

Java中有许多流行的框架,这些框架为开发者提供了构建应用程序所需的基础结构和工具。

以下是一些Java中常用的框架:1.Spring框架:Spring是一个轻量级的Java开发应用框架,旨在解决企业应用开发的复杂性。

它提供了全面的编程和配置模型,支持各种应用场景,包括Web应用、企业级应用、批处理应用等。

Spring框架包括SpringMVC、Spring Boot、Spring Security等子项目。

2.Hibernate框架:Hibernate是一个优秀的持久层框架,它允许开发者使用对象关系映射(ORM)的方式来处理数据库操作。

Hibernate简化了数据库访问的代码,并提供了高效的缓存和事务管理机制。

3.Struts框架:Struts是一个基于Java的Web应用框架,它采用MVC(Model-View-Controller)设计模式,帮助开发者构建可维护的Web应用程序。

Struts提供了丰富的标签库和表单验证功能,简化了Web开发的流程。

然而,随着Spring MVC等更现代框架的兴起,Struts的使用已经逐渐减少。

4.MyBatis框架:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。

MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

5.Dubbo框架:Dubbo是一个高性能、轻量级的分布式服务框架,它提供了RPC通信、服务注册与发现、负载均衡、容错处理等功能。

Dubbo简化了分布式系统的开发,使得开发者能够更专注于业务逻辑的实现。

6.Spring Boot框架:Spring Boot是一个用于简化Spring应用开发的框架,它提供了自动配置、快速开发和测试、内嵌Web服务器等功能。

struts2 实验报告

struts2 实验报告

1.系统分析与设计1.1系统功能描述本系统是个非常简单的注册、登录系统。

本系统的实现是基于Struts2、Spring、Hibernate三个框架,系统功能单一,业务逻辑简单。

当用户注册信用户时,就是向系统中增加一个新用户,对应的数据库增加一条记录。

当用户输入注册信息时,系统提供了基本的输入验证判断用户输入是否合法,只有当用户输入满足基本输入要求时,才会被提交到实际的登录系统,进行实际的登录处理。

系统还使用了随机产生的图形验证码来防止刷新,防止用户通过单击浏览器的书安心按钮来重复注册多个用户。

系统还提供了一种Ajax方式来验证用户输入的注册名是否有效,系统要求所有的用户名不能重复。

故当用户输完用户名后,系统立即在页面上方提示用户该用户名是否可用,如果系统中没有该用户名,则系统提示该用户名可用;否则提示用户该用户名重复,用户必须重新选择用户名注册。

当用户注册一个新用户名之后,就可以使用系统的登录功能来登录系统了,用户输入登录用的用户名、密码后,系统一样提供了基本的输入校验。

除此之外,系统还采用了随机产生图形验证码来防止恶意用户的暴力破解,系统随机生成一个图形验证码,而用户登录必须输入图形验证码中显示的字符串,只有用户输入的字符串和系统随机生成的验证码字符相同时,系统才允许用户登录。

1.2系统功能流程处理用户注册的流程图东北大学软件学院实践考核类课程(四)实验报告1.3数据库设计ColumnNarneDatatppe HOTH ULLAUTOI NC :FlagsDefaultValue Commentuser_id|S>INT(11)✓ ✓_|UNSIGNED _|ZEROFELLEBBQ username 心.VARCH.4.R(50]_|BINARYQ user_pass VARCHAR(50] ✓_|BIN4RYQ emailVARCHAR(100]1BIN4RY相关的映射文件:<hibernate-mapping package ="org.reg_login.model"><class name ="User"table ="usertable"〉<id name ="id"column ="user_id"><generator class ="identity"/> </id ><property name ="user"column ="user_name"not-null ="true"length ="50"unique ="true"/><property name ="pass"column ="userpass"n ot-null ="true"C=3length ="50"/><property name ="email"length ="100"/></class></hibernate-mapping >一旦提供了上面的映射文件,Hibernate 就可以理解User 和user_table 之间的对应关系。

java三大框架概述

java三大框架概述

三大框架·Java三大框架各自的作用是什么?struts:主要负责表示层的显示spring:利用它的IOC和AOP来处理控制业务(负责对数据库的操作)hibernate:主要作用是数据的持久化到数据库一、SpringSpring是一个解决了许多在J2EE开发中常见的问题的强大架。

Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。

光谷校区专业老师指出,Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。

然而,这仅仅是完整图景中的一部分:Spring在使用IoC 容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。

Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。

Spring的数据访问架构还集成了Hibernate 和其他O/R?mapping解决方案。

Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。

Spring 提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。

这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。

Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。

二、Structs说到Struts框架,它是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet 和JSP技术来实现的。

由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。

Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SSH框架搭建Struts2.3.12+Spring3.2.2+Hibernate4.2.0编号:SSH-S2-S3-H4版本:V1.1级别:公开编写时间:2013-03-18目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建Struts2 (2)2.1 搭建所需jar包 (2)2.2 整合步骤 (2)2.2.1 创建项目 (2)2.2.2 导入jar包 (2)2.2.3 配置web.xml (4)2.2.4 创建web (4)2.2.5 创建jsp页面 (5)2.2.6 配置struts.xml (6)2.2.7 配置Tomcat (6)2.2.8 部署项目 (7)2.3 测试 (8)2.3.1 启动Tomcat (9)2.3.2 测试Tomcat (10)2.3.3 测试Struts (10)3 整合Spring3 (12)3.1 整合所需jar包 (12)3.2 整合步骤 (12)3.2.1 导入jar包 (12)3.2.2 配置web.xml (12)3.2.3 配置struts.xml (13)3.2.4 配置spring.xml (13)3.3 测试 (14)3.3.1 启动Tomcat (14)3.3.2 测试登录 (14)4 整合Hibernate4 (15)4.1 整合所需jar包 (15)4.2 整合步骤 (15)4.2.1 导入jar包 (15)4.2.2 创建数据库ccc (15)4.2.3 创建对象User (16)4.2.4 生成映射文件User.hbm.xml (17)4.2.5 创建dao (18)4.2.6 创建service (19)4.2.7 创建web (20)4.2.8 配置jdbc.properties (21)4.2.9 配置db.xml (21)4.2.10 配置spring.xml (23)4.2.11 配置struts.xml (24)4.3 测试 (24)4.3.1 启动Tomcat (24)4.3.2 测试登录 (24)1导言目的本文档是根据个人的工作经验搭建的轻量级SSH框架,也是实际应用中比较全面的基础框架,用于指导SSH框架初学者学习搭建SSH框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。

范围本次框架搭建的版本是Struts2.3.12+Spring3.2.2+Hibernate4.2.0,截止2013年3月18日是最新的版本。

本次搭建的过程是先搭建Struts2.3.12,测试通过之后,整合Spring3.2.2,最后再整合Hibernate4.2.0,最后的整合内容有点多,因为这也是居于MVC 思想搭建的环境,希望大家耐心学习。

说明本文档是个人总结的经验,仅供参考学习,同时欢迎朋友们一起沟通学习,文档中会对使用的jar做详细解说,对配置的过程使用图文说明,因为SSH博大精深,很多知识在搭建过程中没有使用到,只是一个基础框架的搭建,能测试通过就可以,所以对于高要求的开发,需要自己添加jar、增加方法和配置,同时文档中出现的纰漏希望朋友们等指正。

开发环境:MyEclipse7.0,Tomcat6.0,JDK1.6,其他环境可进行测试。

更新内容本次文档更新内容为Tomcat的配置使用虚拟路径,这样每次项目内容更新不需要重新部署项目,而且使用debug模式启动,在启动状态下修改项目内容,保存之后,可以直接测试,不需要重启Tomcat,非常简单。

本次更新是将为2013年5月15日,如果项目搭建学习遇到问题,可邮件给我,我可以发演示项目给大家进行参考学习。

同时声明,搭建的框架只是最简单的框架基础入门,大神就不用挑刺了,有时间多写点东西分享一下吧。

邮箱:xiazhangrui@。

2搭建S t r u t s2搭建所需jar包整合步骤创建项目创建一个web项目,项目名称为SSH,如下所示:导入jar包项目中点击lib,复制需要的jar到lib中即完成导入,如下所示:如果没有导入完成,右键点击项目名(SSH),选择properties-Java Build Path,点击Add Extenrnal JARs,选择项目lib中的jar包进行导入,如下所示:配置web.xml主要配置Struts2容器控制器,如下所示:<?xml version="1.0"encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><!-- struts2容器控制器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndE xecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 欢迎页面 --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>创建webLoginAction主要用于实现逻辑控制控制,通过Struts的调用,处理业务之后,返回给Struts,然后显示给页面,如下所示:LoginAction.javapackage com.ssh.web;publicclass LoginAction {private String name;private String password;public String login() {if (null == name&&null == password) {return"login";} elseif ("ssh".equals(name) &&"12345".equals(password)) {return"ok";} else {return"error";}}public String getName() {return name;}publicvoid setName(String name) { = name;}public String getPassword() {return password;}publicvoid setPassword(String password) {this.password = password;}}创建jsp页面login.jsp是登录页面,其他两个jsp分别写入Login Is Ok 和 Login Is Error,用于登录成功和失败的页面显示,右键点击WebRoot,创建jsp,如下所示:login.jsp<html><body><center><form method="post"action="login">UserName<input type="text"name="name"id="name"/><br/>Password<input type="password"name="password"id="password"/><br/><input type="submit"value="login"/></form></center></body></html>loginOk.jsp<html><body><center><h1>Login Is Ok</h1></center></body></html>loginError.jsp<html><body><center><h1>Login Is Error</h1></center></body></html>配置struts.xml这里配置页面访问访问请求的跳转和返回结果的路径,右键点击src,创建一个xml文件,如下所示:<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><package name="default"extends="struts-default"><action name="login"class="com.ssh.web.LoginAction"method="login"> <result name="login">login.jsp</result><result name="ok">loginOk.jsp</result><result name="error">loginError.jsp</result></action></package></struts>配置Tomcat(1) 点击Window-Preferences-MyEclipse…-Server-Tomcat-Tomcat 6.x配置tomcat 路径,并启用,如下所示:(2) 点击Tomcat 6.x-jdk配置安装的jdk版本,如下所示:部署项目有两种部署项目的方式,第一种类似于物理配置,部署之后,项目的可执行程序复制到Tomcat的webapps里面,因为这样,每次改变项目内容需要重新部署和启动Tomcat,这是最原始的部署方法。

相关文档
最新文档