Aaron_xyt的专栏

会当凌绝顶,一览众山小

SSH整合

流程
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" />

 

阅读更多
上一篇C++体系
下一篇java在云上的应用
想对作者说点什么? 我来说一句

SSH框架整合

2018年06月18日 22.9MB 下载

java ssh整合

2009年06月29日 39.8MB 下载

三个框架ssh整合的例子

2009年02月26日 1.57MB 下载

SSH的javaweb整合

2018年07月02日 19.46MB 下载

ssh jar包

2011年05月29日 9.18MB 下载

SSH三大框架整合jar包

2018年03月09日 14.65MB 下载

SSH整合实例

2011年09月28日 1.15MB 下载

SSH整合初学

2011年11月07日 12.54MB 下载

HIBERNATE SPRING STRUTS包

2008年10月08日 17.17MB 下载

commons-beanutils-1.5.jar

2009年08月05日 108KB 下载

没有更多推荐了,返回首页

关闭
关闭