Struts+Spring+Hibernate整合入门详解1Word格式.docx
《Struts+Spring+Hibernate整合入门详解1Word格式.docx》由会员分享,可在线阅读,更多相关《Struts+Spring+Hibernate整合入门详解1Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
使用Hibernate能够节约大量项目开发时间,因为整个JDBC层都由这个框架管理。
这意味着您的应用程序的数据访问层位于Hibernate之上,完全是从底层数据模型中抽象出来的。
三种技术到目前已经比较成熟,而且他们都是免费的!
让我们对三者集成进行一个初览(简单而不专业):
我们用Struts实现从Web(网页,MVC中的View)到后台系统的映射(WebAction),然后由Spring管理这些Action,把它们作为Bean和其他对象一起处理。
这些Bean之间处理业务逻辑、数据、系统状态等,且它们被Spring统一管理,为了区分,就算大概包括MVC的MC部分吧。
然后需要持久化的数据由Spring和Hibernate之间的接口交由Hibernate处理(这个属于持久层)。
必须基础:
只要Java基础,一点HTML知识、XML基础就可以了。
本文的目的就是从零开始建立第一个Struts+Spring+Hibernate应用。
即使它是最简单的,我们也希望初学者能够从中理解一些思想,其中也包括系统架构的设计思想。
二、环境搭建
我们坚持免费才是硬道理,开源才是好事情,所以我们全部使用开源免费的工具和软件。
如果使用MyEclipse,其中的工具将有助于简化下面演示的工程开发,但本文不用。
所需软件包如下表:
序号
包
下载地址和文件(包)名
说明
1
JDK5.0
2
EclipseWTP
Eclipse
IDEforJava
EE
Developers
下载AllinOne,这样不用自己下载其他插件
包含网站开发的Eclipse,v3.3,下载AllinOne
3
HibernateSynchronizer-3.1.9
帮助开发Hibernate应用的Eclipse插件
4
Hibernate3
hibernate3所指示的包
Hibernate支持包
5
Spring
spring-framework-2.0.6-with-dependencies.zip
6
SpringIDE(可选)
http:
//springide.org/updatesite/包名如
springide_updatesite_2.0.1_v200707300600.zip
7
Struts
//struts.apache.org/download.cgi
为了较全的例子和文档,建议下载
struts-2.0.9-all.zip否则只下载lib:
struts-2.0.9-lib.zip
8
Tomcat
//tomcat.apache.org?
建议下载v5.5以上版本,应用服务器(支持JSP等)Apache项目之一
9
MySQL
Hibernate演示需要
1、下载了eclipse以后安装。
在所安装的目录下有两个子目录plugins和features,这是两个放eclipse插件的目录,即可以通过拷贝需要的文件到这些目录里面,从而给eclipse添加新的功能。
2、将第3、6的包解压,将其中的plugins目录直接复制到eclipse安装目录下,选择“全部”替换。
3、运行eclipse,选择一个空目录作为工作区(WorkSpace),启动以后可以看到Welcome.html的欢迎界面。
现在建立新工程FileNewProject,在打开的NewProject窗口中选择WebDynamicWebProject。
输入Projectname,在TargetRuntime一项选择新建(New),选择你所安装的ApacheTomcat,在弹出窗口输入相关信息(Tomcat安装目录等)。
新建工程流程如下图。
工程结构如下:
其中我们要写的Java代码在JavaResource:
src(以后直接称src)下,网站根目录内容在WebContent下,类所在根目录是WEB-INF/classes,Eclipse会自动将build/classes里面已经编译的类同步过去。
向WEB-INF下的lib目录添加如下所列的jar包。
(1)这些包在下载解压后Spring,Struts,Hibernate的lib目录或者dist/module目录下面(如果不在,可以到网上google一把。
列表中mysql-*.jar包是MySQL数据库的JDBCDriver)。
也可以把所有lib和dist下的jar包拷贝过来(可以在系统复制这些jar包,然后到Eclipse里面选中WEB-INF里面的lib包,然后粘帖就可以了)。
但要注意全拷贝可能会存在冲突,如struts*plugin.jar等包不能引入,否则不能运行。
(2)这些Jar包是:
antlr-2.7.2.jar
cglib-nodep-2.1_3.jar
commons-beanutils-1.6.jar
commons-chain-1.1.jar
commons-collections-2.1.1.jar
commons-dbcp.jar
commons-digester.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
commons-pool.jar
commons-validator-1.3.0.jar
dom4j-1.6.1.jar
el-api.jar
el-ri.jar
freemarker-2.3.8.jar
hibernate3.jar
jsf-api.jar
jta.jar
mysql-connector-java-3.0.14-production-bin.jar
ognl-2.6.11.jar
oro-2.0.8.jar
spring-hibernate3.jar
spring.jar
struts-config.xml
struts-core-1.3.5.jar
struts2-codebehind-plugin-2.0.9.jar
struts2-config-browser-plugin-2.0.9.jar
struts2-core-2.0.9.jar
struts2-jasperreports-plugin-2.0.9.jar
struts2-jfreechart-plugin-2.0.9.jar
struts2-jsf-plugin-2.0.9.jar
struts2-pell-multipart-plugin-2.0.9.jar
struts2-plexus-plugin-2.0.9.jar
struts2-sitegraph-plugin-2.0.9.jar
struts2-sitemesh-plugin-2.0.9.jar
struts2-spring-plugin-2.0.9.jar
struts2-struts1-plugin-2.0.9.jar
struts2-tiles-plugin-2.0.9.jar
tiles-api-2.0.4.jar
tiles-core-2.0.4.jar
tiles-jsp-2.0.4.jar
xwork-2.0.4.jar
三、开始工作
在WebContent下建立index.jsp,建立方式如图。
index.jsp的内容如表,我们暂时不分析。
<
%@pagecontentType="
text/html;
charset=UTF-8"
%>
html>
<
head>
title>
ExamplebyDoerLiu@UTStarcomsz<
/title>
/head>
body>
ThisismyJSPpage.<
br>
formname="
userInfoForm"
action="
login.do"
method="
post"
>
用户名:
inputname="
username"
type="
text"
/>
密码:
password"
sub"
submit"
value="
增加"
res"
reset"
重置"
/form>
/body>
/html>
此时就可以运行该工程,忙了这么久,看看效果吧。
运行方式:
右键点击index.jsp,选择Run/DebugAsRunonServer,在弹出窗口中默认我们使用的TomcatServer,点击finish完成。
可以看到eclipse中内嵌的浏览器显示我们的网页。
其中表单的输入在我们的工程中将得到输入数据(用户名和密码),这些数据会传给我们将要建立的Action处理。
现在来看看如何建立我们的Action。
在src下新建一个package(包)名为action用于保存响应Web请求的Action类。
在action包下新建Action类LoginAction(action.LoginAction)如下,注意类的继承关系。
packageaction;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importorg.apache.struts.validator.DynaValidatorForm;
importorg.spri