SSH商城-初始SSH

什么是SSH?


        SSH即Struts+Spring+Hibernate,是典型的J2EE三层结构,分为表现层、中间层和数据访问层。三层体系将数据表现、业务逻辑和数据访问分开。业务逻辑、数据访问、权限拦截及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库打交道。


框架分析?


Struts2框架


体系结构:      
      
        是一个WebMVC框架,减少了直接运用MVC模式开发Web应用的周期,重要的是它是一个开源框架,还提供了一个好的控制器和一套定制的标签库Taglib,着力在控制器和视图上的应用,完美的体现了MVC设计思想。

提供集中统一的权限控制、国际化提示和消息、输入校验和日志记录等技术支持。

它对其他技术和框架具有良好的融合性。如与EJB、JDBC和Hibernate等数据库访问技术相结合,利用集成技术减少数据库的工作量

        一图胜万语:




核心实现:

        三部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。

        Filter运行在Web应用中,负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts 2框架处理。Struts 2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts 2调用名为login的Action来处理该请求。

 <!-- 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>

       

        拦截器也是本系统中使用的一个Struts2重要组件功能,该组件功能提供一个事件拦截的方法,让你可以对某些动作进行拦截。例如本系统对所有后台操作都有一个检查是否登录的功能,如果没有登录则对其操作进行拦截。


public class PrivilegeInterceptor extends MethodFilterInterceptor{

	@Override
	protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
		// 获得Session中存的后台的用户:
		AdminUser adminExistUser = (AdminUser) ServletActionContext
				.getRequest().getSession().getAttribute("adminExistUser");
		if(adminExistUser == null){
			// 没有登录:
			ActionSupport support = (ActionSupport) actionInvocation.getAction();
			support.addActionError("您还没有登录!请先去登录!");
			return support.LOGIN;
		}else{
			// 已经登录
			return actionInvocation.invoke();
		}
		
	}
}



Hibernate框架

Hibernate概述

        Hibernate是轻量级Java EE应用的持久层解决方案,是流行的ORM框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以面向对象的方式来操纵数据库。Hibernate不仅管理Java类到数据库表的映射,还提供数据查询和获取数据的操作,可以减少人工使用SQL和JDBC处理数据的时间。

        小解ORM:

        对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。它完成了面向对象的编程语言到关系型数据库的映射㈣。ORM框架可以看成应用程序和数据库之间的桥梁

Hibernate体系结构

        Hibernate实际上是一个提供数据库服务的中间件。Hibernate的持久化解决方案将用户从繁琐的JDBC访问中解脱出来,底层数据库连接获取,数据访问的实现、事务控制都无须用户关心,这种体系结构,将应用层从底层的JDBC/JTA API中抽象出来

        Hibernate有5个核心的接口、类,如下:

        (1)SessionFactory接口:它是单个数据库映射关系经过编译后的内存镜像。所以,SessionFactory的初始化过程比较复杂,同时也耗费大量的资源。为了解决这个问题,Hibernate的设计人员对Hibernate采用了线程安全可以并发调用,实现SessionFactory的实例,多个线程可以并发调用,实现Hibernate实例共享。此外,它还是生成Session的工厂。

        (2)Session接口:应用程序与持久储存层之间交互操作的一个单线程对象。Session接口对象实例中提供了持久化操作相关的“增、删、查、改"(CRUD)方面的操作。所有的持久化操作都是在Session的基础上完成的。通常将每一个Session对象实例和一个数据库事务绑定。

        (3)事务Transaction接口:通过Transaction接口来达到允许应用系统通过一组一致的事务API来控制事务边界,从而可以封装系统底层的事务操作和访问的接口。将应用系统中涉及事务功能实现代码从底层的事务具体实现的技术细节中抽象出来,最终可以达到应用系统在不同的运行环境平台和Java EE容器之间方便的移植。

        (4)Query接口:Query接口能让开发者方便的对数据库表中的数据及与之对应的持久化对象进行查询操作,利用它可以以面向对象的方式来实现对数据库的各种查询操作。

        (5)Configuration:通过Configuration获取目前的配置(如数据源、数据库的URL、连接用户名及密码、数据库方言等)并将这些配置加载到内存中,并预启动Hibernate框架,最终达到创建SessionFactory对象的目的。

        一张图胜过前言万语:




spring框架


        内容相对较多,点击查看


总结:


        Struts2表现层,Hibernate持久层,spring贯穿于表现层、持久层、业务处理等层,有机的整合在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值