欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSH配置文件

程序员文章站 2022-04-30 09:43:10
...

SSH配置文件

1.Struts主要处理的表示层,spring主要处理的是业务层,
2.Hibernate主要处理的是持久层(D层),但spring也有自己的SSH框架,所以我们就把hibernate整合到了Spring中


spring不仅仅知识业务逻辑层,他是一个容器,他控制这action,service,dao,通过他们来控制我们类之间的关系,在我们各层之间会发现没有new的关系就是因为我们把new的过程交给了spring容器所以减少了我们的耦合性,而hibernate起到的是映射关系,主要是有我们的dao层有关


Web配置文件

web配置文件相当于我们的车钥匙,只有有了车钥匙我们才可以跑起来啊,其实就是设置了监听我们的spring容器,和设置网页的过滤

    <!-- 1. 任何服务器都必须有web.xml,我们tomcat或者是jboss首先加载的是web.xml 2. 根据文件下的内容进行依次的加载 -->

    <!-- 配置spring核心监听器,整合的spring启动后spring容器监听器进行了注册-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 1..根据classpath我们首先找到的是applicationContext.xml -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>


    <!-- 配置Struts2 的核心过滤器 ,根据过滤器我们来启动我们的Struts-->
    <filter>
        <!-- filter-name的意思是声明一个变量,在mapping的时候使用该名字 -->
        <filter-name>struts2</filter-name>
        <!-- 过滤器的类 -->
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- 2...根据url我们第二次找到的是struts2.xml -->
    <!-- 元素过滤映射,映射servelt或一个url -->
    <filter-mapping>
        <!-- 过滤器名称,目的是通过名称统一找到过滤器处理类 -->
        <filter-name>struts2</filter-name>
        <!--*表是通配符, 所有的URl都会被解析为struts的过滤器 -->
        <!--*表是通配符,它代表的可以是静态页面也可以是动态的页面,这样无论是静态页面是动态的页面我们就配置一个就
        全部都实习了,这就是过滤的特点,过滤分为两种1是过滤可以用到定位,2通过过滤得到我们要的信息 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>



    <display-name>shop</display-name>
    <!-- 首页访问的页面 -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

application.xml 配置文件

application是spring的配置文件但是我们整合了hibernate因为我们spring本身就有ssh的机制,application的主要作用是事物管理,数据库方面的,另外一个是用了spring的容器,他里面存放了action,service,Dao,实现他们之间的交互


在spring容器有action和service。为什么有他们?因为我们实体了spring的IOc机制
控制反转:就是由容器控制程序之间的运行(依赖)(我们不用new了)
依赖注入:组件之间的依赖关系是有容器去决定的,由容器自动的把某种依赖注入到我们容器中

<!-- 配置连接池: -->
    <!-- 引入外部属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties" />
    <!-- 配置C3P0连接池: -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}" />
        <property name="jdbcUrl" value="${jdbc.url}" />
        <property name="user" value="${jdbc.user}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <!-- Hibernate的相关信息 -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 配置Hibernate的其他的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 配置Hibernate的映射文件 -->
        <property name="mappingResources">
            <list>
                <value>cn/itcast/shop/user/vo/User.hbm.xml</value>
            </list>
        </property>
    </bean>

    <!-- 事务管理: -->
    <!-- 事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <!-- 开启注解事务 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

    <!-- Action的配置 =========================== -->

    <!-- 首页访问的Action -->
    <bean id="indexAction" class="cn.itcast.shop.index.action.IndexAction"
        scope="prototype">
    </bean>

    <!-- 用户模块的Action -->
    <bean id="userAction" class="cn.itcast.shop.user.action.UserAction"
        scope="prototype">
        <!-- 注入Service -->
        <property name="userService" ref="userService" />
    </bean>


    <!-- Service的配置 =========================== -->
    <bean id="userService" class="cn.itcast.shop.user.service.UserService">
        <property name="userDao" ref="userDao" />
    </bean>



    <!-- Dao的配置 =========================== -->
    <bean id="userDao" class="cn.itcast.shop.user.dao.UserDao">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

</beans>


Struts2.xml 配置文件

Struts2是结合Struts1和webwork的一个升级版,在稳定性以及性能等各个方面都比Struts1和webwork好,可谓集两者之所长。项目启动的时候是由Struts2来找到我们的action的类和方法进行与后台执行

 <!-- 全局的信息 -->
    <global-results>
       <result name="msg">/WEB-INF/jsp/msg.jsp</result>    
    </global-results>

    <!-- 配置首页访问的Action -->
    <action name="index" class="indexAction">
        <result name="index">/WEB-INF/jsp/index.jsp</result>
    </action>

    <!-- 配置用户模块的Action -->
    <action name="user_*" class="userAction" method="{1}">
        <!-- 注册页面 -->
        <result name="registPage">/WEB-INF/jsp/regist.jsp</result>
        <result name="input">/WEB-INF/jsp/regist.jsp</result>
        <result name="loginPage">/WEB-INF/jsp/login.jsp</result>
        <!-- 登录页面 -->
        <result name="login">/WEB-INF/jsp/login.jsp</result>
        <!-- 登录成功回到首页 -->
        <result name="loginSuccess" type="redirectAction">index</result>
        <!-- 退出回到首页 -->
        <result name="quit" type="redirectAction">index</result>  
        <!-- 验证码失败,调到注册页面 -->
        <result name="checkcodeFail">/WEB-INF/jsp/regist.jsp</result>

    </action>

    <!--验证码Action -->
    <action name="checkImg" class="checkImgAction"></action>

总结

理解都还是很浅显的一些东西,还有很多需要深入挖掘的,只有更好的理解了配置文件才知道整个框架是如何的,还需要进一步的去理解

相关标签: ssh 框架