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框架整合jar包和相关配置文件

  • 2017年11月12日 17:07
  • 17.28MB
  • 下载

ssh整合(annotation方式)

  • 2017年12月04日 15:36
  • 20.31MB
  • 下载

ssh框架整合hibernate,spring,struts,dwr等技术过程分析

ssh整合技术全过程总结分析 为了更清晰的分析ssh整合的流程,(也是为了巩固自己所学的)在这里我将要 先分析整合步骤,然后在将步骤细化分析(根据我所了解的)。部分代码块可能也 将贴出  ...

最新版本的SSH整合所需的jar包

  • 2017年10月18日 12:01
  • 18.81MB
  • 下载

SSH框架整合时遇到的找不到action bean的问题

昨天在整合SSH框架的时候,出现了找不到Action的Bean的问题,然后我仔细的回顾了一下Struts和Spring的整合过程 Struts和Spring的整合就是将Action交给Spr...

SSH框架整合包3.x

  • 2017年09月20日 15:57
  • 40.4MB
  • 下载

16.activiti工作流-Activiti5.4整合 SSH项目开发

一、创建web工程(1)创建web工程之前,要先配置tomcat的目录 (2)创建web工程之后,改变编译后的class文件和资源文件的存放位置 (3)创建web工程的编码格式,指定UTF...

ssh框架整合简单项目

  • 2016年07月30日 09:34
  • 1.5MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SSH整合
举报原因:
原因补充:

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