SSH框架组合开发J2EE流程总结.doc
《SSH框架组合开发J2EE流程总结.doc》由会员分享,可在线阅读,更多相关《SSH框架组合开发J2EE流程总结.doc(8页珍藏版)》请在冰豆网上搜索。
SSH框架组合开发J2EE流程总结
1.主要说明SSH各部分的作用:
1>Struts,Struts总的来说就是两个字--"动作"
全程通过struts-config.xml进行配置动作,配置表单,配置动作以及转发:
主要有ActionForm,Action的书写(Action我建议用Struts的DispathAction,后面在Spring的配置的时候大大减少配置量)和struts-config.xml的配置!
2>hibernate,hibernate总的来说就是三个字--"持久层"
主要负责持久层:
通过hibernate.cfg.xml配置数据库的连接,配置javabean的数据库映射xml文件,书写持久层,这里的持久层Manager,通过spring注入的DAO数据库的实现完成一些方法,其中hibernate的DAO要通过Spring提供的HibernateDaoSupport类,进行方法的实现与数据库的增删改,更新等操作.
3>spring,spring总的来说就是两个字--"管理",管理整个流程,
对事务的管理,对hibernate的管理(创建数据库的连接),对Struts的管理(管理Struts全部的动作),管理hibernate的Manager和Dao(主要是对Manager中的dao进行对象的注入).
2.主要的配置和代码:
1>.总的配置web.xml
web.xml是J2EEweb方向的心脏,配置如下:
--配置struts-->
action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
3
detail
3
0
action
*.do
--配置spring-->
contextConfigLocation
classpath*:
applicationContext-*.xml
--这里有三个spring的配置文件applicationContext-actions,applicationContext-beans,applicationContext-commons-->
org.springframework.web.context.ContextLoaderListener
--这是Spring中的一个编码过滤器-->
Springcharacterencodingfilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
Springcharacterencodingfilter
/*
--这个过滤器是用在一个页面请求时,打来Session,生成完页面生关闭Session,这样就可以解决laze-->
hibernateFilter
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
hibernateFilter
/*
--spring来对hibernate的应用-->
web.xml主要配置基本的动作转发交给struts-config.xml,Spring的监听器listener:
org.springframework.web.filter.CharacterEncodingFilter
乱码的处理UTF-8,和hibernate的小配置org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.
2>Struts的配置:
Struts-config配置(主要介绍Action的配置,这里的Action为DispathAction)
--这个进行User的全部操作,一般为这种款式的链接/User.do?
Action=login-->
type="org.springframework.web.struts.DelegatingActionProxy"
name="UserActionForm"
parameter="Action"
scope="request"
validate="false">
--登陆转发页面-->
Action由操作业务层要用到Spring的注入(构造/设置)的Manager,我代码:
XXXActionextemdsDispathAction{
privateVideoManagervideoManager;
//设置注入
publicvoidsetVideoManager(VideoManagervideoManager){
this.videoManager=videoManager;
}
//后面就可以直接用videoManager去操作业务层了,
}
//这里为什么能注入videoManager,是因为这里的XXXAction由Spring管理,而Struts的Action只是通过org.springframework.web.struts.DelegatingActionProxy让Spring来管理,当产生这个动作,Spring就set注入videoManager到XXXAction的类中.所以这里videoManager有值!
!
!
3>hibernate的配置
主要的hibernate.cfg.xml和javabean的映射,DAO的书写问题
hibernate.cfg.xml和javabean的映射没有什么变化(单用hibernate的经验就ok),主要是DAO的实现问题:
这里可以用Spring提供的类HibernateDaoSupport,很好很强大,这样就不必担心事务(Spring会自动处理),而只是写简短的代码,简化操作,这又体现Spring的管理!
!
!
简短代码展示:
XXXDAOImpextendsHibernateDaoSupportimplementsXXXDAO{
publicvoidAddMusic(MusicTOmusic)throwsException{
getHibernateTemplate().save(music);
}
//这就是添加音乐的代码,够简短吧
}
这里的XXXDAOImp也要纳入到Spring的管理之中(见后面的Spring配置,主要对Manager里面的DAO进行注入)
4>Spring的配置
a.applicationContext-actions.xml主要对Struts的动作进行配置(管理全部的Struts动作)
--对user的全部的Action进行处理,这里用到了DispatchAction,链接形如:
NovaMedia/User.do?
Action=Login-->
b.applicationContext-beans.xml主要对hibernate里面的DAO和Manager进行全部的配置(管理hibern