S2SH项目搭建及使用详解

本篇初衷:前不久有个朋友初入Java领地,在打好必要的基础后,应聘了家软件公司,对方要求其用S2SH 框架做个小项目以考验其基本开发能力。朋友经过两天的动手,也翻找了网上相关资料,还是不能搭建出来。于是本人抽空将S2SH的搭建进行一次详至的介绍,便于初学者入门,少走些弯路。

1.新建web工程S2SHBuild,引入Struts2,Hibernate,Spring三者筛选后的Jar文件:
右击工程->Build Path->add Libraries->User Library->next->User Libraries->new->键入User libray name:ssh_lib->OK->Add JARs->选择本地准备好的jar文件->OK->Finish
Jar引入后:
S2SH项目搭建及使用详解_第1张图片
2.为工程加入Struts2支持:
web.xml内添加Struts2过滤器:
S2SH项目搭建及使用详解_第2张图片
src下创建xml文件,命名为struts.xml并引入struts2文档声明:
S2SH项目搭建及使用详解_第3张图片
3.为工程加入Spring2支持:
web.xml内添加spring装载器:
S2SH项目搭建及使用详解_第4张图片
创建conf.spring包,添加xml文件,命名为applicationContext.xml,并引入Spring2文档声明:
S2SH项目搭建及使用详解_第5张图片
4.给工程添加Hibernate3支持:
首先在Tomcat的lib下添加ojdbc14.jar,在conf/context.xml中<Context/>标签内配置JNDI:
S2SH项目搭建及使用详解_第6张图片
然后在Spring的配置文件applicationContext.xml中配置数据源及sessionFactory:
S2SH项目搭建及使用详解_第7张图片
S2SH项目搭建及使用详解_第8张图片



至此,S2SH搭建并整合完毕并启动成功:


接下来以用户登陆为例演示三者如何协调完成业务的:

首先根据用户业务按如下包结构创建类:
S2SH项目搭建及使用详解_第9张图片
其中:
action包下放Struts2的Action类(继承ActionSupport)【这里为UserAction类】;
service包下放业务接口,【这里为UserService接口】;
impl包下放业务接口实现类,【这里为UserServiceImpl类】;
dao包下放数据库操作层的类(继承HibernateDaoSupport),【这里为UserDao类】;
model包下放javabean及对应的Hibernate映射文件,【这里为User类及User.hbm.xml】;


接着对Spring进行对象bean的配置:

因为Spring配置文件采用了default-autowire="byName"进行自动装配,因此此处不必显式配置依赖的bean。


修改UserAction及UserServiceImpl类,用set方法注入所依赖的其他对象:
S2SH项目搭建及使用详解_第10张图片
S2SH项目搭建及使用详解_第11张图片

创建登陆jsp页面:
S2SH项目搭建及使用详解_第12张图片
页面头部要引入<%@ taglib prefix="s" uri="/struts-tags"%>


然后在struts.xml的<package/>标签中配置<action/>:
S2SH项目搭建及使用详解_第13张图片

UserAction类中引入User属性(提供get、set方法),并编写输入校验方法validateLogin()及业务方法login():
S2SH项目搭建及使用详解_第14张图片

当程序执行到Action类时,会先进行Struts2的类型转换阶段,即将页面的name属性值绑定到Action类的属性上,(此处为private User user);
然后调用业务逻辑方法(此处为login())所对应的验证方法(此处为validateLogin())进入Struts2的校验阶段;
输入校验通过后再派遣调用业务逻辑方法(即login())进入Struts2的业务处理阶段;

业务逻辑方法按顺序调用到dao层:
S2SH项目搭建及使用详解_第15张图片
S2SH项目搭建及使用详解_第16张图片
S2SH项目搭建及使用详解_第17张图片

至此,完成了S2SH的整合及使用演示。

备注:实际开发中因业务庞大,为了便于维护和管理,一般将Struts和Spring配置拆分为多个,并分别在总配置文件中引入子配置文件。也可以Spring来管理Hibernate事务。另外关于本钱各框架在运用上更详细的信息请参考其分类文章

http://blog.csdn.net/zhutianxiang/article/details/5716186

你可能感兴趣的:(s2sh)