SSH框架开发详细资料.docx
- 文档编号:8967196
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:22
- 大小:343.80KB
SSH框架开发详细资料.docx
《SSH框架开发详细资料.docx》由会员分享,可在线阅读,更多相关《SSH框架开发详细资料.docx(22页珍藏版)》请在冰点文库上搜索。
SSH框架开发详细资料
SSH框架小小心得
本帖主要目的是了解在开发的过程中,ssh框架应用开发步骤和注意环节,还有就是偶的小小心得,O(∩_∩)O哈哈~
一、 开发步骤
1.加入struts框架支持(注意命名)
2.加入spring框架支持
3.加入hibernate支持
4.在web.xml文件中加入初始化applicationContext.xml文件的servlet或监听器
5.在applicationContext.xml中创建sessionFactory
6.建立pojo和映射文件
7.建立dao
8.测试dao中的方法
9.建立usecase
10.拦截action的创建工作
11.在action中编写字段,添加set方法
12.在spring中注入该字段
二,实例
一个简单显示所有信息的例子
1,2,3,略,简要说明:
在加入Hibernate框架是,其中SessionFactory的创建交给Spring框架完成。
4、.在web.xml文件中加入初始化applicationContext.xml文件的servlet(红色部分)
xmlversion="1.0"encoding="UTF-8"?
>
xsi="http: //www.w3.org/2001/XMLSchema-instance"version="2.4"xsi: schemaLocation=" 5在applicationContext.xml中创建sessionFactory 主要代码如下 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> hibernate.cfg.xml 6、建立pojo和映射文件 利用hibernate生成,在MyEclispe中的database视图将建立的表格生成pijo文件,代码略 7、.建立dao 采用接口方法, 部分代码如下 Idao.java packageorg.chkSystem.Hibernate.dao; importjava.util.List; publicinterfaceIDao{ public public public public } ParentDao.java packageorg.chkSystem.Hibernate.dao; importjava.io.Serializable; importjava.util.List; importorg.springframework.orm.hibernate3.support.HibernateDaoSupport; publicclassParentDaoextendsHibernateDaoSupportimplementsIDao{ public //TODOAuto-generatedmethodstub Listlist=this.getHibernateTemplate().findByExample(t,0,1); return(T)(list! =null&&list.size()>0? list.get(0): null); } public //TODOAuto-generatedmethodstub return(T)this.getHibernateTemplate().get(t.getClass(),pk); } public //TODOAuto-generatedmethodstub returnthis.getHibernateTemplate().findByExample(t); } public //TODOAuto-generatedmethodstub returnthis.getHibernateTemplate().findByExample(t,begin,count); } } UsersDao.java packageorg.chkSystem.Hibernate.dao; publicclassUsersDaoextendsParentDao{ } 采用接口和继承(一层继承关系)可以大大简化dao代码的书写量,并且做到了项目的健壮性 8.测试dao中的方法(略) 9、建立usecase在Structs框架的structs-config.xml文件中创建(略) 10、拦截action的创建工作 在structs-config.xml文件中拦截,加入代码如下 11、在action中编写字段,添加set方法 IDaousersdao; publicvoidsetUsersdao(IDaousersdao){ this.usersdao=usersdao; } 采用注入dao的方法,增加模块间的松耦合,O(∩_∩)O哈哈~ 12、在spring中注入该字段 就ok完成了,再在tomcat中配置部署运行,就可以了, 不过要注意的是,我用的版本是MyEclispe5.5+Structs1.2+Spring2+Hibernate3.1版本需要解决包冲突问题,在tomcat文件中的webapps中找到自己的项目,删除包asm-2.2.3.jar就可以了 帮一个朋友弄SSH框架,我也没有弄过,也算是个挑战吧,早就想搞定它了,只是还有其它的事情要做,这次有了点压力就做了。 过程是坎坷的也是美好的。 我把过程具体的写一下: 实例说明: 一个网站登录的例子,比较简单,但能说明各层是如何协调工作的。 工具: jdk6.0,myeclipse6.0,mysql5.0,tomcat6.0,至于这几个工具到底该怎么装这里我就不多说了,大家不清楚的可以到网上搜搜。 1、预备工作: 用mysql创建一个test数据库,再创建一个user表,再创建两个字段username和password。 脚本如下: DROPDATABASEIFEXISTS`test`; CREATEDATABASE`test`; USE`test`; CREATETABLE`user`( `id`int(11)NOTNULLauto_increment, `username`varchar(30)NOTNULLdefault'', `password`varchar(30)default'', PRIMARYKEY(`id`) )ENGINE=InnoDBDEFAULTCHARSET=gb2312; 保存成test.sql文件导进mysql,导入的过程就不说了,然后在里面添加username: zhangpassword: 123 打开myeclipse的打开DBBrowser(选择myeclipsehibernate) 在此区域中点击右键新建数据库连接(这个过程可具体配置以去查阅具体的资料,在此不多说)这个图中我已经新建好的一个mysql(成功连接) 2、新建一个myeclipse的web工程名为sshdemo如图所示: 选择WebProject (在项目中为了避免其它项目的干扰可以把其它的工程都先关闭) 3、添加spring框架 右键工程名选择: Myeclipse->AddSpringCapabilitie... 为了以后不要再找包,把所有的包都copy到/WebRoot/WEB-INF/lib目录下,为了以后实际部署时选择(我部署时选择的是Spring2.0CoreLibraries,Spring2.0AOPLibraries,Spring2.0ORM/DAO/Hibernate3Libraries这几个包,如果引入的包过多会发生包冲突) 4、添加hibernate包 点next 系统会检测到该工程已经添加了Spring包,选择使用Spring的配置文件 点next 在SessionFactoryID处输入: dataSource(注: 这里可能会出现不管你输入什么都会提示说已经存在这时,就需要在src文件夹下,把生成的applicationContext.xml删掉,再输入就不会有错误提示了,点击next 进入下个界面,在beanid处输入sessionFactory最后点击finish完成 5、切换到DBbrowser 右键点击user表的“HibrnateReverseEngineering“ 点finish生成user.hbm.xml文件,然后再生成pojo/User.java文件 利用 生成user的DAO文件放在DAO/userDAO.java文件 6、建立业务逻辑层代码 新建一个名为service的包,再在里面建立一个Service类,代码如下 packageservice; importjava.util.List; importvo.User; importdao.UserDAO; publicclassService{ privateUserDAOuserDao; publicUserDAOgetUserDao(){ returnuserDao; } publicvoidsetUserDao(UserDAOuserDao){ this.userDao=userDao; } publicbooleanisValid(Useruser){//判断用户是否合法 Listresult=userDao.findByExample(user); if(result.size()>0) returntrue; else returnfalse; } } 同时在applicationContext.xml中添加如下配置 7、配置UI层 添加struts框架,如添加spring一样 (注意: 工程名不代表本工程,只是起个说明的作用) 点击finish完成 8、配置struts-config.xml文件,在空白区域右键单击new一个action,actionForm,jsp 以上是在配置struts-config.xml时的图(有点懒,就用了朋友给截的图,大体上就是这个样子的) 9、在WebRoot目录下建立一个welcome.jsp文件,显示用户登录成功后的欢迎信息。 10、把struts和spring连接起来 对struts-config.xml文件进行修改添加红色字体显示如下: attribute="logonForm" input="/logon.jsp" name="logonForm" path="/logon" scope="request" type="org.springframework.web.struts.DelegatingActionProxy"> 修改LoginAction.java部分代码,增加一个service变量,以及其get/set方法(主要用于SpringIOC)。 代码如下: /* *GeneratedbyMyEclipseStruts *Templatepath: templates/java/JavaClass.vtl */ packageweb.action; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importorg.apache.struts.action.Action; importorg.apache.struts.action.ActionForm; importorg.apache.struts.action.ActionForward; importorg.apache.struts.action.ActionMapping; importweb.form.LoginForm; importservice.Service; importvo.User; /** *MyEclipseStrutsCreationdate: 09-27-2006 * *XDocletdefinition: * *@struts.actionpath="/login"name="loginForm"input="/login.jsp" *scope="request"validate="true" *@struts.action-forwardname="fail"path="/login.jsp" *@struts.action-forwardname="succeed"path="/welcome.jsp" */ publicclassLoginActionextendsAction{ /* *GeneratedMethods */ /** *Methodexecute * *@parammapping *@paramform *@paramrequest *@paramresponse *@returnActionForward */ privateServiceservice; publicvoidsetService(Serviceservice){ this.service=service; } publicServicegetService(){ returnservice; } publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ LoginFormloginForm=(LoginForm)form;//TODOAuto-generatedmethod //stub Useruser=newUser(); user.setPassword(loginForm.getPassword()); user.setUsername(loginForm.getUsername()); if(service.isValid(user)) returnmapping.findForward("succeed"); else returnmapping.findForward("fail"); } } 至此一个简单的登录已经做成。 剩下的工作就是打包并发布你的应用了 (注意: 由于一些闪失,我把login都换成了logon,如果在做的过程出现了不一致的问题,请自行改成一致的) 我的工程列表如下: 我部署时用到的包有: 还有些要注意的就是在tomcat启动时有时会出现一些错误信息,看清是什么错误,由什么引起的,一般的情况下都可以改的,开始的时候我启动tomca有很多的错误,慢慢改,一直改到只有一个无关紧要的log4j的警告错误,先不管它了,不影响我的工程就行了 ssh框架入门 ssh(struts+spring+hibernate)究竟是怎么一回事? 是一种规范。 先别管规范,我们从最基本的概念去理解它。 java是对面向对象的编程语言,java里一切只有类,java项目的本质就是执行类的方法,类与类之间的调用。 利用的其它资源就是文件,主要是xml配置文件,另外就是数据库。 jsp文件实质也是一种java类,它将被编译成Servlet类文件。 jsp是为了简化用户编写繁杂的Servlet类文件而设置的。 web容器(也是一堆java类)负责把jsp文件转化成Servlet类文件。 为了完成一个任务,实现一个功能,需要写许多java类,根据java类的作用不同,可以把java类分成几种,有些负责页面展示,有些负责业务处理逻辑运算,有些负责访问数据库。 当然,你也可以把这些功能写在一个类里实现(呵呵,这在理论上是能实现的! ),不过人们为了代码更加清晰,往往一个大功能分成许多小功能,由多个类去实现。 上面的话大家应该不难理解,即为了完成一个大功能,要由许多类,分别完成相应专门功能。 可这和框架似乎无关,框架又是怎么回事呢? 所谓框架就是“由许多类,分别完成相应专门功能”的具体规范,这在多人合作开发一个大项目时尤为必要。 大家试想,如果项目组成员各行其是,自己想用哪几种类实现功能就用哪几种类,会是一个什么样子,有多混乱! 因此框架的定义就是: 为了完成一个整体功能,对实现这个功能的java类的一种分工规范。 (准确说,这是一种人为的规范划分,任何人都可编写自己的任意规范,就是一个会有多少人会用的问题了) struts+spring+hibernate就是这样一种规范 struts是显示层的一种规范,侧重于处理“给用户显示的前台页面”和后台业务处理类之间的对应关系,并且负责前后台之间的数据传递。 它由三种java类组件jsp、Form、Action分别实现前台页面展示、后台业务处理类、数据传递类。 (所谓组件,就是对一种专门实现某种功能的java类的称呼) spring是业务层的一种规范,侧重于定义事务处理,提供了对各种java类的整体处理(主要包括注入处理IoC和切面编程AOP),甚至提供了对多种框架集成在一块的规范,它是一种更高层次的框架,它主要以一个外部XML
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSH 框架 开发 详细资料