j2ee“ssh框架”实验报告.doc
1软件学院综合性实验报告专业JAVA年级/班级2011计算机1班20122013学年第二学期课程名称JAVAEE程序设计指导教师姓名学号实验地点实验时间6月1、8、15日上午34节项目名称SSH框架集成应用实验类型综合性一、实验目的1SSH为STRUTSSPRINGHIBERNATE的一个集成框架,是目前较流行的一种WEB应用程序开源框架。因此希望通过本次实验充分了解SHH框架集成应用的设计理念和具体步骤;2通过翻阅课本,查阅资料,培养一个程序员应有的信息搜索能力已经借助其他工具解决问题的能力;3真正掌握三个框架的精髓,更好地应用与以后的学习工作中去。二、实验仪器或设备MYECLIPSE65TOMCAT5526MYSQL50数据库脚本程序CREATETABLEUSERIDINT11NOTNULLAUTO_INCREMENT,USERNAMEVARCHAR50DEFAULTNULL,PASSWORDVARCHAR50DEFAULTNULL,PRIMARYKEYIDINSERTINTOUSERVALUES 1 , ADMIN , ADMIN 2三、总体设计(设计原理、设计方案及流程等)1创建工程打开MYECLIPSE,需要注意的是这里应该处于MYECLIPSEJAVAENTERPRISE视图。新建一个WEBPROJECT,输入适当的工程名字,这里我们输入SSH,FINISH即可。确定之后MYECLIPSE会生成名为SSH的项目,其中生成的目录结构如下所示3四、实验步骤(包括主要步骤、代码分析等)1添加STRUTS12框架支持在SSH工程上面右击,在弹出的菜单中选择MYECLIPSEADDSTRUTSCAPABILITIES添加STRUTS的支持。在弹出的对话框中选择STRUTS12,修改BASEPACKAGEFORNEWCLASSES成所需的包名其余保持原状,FINISH即可。4完成后的结构为52添加SPRING20框架支持在SSH工程上面右击,在弹出的菜单中选择MYECLIPSEADDSPRINGCAPABILITIES添加SPRING框架支持。67由于SPRING采取最小化库发布的方式,使得SPRING的库文件彼此都是分离的。因而我们需要自己选择需要的库,需要引用的如下图8选择好后NEXT,在窗口中选择BROWSE,选择SSH工程下面的WEBINF文件夹。然后FINSH3配置数据源在MYECLIPSE右上角选择MYECLIPSEDATABASEEXPLORER,打开数据库管理视图。在左侧的DBBROWSER点击右键,选择NEW打开DATABASEDRIVER对话框。在DATABASEDRIVER对话框中按照如下配置选择数据库驱动。首先选择DRIVERTEMPLATE。在这里我们选择MYSQL。DRIVERNAME是以后配置时使用的驱动名字,用以区分驱动。这里使用MYSQL即可。然后根据实际情况填写URL,USERNAME和PASSWORD。点击9ADDJARS添加数据库驱动文件。为方便配置,可以选择SAVEPASSWORD保存密码。配置完毕后FINISH即可。4SPRING与HIBERNATE的整合当配置完数据源后,就可以添加HIBERNATE支持了。切换到MYECLIPSEJAVAENTERPRISE视图,在SSH工程上面右击。在弹出的菜单中选择MYECLIPSEADDHIBERNATECAPABILITIES,添加HIBERNATE的支持。10我们选择HIBERNATE32,全部按照默认设置即可,然后点击NEXT在对话框中选择SPRINGCONFIGURATIONFILE,表示我们希望将HIBERNATE托管给SPRING进行管理,这是将HIBERNATE与SPRING进行整合的基础。然后点击NEXT11在出现的对话框中选择EXISTINGSPRINGCONFIGURATIONFILE。因为我们已经添加了SPRING的配置文件,所以这里选择的是已存在的配置文件。MYECLIPSE会自动找到存在的那个文件。然后在SESSIONFACTORYID中输入HIBERNATE的SESSIONFACTORY在SPRING配置文件中的BEANID的名字,这里我们输入SESSIONFACTORY即可。然后点击NEXT在出现的对话框中的BEANID里面输入数据源在SPRING中的BEANID的名字,这里我们输12入DATASOURCE。然后在DBDRIVER里面选择我们刚刚配置好的SSH,MYECLIPSE会将其余的信息自动填写到表格里面。然后点击NEXT在出现的对话框中取消CREATESESSIONFACTORYCLASS。点击FINISH即可。此时MYECLIPSE会自动打开SPRING的配置文件,文件内容为13此时,切换到MYECLIPSEDATABASEEXPLORER视图,右键打开数据库连接,在需要使用的数据表格上面点击右键,选择HIBERNATEREVERSEENGINEERING。这里我们使用刚刚建立在TEST数据库中添加的USER表。14在打开的对话框中修改JAVASRCFOLDER为我们建立的/SSH/SRC,这里需要选择到SRC文件夹,并且需要填写JAVAPACKAGE,这是MYECLIPSE生成的类所在的包,我们将其取名为USER。然后选择JAVADATAOBJECT,建立POJO类。然后选择JAVADATAACCESSOBJECT。其中,POJO类是数据库表格所对应的JAVA类。JDO类是MYECLIPSE自动生成的对数据库的一些操作。这里会封装一些常用的操作,简化我们的编写。填写完成后点击NEXT。15在出现的对话框中选择IDGENERATOR为NATIVE,然后点击FINISH即可。16此时SSH项目的目录结构如下所示。其中的USERJAVA是MYECLIPSE生成的使用面向对象的JAVA语言对数据库表格进行的抽象,USERHBMXML是将数据库表格中的字段和POJO类的属性进行映射的定义,USERDAOJAVA封装了一些MYECLIPSE自动生成的对数据库的操作。这时我们修改一下文件目录,使之更好的组织。我们建立一个DAO包,将DAO类与POJO类分开。然后我们在STRUTS包下面建立ACTION和包,用来管理STRUTS的ACTION和。为了将实现与接口进行解耦。我们建议在DAO包下面添加接口,然后建立DAOIMPL包,将实际的DAO类放在这里。DAO类是直接与数据库打交道的类,为了对业务逻辑进行封装,我们将业务全部写在SERVICE类里面,和DAO一样,我们先建立SERVICE包,里面添加业务接口,具体的实现放在SERVICEIMPL里面。将USERDAOJAVA移动到DAO的IMPL包下面,并在DAO包下建立接口IUSERDAO内容为在SERVICE中建立接口IUSERSERVICEJAVA,在SERVICE中IMPL中建立USERSERVICEJAVA17此时的整体工程结构为18此时的APPLICATIONCONTEXT内容需要配置BEAN内容为195整合STRUTS和SPRINGSTRUTS和SPRING整合方式其核心是让S