JEE“SSH框架”实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院综合性实验报告
一、实验目的
1.SSH 为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
因此希望通过本次实验充分了解SHH框架集成应用的设计理念和具体步骤;
2.通过翻阅课本,查阅资料,培养一个程序员应有的信息搜索能力已经借助其他工具解决问题的能力;
3.真正掌握三个框架的精髓,更好地应用与以后的学习工作中去。
二、实验仪器或设备
MyEclipse6.5
Tomcat5.5.26
MySQL5.0
数据库脚本程序
CREATE TABLE user (
id int(11) NOT NULL auto_increment,
username varchar(50) default NULL,
password varchar(50) default NULL,
PRIMARY KEY (id)
);
INSERT INTO user VALUES ('1', 'admin', 'admin');
三、总体设计(设计原理、设计方案及流程等)
1.创建工程
打开MyEclipse,需要注意的是这里应该处于MyEclipse Java Enterprise视图。
新建一个Web Project,输入适当的工程名字,这里我们输入ssh,Finish即可。
确定之后MyEclipse会生成名为SSH的项目,其中生成的目录结构如下所示:
四、实验步骤(包括主要步骤、代码分析等)
1. 添加Struts1.2框架支持
在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Struts Capabilities…
添加Struts的支持。
在弹出的对话框中选择Struts 1.2,修改Base package for new classes
其余保持原状,Finish即可。
完成后的结构为
2. 添加Spring2.0框架支持
在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Spring Capabilities…添加Spring框架支持。
由于Spring采取最小化库发布的方式,使得Spring的库文件彼此都是分离的。
因而我们需要自己选择需要的库,需要引用的如下图:
选择好后Next,在窗口中选择Browse,选择ssh工程下面的WEB-INF文件夹。
然后Finsh
3. 配置数据源
在MyEclipse右上角选择MyEclipse Database Explorer,打开数据库管理视图。
在左侧的DB Browser点击右键,选择New…打开Database Driver对话框。
在Database Driver对话框中按照如下配置选择数据库驱动。
首先选择Driver Template。
在这里我们选择MySQL。
Driver Name是以后配置时使用的驱动名字,用以区分驱动。
这里使用MySQL即可。
然后根据实际情况填写URL,User name和Password。
点击Add JARs添加数
据库驱动文件。
为方便配置,可以选择Save password保存密码。
配置完毕后Finish即可。
4. Spring与Hibernate的整合
当配置完数据源后,就可以添加Hibernate支持了。
切换到MyEclipse Java Enterprise视图,在ssh工程上面右击。
在弹出的菜单中选择MyEclipse -> Add Hibernate Capabilities,添加Hibernate的支持。
我们选择Hibernate3.2,全部按照默认设置即可,然后点击Next
在对话框中选择Spring configuration file,表示我们希望将Hibernate托管给Spring进
行管理,这是将Hibernate与Spring进行整合的基础。
然后点击Next
在出现的对话框中选择Existing Spring configuration file。
因为我们已经添加了Spring 的配置文件,所以这里选择的是已存在的配置文件。
MyEclipse会自动找到存在的那个文件。
然后在SessionFactory ID中输入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,这里我们输入sessionFactory即可。
然后点击Next
在出现的对话框中的Bean Id里面输入数据源在Spring中的Bean ID的名字,这里我们输入dataSource。
然后在DB Driver里面选择我们刚刚配置好的ssh,MyEclipse会将其余的信息
自动填写到表格里面。
然后点击Next
在出现的对话框中取消Create SessionFactory class。
点击Finish即可。
此时MyEclipse会自动打开Spring的配置文件,文件内容为:
此时,切换到MyEclipse DataBase Explorer视图,右键打开数据库连接,在需要使用的数据表格上面点击右键,选择Hibernate Reverse Engineering。
这里我们使用刚刚建立在test数据库中添加的user表。
在打开的对话框中修改Java src folder为我们建立的/ssh/src,这里需要选择到src 文件夹,并且需要填写Java package,这是MyEclipse生成的类所在的包,我们将其取名为user。
然后选择Java Data Object,建立POJO类。
然后选择Java Data Access Object。
其中,POJO类是数据库表格所对应的Java类。
JDO类是MyEclipse自动生成的对数据库的一些操作。
这里会封装一些常用的操作,简化我们的编写。
填写完成后点击Next。
在出现的对话框中选择ID Generator为native,然后点击Finish即可。
此时ssh项目的目录结构如下所示。
其中的User.Java是MyEclipse生成的使用面向对象的Java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些MyEclipse自动生成的对数据库的操作。
这时我们修改一下文件目录,使之更好的组织。
我们建立一个dao包,将DAO类与POJO类分开。
然后我们在struts包下面建立action和form包,用来管理Struts的Action和Form。
为了将实现与接口进行解耦。
我们建议在dao包下面添加接口,然后建立dao.impl包,将实际的DAO类放在这里。
DAO类是直接与数据库打交道的类,为了对业务逻辑进行封装,我们将业务全部写在service类里面,和dao一样,我们先建立service包,里面添加业务接口,具体的实现放在service.impl里面。
将UserDAO.java移动到dao的impl包下面,并在dao 包下建立接口IUserDAO内容为:
在service中建立接口IUserService.java,在service中impl中建立UserService.java
此时的整体工程结构为:
此时的applicationContext内容需要配置bean内容为:
5. 整合Struts和Spring
Struts和Spring整合方式其核心是让Struts能够访问到交给Spring进行托管的类,这个我在网上看到了一个方式,自我认为很好,因此只要我们可以让Struts从Spring获得需要
的类就可以了。
为了达到这个目标,我们创建一个类BaseAction
为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容
6.测试
通过上面的配置,我们已经能够让这三个框架来协同作战了,让我们现在来测试一下。
首先创建基于Struts的JSP页面。
打开WEB-INF下面的struts-config.xml,单击右键,选择New -> Form, Action and JSP。
在弹出的对话框中添加User case,然后点击Add生成Properties代码。
这会由MyEclipse 自动生成相应的Form代码。
输入完成后选择JSP选项卡,选上Create JSP form,修改路径,然后点击Next。
在出现的对话框中修改Path,将Superclass更改为前面定义的BaseAction,然后将Input Source修改为自己需要的路径。
完成后Finish即可。
然后在struts-config.xml点击右键,选择New -> Forward,准备创建一个ActionForward。
在弹出的对话框中,选择Local Action Forward,通过Browser填写Action Path,然后填写Name和Path,完成后点击Finish即可。
在LoginAction中添加如下代码
login.jsp内容
Ok,这时我们可以启动Tomcat进行查看页面了
7.异常处理
上面的工作完成以后理论上应该可用,但是当你运行的事后却发现会有一个非常诡异的异常出现
这个问题本来面目是这样,由于MyEclipse给我们做的事情太全面了,全面到spring和hibernate的包都是重复引用的。
其解决办法就是干掉多余的包,在Tomcat 5.5\webapps\ssh\WEB-INF\lib下的asm-2.2.3.jar就可以了,在重启Tomcat我们看看我们
真令人失望又失败了……有如下异常。
忘了加入bean的初始化,在applicationContext.xml中加入如下内容就可以了
历经千难万阻,我们终于看到了一个想看的巨破巨简陋的界面,就到这里吧,估计大家要疯了。
五、结果分析与总结
好了这就是我这位菜鸟完整记录的myeclipse搭建SSH详细讲解了,中间肯定会出现解释错误,我也会要更加深入地学习。
三个框架学完了,集成也搞定了,下面就来做下总结。
想了好几天了对于ssh框架总觉的还是有什么地方不太对头。
这三个框架对我来说,感觉最感兴趣的还是spring,有时间一定研究下spring的AOP和IOC,相信随着不断实践能够更加清楚的认识其中的奥妙,并能有更加正确的认识。
简单说下就是:
*struts找spring就是在struts核心xml中配一个plugin作为连接去找spring的xml
*spring则是在自己xml中配置sessonFactory中的属性configLocaltion中的classpassth 找到hibernate的xml。
他们三的集成在代码上的体现其实就是将他们的三个核心配置文件进行合并然后就完事了。
正如我们所知,SSH 为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
我希望通过这次的设计能够大体掌握SSH三个框架的设计流程,然后在今后的学习生活中不断练习,熟练掌握对三个框架的应用,更好地结合其他方面的知识,丰富自己的专业知识技能。