基于ssh的选课系统实验报告 联系客服

发布时间 : 星期一 文章基于ssh的选课系统实验报告更新完毕开始阅读407ed1d476eeaeaad1f3308f

基于SSH的选课系统

2 核心技术简介

Struts2,Spring,Hibernate是三个相互独立的框架。但三个框架一起整合起来使用,能使软件系统开发更轻松、更灵活、更容易扩展。三者都是“半成品”框架,使得我们在开发时不需要从头做起。三者之间的关系如图2-1:

图2-1 Struts2,Spring,Hibernate关系图

2.1 MVC模式简介

MVC全称Model View Controller,它使得应用程序的输入、处理和输出分开,使程序的耦合度降低。其每个层次说明如下:

? Model(模型):模型表示业务相关的数据与业务的处理方法。能直接访问数据。 ? View(视图):视图用于对数据的显示。在这一层上,通常没有逻辑。为了更新视

图,视图需要访问它监视的模型,因此视图通常事先在被监视的数据那进行注册。 ? Controller(控制器):顾名思义,控制器起到控制作用,用于控制应用程序的流程。

它处理事件并作出响应,调用相关的模型去处理事件请求,确定哪个视图返回请求。

2

基于SSH的选课系统

图2-2 MVC各层关系图 图2-2显示的MVC各层之间的关系。由于它具有这些结构使得多个视图可以共有一个模型,同时对一层上的修改不会影响到其他层。

2.2 Struts2框架简介

Struts2是一个在WebWork的基础上转化而来的基于MVC的框架。采用拦截器的机制来处理用户请求,使得业务逻辑控制器与Servlet API实现分离。

2.2.1 Struts2架构

图2-3 Struts2架构

图2-3 展示了Struts2的整体架构,其各模块说明如下:

FilterDispatcher:它是Strut2的核心控制器。它根据ActionMapper的结果来决定对请求的处理和响应。

ActionMapper:它是一个接口,并提供了HTTP请求与Action之间的映射关系。如果用户的请求与ActionMapper中提供的方法相匹配,就继续调用ActionProxy。

ActionProxy:它会依据ActionMapper生成的URI以及配置管理器来找到响应用户请求的Action对象。然后创建ActionInvocation对象来执行相应的Action方法。 ActionInvocation:它会在调用Action处理方法的前后,还要调用各种拦截器。 Result:它会根据相关视图将用户请求的处理结果反馈给用户。 struts.xml:是Struts2的配置文件,负责配置每个Action的返回结果所对应的跳转页面。 Interceptor:拦截器是Struts2的重要组件,其设计思想来源于AOP(面向切面编程)。通常用于处理某些通用的处理,它会在每个Action的外部执行。

3

? ? ? ? ? ? ?

基于SSH的选课系统

? Action:用于处理用户请求并封装业务数据。其执行后通常会返回一个String类型的量,

struts.xml根据这个量来决定跳转页面。 ? Templates:页面模板。

? Tag Subsystem:Struts2的标签库,用于页面的设置。

2.2.2 Struts2基本处理流程

图2-4 Struts2基本处理流程

图2-4展示了Struts2基本处理流程,用户请求在经过一系列拦截器(拦截器会对用户请求进行相应的处理,如增加某些功能)后,就会交由Action处理,然后Action返回响应的结果(默认为“input”),最后通过匹配结果来选择跳转视图页面。

2.2.3 Struts2的优点

? “半成品”框架:使得开发不需要从头做起,而且在框架中很多地方都有默认值设置,

减少了冗余的设置,提高了开发效率。 ? 轻量级:资源消耗少,运行速度快。

? 搭建简单:只需在Myeclipse中将需要的包拷贝入项目中,再进行配置。

? 标签强大:Struts2提供了一系列的自己编写的标签用于页面布置,减少了页面代码。 ? Action测试简单:不需要模拟HTTP对象,就可以直接测试。 ? 错误报告明了:便于迅速找出错误并修改。

2.3 Hibernate框架简介

Hibernate是一个开放源码的对象关系映射框架,采用ORM机制,通常用于持久层的开发。它对JDBC进行了轻量级的封装,使得我们在开发过程中可以使用面向对象的方式来操纵数据库。

4

基于SSH的选课系统

2.3.1 Hibernate架构

图2-5 Hibernate架构

2.3.2 Hibernate核心接口

Hibernate核心接口一共有6个:

Session接口:该接口用于持久化对象的增、查、删、该,属于非线程安全。

SessionFactory接口:该接口用于初始化Hibernate,充当数据存储源的代理,并创建Session对象。

Configuration接口:该接口在Hibernate的启动时,首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 Transaction接口:用于事务操作。

Query和Criteria接口:使用HQL或SQL语句查询数据库。其中Criteria接口更靠近面向对象;Query接口则提供了使用原生SQL语句的方法。

? ? ? ? ?

2.3.3 Hibernate基本处理流程

1. 2. 3. 4. 5. 6. 7. 8.

创建Configuration实例,读取项目路径根目录下的配置文件信息。

创建SessionFactory实例,将Configuration中的配置信息复制到SessionFactory中。 调用SessionFactory来创建Session 打开Session,并创建事务Transaction 进行持久化操作 提交事务 关闭Session

关闭SessionFactory

2.3.4 Hibernate的优点

? 它使得数据库中的每一张表都映射为一个Java类,让我们在开发过程中可以使用面向

对象的方式来操作数据库。

5