SSH结束之后,NOVA团队就基于SSH实现了NOVA音乐视频网站,通过在这里进行说明一下全程的开发流程,也许是上学期就应该进行总结的,
但是上学期一直没有一直没有完善与Ajax的结合.现在实现了.也保存一下自己对SSH架设的基本思想.对后面有警示的作用!
建议先懂Struts,hibernate,Spring的基础后看此帖子有效!
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是J2EE web方向的心脏,配置如下:
<web-app>
<!--配置struts-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 配置spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
<!--这里有三个spring的配置文件applicationContext-actions,applicationContext-beans,applicationContext-commons-->
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 这是Spring中的一个编码过滤器-->
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 这个过滤器是用在一个页面请求时,打来Session,生成完页面生关闭Session,这样就可以解决laze -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--spring来对hibernate的应用-->
</web-app>
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)
<action-mappings>
<!--这个进行User的全部操作,一般为这种款式的链接/User.do?Action=login-->
<action path="/User"
type="org.springframework.web.struts.DelegatingActionProxy"
name="UserActionForm"
parameter="Action"
scope="request"
validate="false">
<!-- 登陆转发页面 -->
<forward name="Login_Success" path="/user/ShowMessage.jsp"/>
<forward name="Login_Failed" path="/login_f.jsp" />
</action>
Action 由 操作业务层要用到Spring的注入(构造/设置)的Manager,我代码:
XXXAction extemds DispathAction{
private VideoManager videoManager;
//设置注入
public void setVideoManager(VideoManager videoManager) {
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的管理!!!
简短代码展示:
XXXDAOImp extends HibernateDaoSupport implements XXXDAO {
public void AddMusic(MusicTO music) throws Exception {
getHibernateTemplate().save(music);
}
//这就是添加音乐的代码
}
这里的XXXDAOImp也要纳入到Spring的管理之中(见后面的Spring配置,主要对Manager里面的DAO进行注入)
4>Spring的配置
a.applicationContext-actions.xml主要对Struts的动作进行配置(管理全部的Struts动作)
<!-- 对user的全部的Action进行处理,这里用到了DispatchAction,链接形如:NovaMedia/User.do?Action=Login-->
<bean name="/User" class="greatwqs.struts.action.UserAction">
<property name="userManager" ref="userManager"></property>
<property name="musicManager" ref="musicManager"></property>
</bean>
b.applicationContext-beans.xml
主要对hibernate里面的DAO和Manager进行全部的配置(管理hibernate)
<!-- GREATWQS说明:这个只是配置一切的DAO和Manager的配置和联系 -->
<bean id="adminDAO" class="greatwqs.hibernate.dao.imp.AdminDAOImp">
<property name="sessionFactory" ref="sessionFactory"></property> </bean>
<bean id="adminManager" class="greatwqs.spring.service.imp.AdminManagerImp">
<property name="adminDAO" ref="adminDAO"/>
</bean>
<!--配置管理员的DAO和Manager完毕-->
c.applicationContext-commons.xml主要配置(Spring的基本配置)
<beans>
<!--GREATWQS说明:这个配置文件是针对spring的常用的功能进行的配置:sessionFactory,事务,AOP等的配置-->
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 配置事务管理 -->
<bean id="TxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置事务的传播性 -->
<tx:advice id="txAdvice" transaction-manager="TxManager">
<tx:attributes>
<!--propagation="REQUIRED"有事务则直接用,无事务则直接开启-->
<tx:method name="Add*" propagation="REQUIRED"/>
<tx:method name="Delete*" propagation="REQUIRED"/>
<tx:method name="Modify*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置那些类的那些方法参与事务 -->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* greatwqs.hibernate.dao.imp.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
<!--这里进行应用上面的配置属性,失误的传播属性等方案-->
</aop:config>
</beans>
3.后面的Ajax思考:
原来写Ajax的代码都是new的对象,再去全部进行的数据库的操作,用了Spring就模糊了,对象不能new了,但是最后还是由Spring的全局管理给我了答案(既然动作都是由Spring管理,我的Ajax的传值也用动作再附加参数,再通过这个动作再进行Spring的注入获得数据库的连接,最后生成jsp的xml文件)成功的利用起了.
也给我一个启示:Spring的管理,管理全局
以前在网上查询的ssh架设,利用Ajax很多都用到了jquery,也很好很强大!!
SSH架构,在这里进行记录一下.没有事情的时候翻翻....
- 大小: 27.6 KB
分享到:
相关推荐
总结来说,这个demo项目提供了一个学习和实践Struts1.2、Spring2.5和Hibernate3.2集成的平台,涵盖了MVC设计模式、依赖注入、面向切面编程和对象关系映射等多个关键概念。通过深入研究和修改这个项目,开发者能够...
Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1
Struts2、Spring4和Hibernate4是Java Web开发中的三大主流框架,它们分别负责MVC模式中的表现层、业务层和服务层。这个最新的项目系统整合了这三个框架,旨在提供一个高效、灵活且易于维护的开发环境。下面将详细...
项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ...
Struts 2+Spring 3+Hibernate框架技术精讲与整合案例Struts 2+Spring 3+Hibernate框架技术精讲与整合案例Struts 2+Spring 3+Hibernate框架技术精讲与整合案例Struts 2+Spring 3+Hibernate框架技术精讲与整合案例...
1、Spring 3.x 对 Hibernate 4.x 不提供 HibernateDaoSupport,所以在dao的实现层注入SessionFactory 2、报错:org.hibernate.HibernateException: No Session found for current thread 意思是必须在...
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
1. 配置环境:确保项目中引入了Struts2、Spring和Hibernate的相应库,这通常通过Maven或Gradle等构建工具完成。 2. 配置Spring:创建Spring的配置文件(如`applicationContext.xml`),定义Bean并设置其依赖。例如...
农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts ...
struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版 struts2 的方式自己去看简单。 spring2.5 是用注释来注入 hibernate3.2 是用ejb3注解映射关系 hibernate3 +个属性可以自动...
Struts 2+Spring 3+Hibernate框架技术精讲与整合案例3Struts 2+Spring 3+Hibernate框架技术精讲与整合案例3Struts 2+Spring 3+Hibernate框架技术精讲与整合案例3
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...
Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...
DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能
轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part2
轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part1
Struts1、Spring2和Hibernate2是Java Web开发中的三个重要框架,它们分别负责MVC模式中的表现层、业务层和服务层。这个整合例子旨在展示如何将这三个框架协同工作,以构建一个完整的Java Web应用程序。 Struts1是...
Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解...
SSH整合是指将Spring、Hibernate和Struts这三大Java开源框架集成在一起,用于构建高效、灵活的企业级Web应用程序。这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP),...