何为SSH框架?
SSH为 Struts+Spring+Hibernate的一个集成框架,它是目前较为流行的一种web应用程序开源框架。
Struts框架是作为系统的基础架构,它主要负责MVC的分离,控制业务的跳转。具体表现在JSP页面交互,负责传输和接受传送请求(request)和接受响应(response),然后Struts根据配置文件(struts-config.xml)将ActionSerlet接收到的Request委派给Action处理。
Spring框架是作为系统的管理,管理struts和hibernate,具体的实现是通过ICO容器向Acition提交业务模型,同时通过Dao组件来完成业务的逻辑。(ico是spring框架的一个重要机制)
Hibernate框架实现DAO类来实现JAVA类和与据库进行数据交换。
Demo
下面通过SSH商城中的用户注册例子来具体运用一下SSH框架
1、首先要进行一下hibernate配置
<!-- Hibernate的相关信息 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 注入连接池 --> <property name="dataSource" ref="dataSource"/> <!-- 配置Hibernate的其他的属性 --> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.connection.autocommit">false</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <!-- 配置Hibernate的映射文件 --> <property name="mappingResources"> <list> <value>cn/itcast/shop/user/vo/User.hbm.xml</value> </list> </property> </bean>
2、application中配置一下跳转到User中的Action
/** *Action配置 */ <bean id="userAction" class="cn.itcast.user.action.UserAction" scope="prototype"> <!-- 注入Service --> <property name="userService" ref="userService"/> </bean> <!-- Service的配置 --> <bean id="userService" class="cn.itcast.shop.user.service.UserService"> <property name="userDao" ref="userDao"/> </bean> <!-- Dao的配置 --> <bean id="userDao" class="cn.itcast.shop.user.dao.UserDao"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
3、再去Struts中配置一下跳转页面
<action name="user_" class="userAction" method="{1}"> <result name="registPage">/WEB-INF/jsp/regist.jsp</result> </action>
4、UserAction中跳转的方法
/** * 跳转到注册页面的执行方法 */ public String registPage(){ return "registPage"; }
5、页面注册链接
<a href="${ pageContext.request.contextPath }/user_registPage.action">注册</a>| //业务层完成用户注册代码: UserService public void save(User user) { //将数据存入到数据库 user.setState(0); //0:代表用户未激活。 1:代表用户已经激活 //调用工具类来生成随机字符 String code=UUIDUtils.getUUID()+UUIDUtils.getUUID(); user.setCode(code); userDao.save(user); } DAO //注册用户存入数据库代码实现 public void save(User user) { this.getHibernateTemplate().save(user); }
总结
通过对SSH网上商城的学习,自己对java变成有了一定的了解。SSH框架和在.net高校项目中有很多相通的地方。基本上是将三层架构进一步分离,降低模块之间的耦合性。提高代码的复用性和灵活性,方便后期的修改。
.NET高校项目(MVC+WCF+EF)其中也用到了Spring的一些机制。如:依赖注入。
SSH商城(MVC+Spring+Struts+Hibernate)