2.2 SSH架构
2.2.1 Struts2
Apache Struts2是一个优雅的,可扩展的JAVA EE web框架。它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的Java架构一样,Struts[2]也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。
Web应用都是请求-响应的程序结构。程序是由客户端client发出http请求开始的,客户端请求被ActionServlet拦截。在ActionServlet处,通常有2种情况:要求逻辑控制器处理的请求以及单转发的请求。系统主要以第一种请求为主,即ActionServlet需要调用对应的Action。因此,ActionServlet将请求转发到Action,如果请求还配置了响应的FormBean,则ActionServlet还负责用请求参数填充ActionForm。此时的Action无须从HTTP Request中获取请求参数,而是从ActionForm中或得请求参数。Action或得请求参数后,调用Model对象由JavaBean处理用户请求。Action处理完用户请求之后,将处理结果包装秤ActionForward,再回送给ActionServlet。
Struts2框架的大概处理流程如下:
(1)加载类(FilterDispatcher)
(2)读取配置(struts配置文件中的Action) (3)派发请求(客户端发送请求)
(4)调用Action(FilterDispatcher)从struts配置文件中读取与之相对应的Action
(5)启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证) (6)处理业务(回调Action的execute()方法)
(7)返回响应(通过execute方法将信息返回到FilterDispatcher) (8)查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROER,将跳转到哪个jsp页面)
(9)响应用户(jsp--->客户浏览器端显示)
2.2.2 Spring
Spring[3]是一个开源框架,由Rod Johnson创建。它视为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益.
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量-从大小和开销两个方面而言Spring都是轻量的。Spring应用中的对象不依赖于Spring的特定类。
控制反转-Spring通过IoC技术促进了松耦合。当应用其的时候,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。可以理解成为IoC和JNDI相反。
面向切面-Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用对象只实现它们应该做的-完成业务逻辑-仅此而已。它们不负责其他的系统级关注点,例如日志或事务支持。
容器-Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。然而,Spring不应该被混同于传统的重量级EJB容器,它们经常是庞大与笨重的,难以使用。
框架-Spring可以将简单的组建配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件中。Spring也提供了很多基础功能(事务管理、持久化框架集成等),将应用逻辑的开发留给了你。
2.2.3 Hibernate3
Hibernate[4]是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的工作量。 另外Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用Hibernate QL从数据库提取数据的代码的编写量,从而节约开发时间和开发成本Hibernate可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。
Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图2.4所示:
图2-1Hibernate架构
图2-1显示了 Hibernate 的工作原理,它是利用数据库以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等来为应用程序提供数据持久化服务的。
Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。
2.3 MySQL数据库
MySQL[5]是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种
成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库
的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
2.3.1MySQL是一个数据库管理系统
数据库是一个结构化的数据集合。如果要对存储在计算机数据库中的大量数据进行添加、访问等处理,你就需要一个像MySQL这样的数据库管理系统。数据库系统在计算机处理中和独立应用程序或其他部分应用程序一样扮演着重要的角色。
2.3.2MySQL是一个关系数据库管理系统
关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。“MySQL”中的SQL代表“Structured Query Language”(结构化查询语言)。SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。SQL标准发展自1986年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是该标准的当前版本。
2.3.3MySQL是开源的
开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上
相关推荐: