基于Struts与Hibernate教学答疑系统的设计与实现

时间:2022-07-16 10:53:05

基于Struts与Hibernate教学答疑系统的设计与实现

摘要:Struts是基于MVC的Java Web应用框架,它把Java Web应用分为模型、视图和控制器三个部分;Hibernate是一个开源的ORM(对象关系映射)框架,它很好地提供对象与关系数据库的映射,实现关系数据库的持久化操作。在教学答疑系统中使用Struts与Hibernate框架提高了程序的开发效率,增加程序的可维护性、可重用性和可扩展性,并提供程序更好的性能。

关键词:Struts;Hibernate;MVC;ORM

1 引言

基于网络的教学答疑系统可以使学生与教师之间的沟通更加及时、深入,从而增加学生学习兴趣并提高学习质量。本系统基于Struts与Hibernate的J2EE框架,Struts实现MVC架构,Hibernate完成J2EE中的对象持久层。

2 基于MVC的Struts实现机制

MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是一种设计模式,它把应用程序分成三个核心模块:模型、视图和控制器。Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts实质上就是在JSP Model2的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成。图1显示了Struts实现的MVC框架[1]。

Struts工作流程:首先由客户端浏览器向Web服务器发出HTTP请求,JSP容器中控制器ActionServlet根据配置文件struts-config.xml决定将请求交给相应的Action来处理。Action实现业务逻辑的处理,实现模型中业务数据的更新及程序的流程控制。当Action处理结束后,控制器根据Action返回结果调用相应的JSP文件,并将执行结果返回给客户端浏览器。

3 数据持久化与Hibernate实现机制

在J2EE应用中编程操作采用的是面向对象模型,而后台数据库通常是关系模型,为解决关系型数据库与对象型编程语言之间的不一致提出了数据持久化。数据持久化完成了O/R Mapping(Object/Relation Mapping,ORM,对象关系映射),从而实现了对象与关系数据库之间的映射。Hibernate是一个开源的ORM框架,它提供了强大的对象和关系数据库映射与查询功能,并大幅度减少开发过程中使用SQL与JDBC处理数据的时间。Hibernate实现机制如图2所示[2]。

Hibernate是Java应用系统和关系数据库之间的ORM中间件,它完成Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用系统提供了面向对象的数据访问API[3]。Hibernate的配置文件hibernate.properties包含了数据库连接的有关信息,XML Mapping文件包含了对象和关系数据库之间的映射。

4 教学答疑系统的设计与实现

教学答疑系统实现了教师与学生之间基于网络的信息交流与沟通。系统的用户主要有三种:学生、教师和系统管理员,学生和教师要先注册才能使用本系统。系统主要由5个模块构成:

(1)注册模块:学生和教师可以以不同的角色进行注册。

(2)登录模块:学生和教师以注册的角色进行登录。

(3)问题提交模块:学生登录后可以提出问题,并可以选择相应的任课教师回答。

(4)问题回答模块:教师登录后对没有回答的问题进行回答。

(5)管理模块:管理员登录后可以对问题和答案进行管理。

教学答疑系统使用Struts框架进行设计与实现,显示层使用JSP页面实现,控制层由ActionServlet和Action实现,模型层的业务数据由Hibernate框架实现数据的持久化。

4.1 Struts框架的实现

在基于Struts框架的系统中控制器ActionServlet根据Struts的配置文件struts-config.xml来实现客户端数据的输入、处理及输出的映射。运行用户注册页面register.jsp,用户将表单中的注册信息提交给控制器后,控制器根据上面配置文件创建一个JavaBean文件RegisterForm.java,即MVC中的业务模型。对业务模型的处理则由RegisterAction.java来完成,当注册成功后调用login.jsp页面进行登录,失败则调用register.jsp重新注册。

在RegisterAction.java文件中,方法public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)接收用户表单中的信息,并根据信息创建业务模型对象RegisterForm,从而实现对业务数据的访问,还可以根据业务数据的信息决定程序执行的流程。

4.2 Hibernate框架的实现

Hibernate的配置文件hibernate.cfg.xml中设置了数据库的连接信息:数据库的驱动程序、用户名和密码。UserInf.hbm.xml是对象/关系映射文件,实现了UserInf.java对象文件与数据库表userinf的映射。

对数据库的操作如查询、修改、删除和增加等操作则封装在UserInfManager.java文件中:

该方法在实现时首先创建Session对象,Session s=Sessionfactory.getSession(); 然后执行各种数据库操作,执行完毕后将Session对象关闭。

5 结语

基于Struts与Hibernate教学答疑系统实现了教师与学生之间信息交流的即时性,提高了学生的学习质量与学习兴趣;同时基于Struts与Hibernate框架的设计与实现提高了系统的开发效率,增强了系统的可维护性,并提供系统更好的性能。

参考文献

[1]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2005:13-14.

[2]石志国.JSP网络开发详解[M].北京:电子工业出版社,2007:291-294.

[3]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005.

――――――――――

作者简介:李晋(1973-),女,辽宁鞍山人,沈阳师范大学软件学院讲师。

上一篇:仿真模型在库存管理中的应用分析 下一篇:我们对Windows 7有多少了解?