SSH框架的搭建

一、SSH框架的概念

  SSH框架是java web开发流行的一个开源集合框架,SSH框架包含了Struts框架,Spring框架和Hibernate框架。SSH框架可以用于构建灵活、易于扩展的多层Web应用程序。

二、SSH框架的工作原理

   SSH框架中的Struts负责拦截用户请求,正常情况下用户请求到达Struts框架时,Struts框架的核心拦截器拦截到该请求,Struts框架会根据请求创建action实例。而在SSH框架中,由Spring容器来管理Action实例。当用户请求到达SSH框架应用程序时,Struts框架的核心控制器拦截到用户的请求,然后将请求转发到Struts框架中提供的Spring插件的伪Action中,再由伪Action获取Spring容器中的对应的请求的Action实例,然后通过Spring容器中根据相关的业务组件来连接Hibernate框架,使用Hibernate框架来管理数据库。

                                     

 

 

                                                      

                                    SSH框架工作原理图

三、SSH框架的搭建过程

  1.创建一个web项目

    2.导入Struts2所需的基本jar文件包,必须包含struts2-spring-plugin这个jar包,负责管理伪控制器,然后在web.xml中配置struts核心拦截器,在web.xml中加入如下配置代码

<!-- 配置Struts2的核心过滤器 -->
 <filter>
     <filter-name>struts2</filter-name>
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
     <filter-name>struts2</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>

  3.导入Spring开发所需的jar包:spring-beans.jar,spring-context.jar,spring-core.jar,spring-expression.jar,commons-logging.jar,spring-web.jar 

  在web.xml中加入如下代码,配置Spring容器启动监听器

 <!-- 配置Spring的监听器 -->
 <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
<!-- 如果没有配置下面的项,默认加载web-inf下的applicationConext.xml -->
 <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:applicationContext.xml</param-value>
 </context-param>

  4.导入Hibernate开发包,数据库驱动包,连接池(c3p0)包,然后在src创建jdbc.properties文件和applicationContext.xml文件,添加如下代码进行配置

  jdbc.properties:

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql:///shop
jdbc.user = root
jdbc.password =123456

  applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 配置连接池 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"></property>
    <property name="jdbcUrl" value="${jdbc.url}"></property>
    <property name="user" value="${jdbc.user}"></property>
    <property name="password" value="${jdbc.password}"></property>
</bean>

<!-- hibernate相关配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <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映射文件 -->
</bean>
</beans>

  搭建完成后的web.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name></display-name>
    <!-- struts2拦截器配置 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- spring容器启动监听器配置 -->
    <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:applicationContext.xml</param-value>
 </context-param>
</web-app>
View Code 

  至此,SSH框架已经搭建完成,就可以使用SSH框架进行相关开发了。

posted @ 2016-02-17 12:52  守、护  阅读(711)  评论(0编辑  收藏  举报