SSH整合

原创 2012年03月30日 10:29:45

流程
jsp-->ActionServlet(接收请求)-->ActionForm(填充/页面get/set)-->Action(调用service/注入)
-->service(调用DAO/注入)-->DAO(使用pojos/注入)-->pojos

添加顺序:hibernate->spring->生成pojos->删除asm2.2.3->添加log4j->structs

配置文件
        hibernate配置文件
            pojo.hbm.xml + hibernate.cfg.xml  不需要配置
        spring配置文件
            applicationContext.xml +  实现注解时:  xxx.xml
            applicationContext.xml
                1.spring自动生成sessionFactory
                2.spring自动将sessionFactory注入给DAO
                3.service注入:将DAO注入给service
                4.事务管理器:将sessionFactory注入给HibernateTransactionManager
                5.事务属性:<tx:advice:>  注意换头+四大属性
                6.织入:<aop>
                7.Action:把service注入给Action  注意bean内不是id 而是name 是structs-config中action-mappings中的action中的path
        structs配置文件
            structs-config.xml  在WEB-INF下
                1.ActionForm: name+type
                2.Action:  path:页面请求  parameter:页面请求参数p   name:formBean   type:Action
        web.xml 在WEB-INF下
                1.初始化配置
                    contextConfigLocation -->classpath:appli*.xml
                2.过滤器
                    中文处理  chineseFilter  -->CharacterEncodingFilter + init-param:encoding->utf-8
                    session控制开关  openSessionInViewFilter  关闭session
                3.监听器
                    ContextLoaderListener 监听applicationContext.xml文件
                4.servlet
                    ActionServlet  是structs核心控制器  工具配置structs会自动生成  
                            在dwr实现下需要手动配置DwrServlet
                           
                           
        applicationContext.xml如下:
    <!-- spring自动创建sessionFactory工厂  -->
    <!--  取代了hibernate实现  由于事务 spring本身实现了代理 -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation"
            value="classpath:hibernate.cfg.xml">
        </property>
    </bean>
   
    <!-- DAO -->
    <!-- spring对hibernate封装模板HibernateTemplate DAO继承HibernateDaoSupport -->
    <!-- HibernateDaoSupport 存在setSessionFactory  需要注入 -->
    <bean id="EmpDAO" class="com.dao.EmpDAO">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
    <bean id="DepDAO" class="com.dao.DepDAO">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
   
    <!-- 业务层service -->
    <bean id="empService" class="com.service.EmpService">
       <property name="depDAO" ref="DepDAO"></property>
       <property name="empDAO" ref="EmpDAO"></property>
    </bean>
   
    <!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
       <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
   
    <!-- 事务属性advice -->
    <tx:advice id="mytx" transaction-manager="transactionManager">
        <tx:attributes>
           <tx:method name="*"/>
        </tx:attributes>
     </tx:advice>
    
     <!-- 织入 -->
     <aop:config>
        <aop:advisor advice-ref="mytx" pointcut="execution(* com.service.*.*(..))"/>
     </aop:config>
    
     <!-- action -->
     <!-- action调用service service由spring注入 -->
     <!-- 在struts-config.xml中的action-mapping不需要structs去new action 只需要代理即可 由spring代理实现 -->
     <bean name="/emp" class="com.actions.EmpAction">
        <property name="empService" ref="empService"></property>
     </bean>
     <!-- 注意:bean内是name  不是id name中的内容是action-mappings下的action的path-->
    

        web.xml如下:
    <!-- 配置文件路径:contextConfigLocation:读取applicationContext.xml文件
                spring内部通过SAX解析xml文件
         过滤器:
             session开关:OpenSessionInViewFilter:打开对数据库的操作
             中文处理:CharacterEncodingFilter  注意初始化参数别忘记写
         监听器:
             ContextLoaderListener:加载applicationContext.xml文件
         structs-action:
             ActionServlet:获取页面*.do请求
            
         //如果不使用structs,而是dwr,需要配置DWRSwrvlet
         在WEB-INF下。。。
     -->

    <!-- 配置文件路径 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:app*.xml</param-value>
    </context-param>

    <!-- 控制session开关 -->
    <filter>
        <filter-name>OpenSession</filter-name>
        <filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        </filter-class>
    </filter>

    <!-- 中文处理 -->
    <filter>
        <filter-name>ChineseFilter</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>OpenSession</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>ChineseFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 监听器 -->
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
   
    <!-- action   ActionServlet(structs工具自动生成)-->
    <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>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>

    
        struts-config.xml如下:
    <!-- form-bean -->
  <form-beans> <!-- empForm随便取的 在action-mapping中使用 -->
     <form-bean name="empForm" type="com.forms.EmpForm"></form-bean>
  </form-beans>
  <global-exceptions />
  <global-forwards />
 
  <!-- action-mapping -->
  <action-mappings> <!-- 页面路径以/emp的接收   填充到name="empForm"  到spring代理的action处理  参数通过p获取页面的p  在action中就要写p作为键的值的方法 -->
    <action path="/emp" name="empForm" type="org.springframework.web.struts.DelegatingActionProxy" parameter="p"></action>
  </action-mappings>
  
   <!-- 请求处理器  com.util.MyRequest继承RequestProcessor处理编码问题 -->
  <controller processorClass="com.util.MyRequest"></controller>
 
  <!-- 资源文件  i18n国际化 -->
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

 

【ssh】maven整合ssh框架(超详细步骤)

Spring,struts2,Hibernate1.搭建环境Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final ...
  • yjqyyjw
  • yjqyyjw
  • 2017年08月07日 18:31
  • 946

SSH整合(附上IbaseDao和分页查询)

第一步:导入jar包 需要准备以下jar包 ssh:jar包链接:hibernate4.3版本,spring4.3版本,struts2.0版本 ------------------http://p...
  • HaleyLiu123
  • HaleyLiu123
  • 2017年04月07日 01:33
  • 663

SSH整合实例详解

项目构建新建web项目ssh2,建好后添加struts功能添加spring功能:(注意选择的spring版本,并且取消掉MyEclipse自带的jar包,我们之后手动加入相应的jar包)完成之后添加h...
  • lmb55
  • lmb55
  • 2015年06月21日 00:43
  • 1870

SSH三大框架传统整合方式

本篇主要说一下关于Struts2、Hibernate、Spring三大框架的整合,但我这里是使用的传统的整合方式(导入所需要的jar),虽说基于maven等工具的项目依赖式的管理在生产环境中基本代替了...
  • James_shu
  • James_shu
  • 2017年01月17日 00:22
  • 1497

SSH框架整合demo

Struts、Spring、Hibernate整合 一、创建web工程,搭建Struts框架开发环境: 这里只导入了项目中所需要的重要的jar包,以后根据业务要求继续导入相关的包。 步骤1::导...
  • btt2013
  • btt2013
  • 2016年04月03日 22:09
  • 18295

SSH框架整合开发详解(个人笔记)

一.创建数据库并设置编码。 A) create database oa default character set utf8。 二.MyEclipse工程 A) 在Myeclipse里创建web工程,...
  • v123411739
  • v123411739
  • 2014年04月19日 11:17
  • 17880

maven ssh最新版本整合

周末在家无聊做学了一下maven搭建项目,整合ssh,之间遇到各种诡异的错误,查了一天。之间太多的错了忘了做记录了,现在都找不到了,把最关键的一点记录下来吧。给那些整合过程中遇到各种诡异错误的人看一下...
  • qnmdcsdn
  • qnmdcsdn
  • 2016年07月03日 16:11
  • 2405

SSH整合jar包总结

SSH整合jar包汇总Struts2版本:struts-2.3.31 Spring版本:spring-framework-4.2.1.RELEASE-dist Hibernate版本:hibern...
  • leisure_life
  • leisure_life
  • 2017年04月14日 17:20
  • 1696

浅谈SSH整合

SSH Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts: Struts是一个表示层框架,主要作用是做界面展示,接收请求,分发请求。在MVC框架中,St...
  • yu_meiguang
  • yu_meiguang
  • 2015年05月15日 21:35
  • 358

SSH中的注解式整合

前言 因为接触配置文件比较多,所以对于我来说更喜欢配置文件,把需要配置的内容全部整到一个文件中,对于注解就显得很陌生。《Java注解基本知识》 Annotation(注解)就是Java提供了...
  • caoyujiao520
  • caoyujiao520
  • 2017年03月29日 18:51
  • 829
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SSH整合
举报原因:
原因补充:

(最多只允许输入30个字)