- 浏览: 1589896 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
注解配置:Struts2+Spring2.5+Hibernate3.3+Oracle11g
本文介绍
1.Struts2+Spring2.5+Hibernate3.3的整合
2.采用单元测试
3.加入了lob类型的操作配置
4.介绍oralce驱动 本文采用oracle11g
5.在HIbernate中采用“枚举”设置映射关系
jar的下载:
Struts2: http://struts.apache.org/download.cgi#struts2013
Hibernate: http://www.hibernate.org/ 点击Hibernate Core 下载
Spring: http://www.springsource.org/download
Oracle的驱动介绍
SSH2整合需要的Jar
1.Strusts
2.Hibernate
3.Spring
整合步骤先整合 Spring2.5+Hibernate3.3 成功后在整合 Struts2 这样就不容易报错,而且 报错误后也便于找出问题。
spring配置文件模版可以到 spring自带的一些例子中进行拷贝。
applicationContext.xml
Employee.java
Gender.java
Employee.hbm.xml
web.xml
EmployeeService.java
EmployeeServiceBean.java
EmployeeAction.java
EmployeeManageAction.java
struts.xml
employee.jsp
employeeAdd.jsp
message.jsp
--访问http://localhost:8080/SSH2/employee/list.action
--访问http://localhost:8080/SSH2/employee/list.action
Spring,Struts,Hibernate,Oracle
Struts2, Spring, Hibernate, Oracle, prototype
应该是少了包
嗯,手误。不好意思。
鼓励提出错误,希望提出个人见解!!!
本文介绍
1.Struts2+Spring2.5+Hibernate3.3的整合
2.采用单元测试
3.加入了lob类型的操作配置
4.介绍oralce驱动 本文采用oracle11g
5.在HIbernate中采用“枚举”设置映射关系
jar的下载:
Struts2: http://struts.apache.org/download.cgi#struts2013
Hibernate: http://www.hibernate.org/ 点击Hibernate Core 下载
Spring: http://www.springsource.org/download
Oracle的驱动介绍
class12.jar(jdk 1.2 / 1.3 ) class14.jar(jdk 1.4 / 1.5) 其实只要安装了oracle 就不用下载驱动包了,在安装程序中就有D:\app\Admin\product\11.1.0\db_1\jdbc\lib 这个目录下 根据使用的jdk 选择对应的驱动包就可以了。(例如: ojdbc6.jar)
SSH2整合需要的Jar
1.Strusts
javassist-3.4.GA.jar commons-fileupload-1.2.1.jar commons-logging-1.0.4.jar freemarker-2.3.15.jar ognl-2.7.3.jar struts2-core-2.1.8.jar xwork-core-2.1.6.jar struts2-spring-plugin-2.1.8.jar
2.Hibernate
commons-collections-3.1.jar dom4j-1.6.1.jar ehcache-1.2.3.jar ejb3-persistence.jar hibernate-annotations.jar hibernate-cglib-repack-2.1_3.jar hibernate-commons-annotations.jar hibernate-entitymanager.jar //为了使用 枚举 类型的映射 这个包 hibernate3.jar javassist-3.4.GA.jar jta-1.1.jar log4j.jar slf4j-api-1.5.2.jar slf4j-log4j12.jar
3.Spring
aspectjrt.jar aspectjweaver.jar c3p0-0.9.1.2.jar cglib-nodep-2.1_3.jar common-annotations.jar log4j-1.2.15.jar spring.jar
整合步骤先整合 Spring2.5+Hibernate3.3 成功后在整合 Struts2 这样就不容易报错,而且 报错误后也便于找出问题。
spring配置文件模版可以到 spring自带的一些例子中进行拷贝。
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 采用扫描 + 注解的方式进行开发 可以提高开发效率,后期维护变的困难了,可读性变差了 --> <context:component-scan base-package="com.sh"/> <!-- 采用c3p0数据源 这个是在企业中用的比较多的一个数据源 --> <!-- destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/> <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="user" value="luob"/> <property name="password" value="m123"/> <!-- 连接池中的最大连接数 --> <property name="maxPoolSize" value="150"/> <!-- 连接池中的最小连接数 --> <property name="minPoolSize" value="1"></property> <!-- 初始化连接池中的 连接数,取值 在 minPoolSize 和 maxPoolSize 之间,default:3--> <property name="initialPoolSize" value="3"/> <!-- 最大空闲时间,60s内该连接没有被使用则被丢弃,若为0 永不丢弃.default:0 --> <property name="maxIdleTime" value="60"/> <!-- 当连接数不够时,每次同时创建多少个连接 --> <property name="acquireIncrement" value="1"/> <!-- 每60s检查连接池中的所有空间连接,如果没有被使用,就被放弃, default:0 --> <property name="idleConnectionTestPeriod" value="60"/> </bean> <!--从c3p0数据源中抽取出JDBC的代理对象--> <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" lazy-init="true" /> <!--9i: org.springframework.jdbc.support.lob.OracleLobHandler --> <!--10g以后:org.springframework.jdbc.support.lob.DefaultLobHandler(mysql,DB2等都可以用这个) --> <bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <!-- 9i: 指定操作lob类型数据的jdbc代理对象 如果上面的 lobHandler 换了下面的就不需要了 --> <property name="nativeJdbcExtractor"> <ref local="nativeJdbcExtractor" /> </property> </bean> <!-- 将Hibernate中的事物交给Spring进行接管 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 指定sessiongFactory中的数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 指定hibernate的属性 --> <property name="hibernateProperties"> <value> <!-- hibernate使用的 方言 --> hibernate.dialect=org.hibernate.dialect.Oracle10gDialect <!-- 根据实体的映射文件生成表结构 --> hibernate.hbm2ddl.auto=update <!-- 格式化sql --> hibernate.format_sql=false <!-- 是否打印出sql语句 --> hibernate.show_sql=false </value> </property> <!-- 定义lob操作对象 --> <property name="lobHandler"> <ref bean="lobHandler" /> </property> <!-- 指定hibernate的映射文件 --> <property name="mappingResources"> <list> <value>com/sh/employee/model/Employee.hbm.xml</value> </list> </property> </bean> <!-- 配置使用基于Hibernate的事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <!-- spring需要通过sessionFactory来开启事务 --> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!--Spring中的事物配置声明.1 基于xml 配置方式 2.基于注解来声明那些类--> <tx:annotation-driven transaction-manager="txManager"/> </beans>
Employee.java
package com.sh.employee.model; public class Employee { private String username; private String password; //枚举类型 private Gender gender=Gender.MAN; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public Employee(String username, String password) { super(); this.username = username; this.password = password; } public Employee() { super(); // TODO Auto-generated constructor stub } public Employee(String username, String password, Gender gender) { super(); this.username = username; this.password = password; this.gender = gender; } }
Gender.java
package com.sh.employee.model; public enum Gender { //分为字面值 :MAN / WOMAN //索引值:0 1 MAN,WOMAN }
Employee.hbm.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.sh.employee.model"> <class name="Employee"> <id name="username" length="20"/> <property name="password" length="20" not-null="true"/> <property name="gender" not-null="true" length="5"> <type name="org.hibernate.type.EnumType"> <param name="enumClass">com.sh.employee.model.Gender</param> <!--type:12 为java.sql.Types.VARCHAR常量值,即保存枚举字面值到数据库。 如果不指定(删除)type:则保存枚举索引值到数据库(从0 开始) --> <param name="type">12</param> </type> </property> </class> </hibernate-mapping>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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"> <!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 如果有多个文件 使用 "," 分开 --> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 对spring容器进行实例化 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--配置Struts2的过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</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>
EmployeeService.java
package com.sh.employee.interfaces; import java.util.List; import com.sh.employee.model.Employee; public interface EmployeeService { void save(Employee employee); void update(Employee employee); Employee find(String userName); void delete(String... userName); List<Employee> list(); }
EmployeeServiceBean.java
package com.sh.employee.service; import java.util.List; import javax.annotation.Resource; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.sh.employee.interfaces.EmployeeService; import com.sh.employee.model.Employee; /** *@author LuoB. */ //@Service: 定义业务层。采用扫描加注解 将这个类交给spring管理 。 //-----此时 在spring容器中默认的bean的名称为 这个类的简单类名 employeeServiceBean //@Transactional:定义这个类采用事物管理。这样所有的方法都有事物特性了。 //-----如果某个方法不需要事物 采用这个标识:@Transactional(propagation=Propagation.NOT_SUPPORTED) @Service @Transactional public class EmployeeServiceBean implements EmployeeService { //采用注解方式注入SessionFactory //factory.openSession(); 表示开启一个新的session,这样就不能使用spring的事物管理了 //spring的事物管理一般是先获取当前的session,然后 将这个begin。 //factory.getCurrentSession();【在Hibernate3.0后才提供的这样的一个方法】得到 spring事物管理创建好的session @Resource SessionFactory factory; public void delete(String... userName) { //中间的load 替换了 get方法 因为速度和效率 比get 高 for (String string : userName) { factory.getCurrentSession().delete(factory.getCurrentSession().load(Employee.class, string)); } } @Transactional(propagation=Propagation.NOT_SUPPORTED) public Employee find(String userName) { // TODO Auto-generated method stub return (Employee)factory.getCurrentSession().get(Employee.class, userName); } @SuppressWarnings("unchecked") public List<Employee> list() { //Hql 进行查询 /*Session session=factory.openSession(); Transaction ts= session.beginTransaction(); ts.commit(); ts.rollback();*/ return factory.getCurrentSession().createQuery("from Employee").list(); } public void save(Employee employee) { //持久化方法 -内部还是调用save方法 factory.getCurrentSession().persist(employee); } public void update(Employee employee) { // merge对update更新了有 save和update的功能 factory.getCurrentSession().merge(employee); } }
EmployeeAction.java
package com.sh.employee.action; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionContext; import com.sh.employee.interfaces.EmployeeService; //@Controller 标识这个action为spring中的一个控制层,在spring中为类的简单类名 @Controller public class EmployeeAction { @Resource EmployeeService employeeService; public String execute(){ ActionContext.getContext().put("employees",employeeService.list()); return "list"; } }
EmployeeManageAction.java
package com.sh.employee.action; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionContext; import com.sh.employee.interfaces.EmployeeService; import com.sh.employee.model.Employee; //因为Struts2在每次接受到请求后,会迅速的创建actionContext,ValueStack,action //然后把Action存在在ValueStack中 所以Action可以被OGNL访问. //但是把Action交给Spring管理后,action 就是单利模式了,这样 就违背了Struts2的设计理念。 //所以 我们需要 将action 声明为 原型 @Scope("prototype") @Controller @Scope("prototype") public class EmployeeManageAction { @Resource EmployeeService employeeService; //如果 某个action 不声明为原型(比如: EmployeeAction) 千万不要在该action中 保存用户提交过来的数据 //比如下面 如果是但单利模式 所有的请求都可以访问这个对象了 private Employee employee; public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public String addUI(){ return "add"; } public String add(){ employeeService.save(employee); ActionContext.getContext().put("msg", "保存成功!"); return "message"; } }
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 设置struts的对象工厂,由spring进行创建 (更换Struts2的工厂)--> <!-- 实际上这个常量不配置也可以,如果项目中使用了struts2-spring-plugin-2.1.8.jar 那么可以不用配置 如果使用了其他的第三方plugin,建议明确配置struts2的对象工厂 --> <constant name="struts.objectFactory" value="spring"/> <package name="employee" namespace="/employee" extends="struts-default"> <!-- 此时action开始由spring进行创建和管理,因此不用写上action的类名。 需要写上action在spring中的简单类名 --> <!-- http://localhost:8080/SSH2/employee/list.action --> <action name="list" class="employeeAction"> <result name="list">/WEB-INF/page/employee.jsp</result> </action> <!-- http://localhost:8080/SSH2/employee/manage_addUI.action --> <action name="manage_*" class="employeeManageAction" method="{1}"> <result name="add">/WEB-INF/page/employeeAdd.jsp</result> <result name="message">/WEB-INF/page/message.jsp</result> </action> </package> </struts>
employee.jsp
<body> 采用OGNL表达式获取<br/> <s:iterator value="#request.employees"> <s:property value="username"/>,<s:property value="password"/>,<s:property value="gender"/><br/> </s:iterator> <br/>采用JSTL/EL表达式获取<br/> <c:forEach var="emp" items="${employees}" varStatus="st"> ${emp.username},${emp.password},${gender}<br/> </c:forEach> [url=<s:url action=]">员工添加[/url] </body>
employeeAdd.jsp
<body> <s:form action="manage_add" namespace="/employee" method="post" theme="simple"> 用户名:<s:textfield name="employee.username"/><br/> 密码:<s:textfield name="employee.password"/><br/> 性别:<s:radio list="#{'MAN':'男','WOMEN':'女'}" listKey="key" listValue="value" name="employee.gender"/><br/> <s:submit value="保存"/> </s:form> </body>
message.jsp
<body> <h1><font color="red">${msg}</font></h1> [url=${pageContext.request.contextPath}/employee/list.action]返回员工列表[/url] </body>
--访问http://localhost:8080/SSH2/employee/list.action
--访问http://localhost:8080/SSH2/employee/list.action
Spring,Struts,Hibernate,Oracle
Struts2, Spring, Hibernate, Oracle, prototype
- Struts_jar.zip (3.5 MB)
- 下载次数: 275
- Spring_jar.zip (5.1 MB)
- 下载次数: 289
- Hibernate_jar.zip (4.9 MB)
- 下载次数: 229
- WEB-INF.zip (3.2 KB)
- 下载次数: 196
- src.zip (9.9 KB)
- 下载次数: 205
- ojdbc6.jar (1.9 MB)
- 下载次数: 154
评论
11 楼
被遗忘的下路
2017-12-22
少了个junit-4.8.2的包
10 楼
maocai15
2016-05-03
写的真好,根据这篇搭建文章,我自己整理了一下,完整的包和可以在eclipse中运行的完整SSH项目在这里下载,也包括源代码
http://how2j.cn/k/ssh/ssh-integrationtest/100.html
http://how2j.cn/k/ssh/ssh-integrationtest/100.html
9 楼
java3344520
2013-05-09
不错,测试成功,最好能把步骤总结下,兄弟!
8 楼
Luob.
2012-09-14
xuliuliu 写道
为什么会报错啊
找不到
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
这个问题如何解决
找不到
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
这个问题如何解决
应该是少了包
7 楼
xuliuliu
2012-09-14
为什么会报错啊
找不到
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
这个问题如何解决
找不到
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
这个问题如何解决
6 楼
shuaiji
2012-09-14
想请问一下,扫描和注解方式会变得维护困难,什么方便便于维护
5 楼
lsjinpeng
2012-09-14
matk idea
4 楼
Luob.
2012-09-14
shuaiji 写道
Oracle 拼错了。
嗯,手误。不好意思。
鼓励提出错误,希望提出个人见解!!!
3 楼
shuaiji
2012-09-14
Oracle 拼错了。
2 楼
steafler
2012-09-14
用最新的吧,spring3+hibernate4,略显过时了
1 楼
Java路
2012-09-14
不错!!!!
发表评论
-
spring-session 中的坑
2017-07-06 15:34 9995spring-session 配置 依赖 gradle ... -
Spring AspectJ Aop Annotation
2017-03-29 17:08 708import org.aspectj.lang.Proce ... -
spring 第13天 使用@scheduled注解执行定时任务
2015-01-06 23:11 54085我们使用spring的注解 @Scheduled 执行定时任务 ... -
Spring 第12天,事务传播属性和 隔离级别
2014-09-28 00:36 8161 事务的传播属性(Propagation) 1) REQ ... -
spring 第11天 quartz任务调度
2014-08-24 13:59 1146Quartz是一个强大的企业级任务调度框架,Spring中继承 ... -
spring 第10 天 AOP 面向切面
2014-08-21 00:08 1752AOP(Aspect Orient Programming ... -
spring 第9天 Resurce 资源访问
2014-08-17 22:20 1868Spring Resource接口 spring提供的Reso ... -
spring 第8天 Spring 注解
2014-08-17 15:33 1472spring注解 @Component:标注一个普通的sp ... -
spring 第7天 Bean,BeanFactory处理器,配置器
2014-08-16 21:46 1237spring 两种后处理器 第一种,Bean 后处理器 对容器 ... -
spring 第6天SpEL,P命名空间,Util Schema
2014-08-13 22:52 1315使用p名称空间配置属性 ... -
spring 第5天不同作用域的bean,注入Field,方法返回值
2014-08-11 22:31 2113协调作用域不同步的bean 问题是;当一个singleton的 ... -
spring 第4天bean继承,init,destory-method
2014-08-10 17:54 1654深入理解Spring容器中的b ... -
spring 第3天使用java类和XML配置bean
2014-08-09 16:51 1506下面采用java类来配置bean,前面都采用xml进行配置be ... -
spring 第2天,bean作用域,自动注入集合
2014-08-06 22:16 1932sping容器中的Bean <!---beans的全 ... -
spring 第1天 IOC,DI,国际化,容器事件
2014-08-04 21:27 13951.构造注入(就是使用 构 ... -
解决getOutputStream() has already been called for this response
2014-07-30 19:16 3315java.lang.IllegalStateException ... -
SpringMVC 注解 和非注解
2014-01-26 10:29 18018首先看看非注解的项目结构 在web.xml文件 配置spr ... -
Hibernate的属性映射配置
2014-01-08 23:20 2173package com.crazyit.app.domai ... -
Hibernate 的初始化
2014-01-08 22:43 3555public static void main(Strin ... -
Hibernate 的关系与配置
2014-01-05 21:57 28161.单向 N:1 例如:一个地方有多个人住. (在1 的一端 ...
相关推荐
Maven整合SSH案例 ************************************************************************************* 注意:运行前请配置Maven环境,和修改config.properties中数据库名称用户和密码,并且修改Tuser中的...
SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...
SSH整合是软件开发中一种常见的技术实践,主要指的是Spring、Struts和Hibernate这三大开源框架的集成应用。这个小案例提供了SSH整合的具体实现,对于项目研发具有很高的实用价值。下面我们将详细探讨SSH整合的关键...
SSH2整合案例的学习不仅可以帮助开发者理解这三个框架的集成原理,还能提高实际项目中的开发效率,因为它们各自解决了一部分问题,组合起来可以提供一个强大且灵活的解决方案。通过深入研究SSH2整合,开发者可以更好...
SSH2整合的案例旨在帮助开发者理解和实践这三大框架的协同工作,提升对Java Web开发的理解。在实际开发中,这样的整合可以大大提高开发效率,同时保证代码的可读性和可维护性。通过这个案例,你可以学习到如何利用...
SSH项目整合是软件开发中的一种常见...这个简单的SSH项目整合案例,提供了一个基础的客户信息管理系统,涵盖了CRUD操作。通过学习和实践这个案例,开发者可以深入理解SSH框架间的协同工作原理,提升Java Web开发技能。
这个"ssh整合案例代码"应该提供了一个完整的示例,帮助开发者了解如何在实际项目中将这三个框架协同工作。接下来,我们将深入探讨SSH整合的核心概念、配置以及常见应用场景。 **Spring框架**:Spring是Java企业级...
SSH2整合小案例主要涉及到的是Secure Shell (SSH) 协议的第二版,这是一个用于在网络设备之间提供安全通信的协议。SSH2常用于远程登录、命令执行、文件传输等,尤其在Linux和Unix系统中广泛使用。在这个小案例中,...
**JBPM5.4 SSH 完整项目整合案例** 该案例是基于JBPM5.4、Spring(SSH框架的一部分)的集成应用实例,旨在展示如何将业务流程管理(BPM)系统JBPM与Spring框架无缝结合,实现企业级的业务流程自动化。SSH,即Struts...
NULL 博文链接:https://wuxiangqian.iteye.com/blog/1292591
这个整合案例提供了在Eclipse环境中快速搭建SSH2项目的基础结构,包括所有必需的jar包,便于开发者进行Web应用的开发。 **Struts2** 是一个基于MVC设计模式的Web应用框架,它有效地解决了JSP模型2中的表现层与业务...
SSH整合案例(myeclipse)搭建,这个案例没有业务代码,就单纯地把SSH的框架平台搭好,你们可以很顺利的在上面开发,而无需花时间搭平台了。懒人装用,测试通过了。如果有什么问题,留言解决,注意给个好评,谢谢。
简单的案例整合SSH框架的应用,主要熟悉SSH三大框架的使用
SSH整合是Java开发中一种常见的Web应用架构模式,它由三个强大的开源框架组成:Struts2、Hibernate和Spring。这个组合被广泛应用于构建复杂、可维护的企业级应用程序。接下来,我们将详细探讨这三个框架以及它们如何...
SSH整合案例有助于理解这些框架如何协同工作,提高开发效率,减少代码冗余。通过这样的整合,开发者可以更专注于业务逻辑,而非底层的技术细节。在实际项目中,SSH整合也是很多大型企业级应用的首选方案,因为它提供...
SSH框架经典整合案例是IT行业中一个非常重要的主题,它涵盖了Struts2、Spring和Hibernate这三个主流的Java开发框架。这三者之间的集成可以为开发者提供一个高效、灵活且功能强大的后端开发环境,广泛应用于企业级...
SSH整合经典实例主要涉及到的是Java开发中的三大框架:Spring、Struts和Hibernate的集成应用,这些框架在J2EE体系中被广泛使用,为开发者提供了高效、便捷的开发环境。SSH整合是Java企业级开发中一种常见的解决方案...
"flex ssh2整合案例"是一个具体的项目,展示了如何将Flex前端、Spring、Struct2后端以及Hibernate持久化层进行融合,实现一个完整的Web应用解决方案。以下是这个案例涉及的关键知识点的详细解析: 1. **Flex**:...
04 SSH 尚硅谷SSH整合&综合案例视频 教程视频:Struts2+Spring+Hibernate整合