SSH集成框架概述

1 篇文章 0 订阅
1 篇文章 0 订阅

一、SSH概念

SSH是 struts(springmvc)+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。

SSH有多个框架集成,紧密地结合在一起,用于构建灵活、易于扩展的多层Web应用程序。包括:表示控制层框架(mvc层框架:struts或springmvc)、业务层框架(spring)、持久层框架(hibernate)

二、框架图(太懒,网上抓的图)

三、表示控制层框架(springmvc)

包括:模型(mode)、视图(view)、控制器(controller)

(1)模型Model:视图提交的数据、返回给视图的数据。

视图提交的数据一般用我们自定义的对象来接收,例如要接收登录视图的用户名、密码登录数据,可以定义个登录model类,如下:

publicclass AccountLoginModel

{  

    private Stringusername;

    private Stringpassword;

    publicvoid setUsername(String username){

        this.username=username;

    }

    publicvoid setPassword(String password){

        this.password=password;

    }

    public String getUsername(){

        returnthis.username;

    }

    public String getPassword(){

        returnthis.password;

    }

}

返回给视图数据model:框架自带的Model类,通过设置属性,返回model对象给视图,如下:

model.addAttribute("username", “张三”);

model.addAttribute("password", “123”);

返回model对象会有框架自动注入到视图中

(2)视图view:jsp页面

(3)控制器controller: action 、servlet等负责拦截用户请求,通过调用Model来实现处理用户请求的功能。

 

配置文件:在web.xml中配置总控制器,并指明springmvc的配置文件,如下:

<servlet>

        <servlet-name>SpringMVC1Demo</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>classpath:springservlet-config.xml</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>  
 </servlet>   

  <servlet-mapping>

        <servlet-name>SpringMVC1Demo</servlet-name>

        <url-pattern>/</url-pattern>

</servlet-mapping>


 

2、业务逻辑层框架(spring)

(1)业务逻辑类:用于处理业务逻辑。

(2)同持久层关联:管理同数据库的session、管理数据库事务。

配置文件:在web.xml中配置,指明spring的配置文件,如下:

<context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>

            classpath:springcontext-config.xml

        </param-value>

    </context-param>

    <listener>

        <listener-class>

           org.springframework.web.context.ContextLoaderListener

        </listener-class>

</listener>


3、持久化层(hibernate)

Hibernate是一个对象关系映射框架,它对JDBC进行了轻量级的封装,使得我们使用面向对象的思想操作关系型数据库。

(1)   dao对象通过配置文件获取SessionFactory

(2)   通过SessionFactory,获取一个session,session其实就是同数据库的一个链接会话。

(3)   通过session可以把实体对象操作到数据库。

(4)   实体对象同数据库表,有一个映射关系,通过配置文件指明映射关系。

 

配置文件:spring同一个配置文件:配置文件的加载、javabean的创建、生命周期是由spring框架来管理和实现。通过配置文件把业务逻辑层同持久化层紧密联系起来。

配置文件几个关键点:

(1)配置数据源:

<beanid="dataSource"class="org.logicalcobwebs.proxool.ProxoolDataSource">

        <propertyname="alias"value="proxoolDataSource"/>

        <propertyname="driver"value="${connection.driver_class}"/>

        <propertyname="driverUrl"value="${connection.url}" />

        <propertyname="user"value="${connection.username}"/>

        <propertyname="password"value="${connection.password}"/>

        <property name="statistics"value="${proxool.statistics}"/>

        <propertyname="maximumConnectionCount"value="${proxool.maximum.connection.count}"/>

        <propertyname="minimumConnectionCount"value="${proxool.minimum.connection.count}"/>     

        <propertyname="simultaneousBuildThrottle"value="${proxool.simultaneous.build.throttle}"/>

    </bean>

(2)配置SessionFactory:并指明实体、数据库表的映射文件

<beanid="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

    <propertyname="dataSource"ref="dataSource"/>

        <propertyname="mappingDirectoryLocations"> 

           <list> 

               <value>classpath:com/demo/model/mapping/</value>    

             </list> 

        </property>

  </bean>

(3)配置事务

<bean id="h4TManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
  </bean>

4、SSH业务流程

mvc层的视图发出URL请求->mvc层控制器->控制器通过model获取请求参数

->mvc层控制器调用spring层的业务逻辑sevice类->service调用持久化层的DAO->实现数据库的事务操作-》获取的数据封装到mvc层的mod
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值