论文部分内容阅读
摘 要:良好的体系结构和开发框架对一个Web应用的设计、开发、扩展、维护具有重要的意义,可以很好地提高代码的复用性,满足系统的“高内聚低耦合”原则。Struts是一种基于MVC的Web框架,实现了表示层和业务逻辑层的分离,提高了系统的开发维护效率;Hibernate是一种开源的持久层框架,保证系统具有更好的移植性,降低了数据库设计的复杂度。
关键词:MVC Struts Hibernate 框架
中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2015)03(c)-0021-01
随着Java EE技术应用的不断增多,选择一种高效的实用的软件开发框架成为软件开发设计人员的基本要求。在Web应用开发设计中,一个成熟的框架不但可以提高代码的重用性,减少重复代码开发的工作量,降低开发成本,还可以保证系统具有较好的移植性、可维护性和可扩展性,降低数据库设计的复杂度。目前基于Java EE平台上常见的Web框架有:Struts、spring、Hibernate等。
1 Struts和Hibernate框架与Web应用
MVC模式是一个存在于服务器端表达层的模型,它是“Model(模型)--View(试图)--Controller(控制器)”三个单词的缩写,MVC模式将应用分开,改变应用之间的高度耦合。
Struts的含义是“支干、支柱”,它的目的是为了帮助减少在运用MVC设计模型来开发Web应用的时间。实质上就是在JSP Model2的基础上实现的一个MVC框架,模型为JavaBean和EJB组件,控制器为ActionServlet和Action,视图为JSP和Struts客户化标签。Struts将Servlet和JSP标记用作实现的一部分。它继承了MVC的各项特性,并根据JavaEE的特点作了相应的变化和扩展。
在Struts体系结构中视图就是一组JSP文件,在这些JSP文件中既没有业务逻辑,也没有模型信息,只有标准的JSP标签或客户化标签。模型表示应用程序的状态和业务逻辑,对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现。控制器的主要功能从客户端接收请求,决定执行什么业务逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的View组件。
Hibernate是一个O/R Mapping(对象/关系映射)框架,提供强大的对象与关系数据库映射及查询功能,即是将Java中的对象和对象间的关系,对应到关系型数据库中的表格和表格间的关系,也能够把关系型数据库中的表格和表格间的关系对应到Java中的对象和对象间的关系。它的基本工作原理是Hibernate通过对JDBC进行封装,并对关系数据库与Java类进行mapping,从而来实现对关系数据库的面向对象方式的操作,这样传统的JDBC+SQL的操作数据方式就得到了改变,程序开发人员能够用更多的时间和精力来进行对象方面的开发。同时为各种不同的数据库提供了统一操作的接口,让Hibernate对几乎所有的数据库开发都支持,从而使应用程序的跨数据库开发变为了可能。
2 Web系统应用实例
下面以一个课程成绩管理系统Web应用为例,阐述在Struts+Hibernate框架技术下如何进行实现。由于系统功能在事务处理逻辑与代码设计上具有较多的相似性,因此只选取系统Hibernate实现、登录模块实现2个具有代表性的模块功能加以阐述。
2.1 Hibernate初始化
首先需要定义一个类来对Hibernate进行初始化,并由它来创建全局的Session
Factory实例,提供创建Session实例、关闭Session实例、打开/关闭事务和重新创建SessionFactory实例的方法。这里定义一个HibInit类来完成上述的功能,具体实现SessionFactory创建、session获取和关闭、事务开始、关闭和回滚等功能。
SessionFactory创建部分的主要代码为:
try{sessionFactory=new Configuration().configure().buildSessionFactory();}
catch(Throwable ex){ex.printStack
Trace();
System.out.println("SessionFactory初始化失敗");
throw new ExceptionInInitializerError(ex);
}
2.2 映射文件创建
通过对数据库的分析,已知系统中主要包含系统管理员表(admin)、教师信息表(teacher)、学生信息表(student)、课程信息表(course)、班级信息表(class)、学生课程与成绩表(enrol)六个表,为了实现用Hibernate来进行对象持久化操作,就需要对上述的六个表进行Hibernate映射文件创建。创建的映射文件为XX.xml,方法用Hibernate辅助工具自动生成。
2.3 持久化类创建
进行完映射文件创建后,还需要对持久化类进行创建,并将创建好的持久化类放在映射文件的同一个包中,以实现对各类基本信息的持久化操作。
2.4 Struts配置
在课程成绩管理系统登录模块中,对用户所提交的信息进行验证标识以及不同角色对应页面跳转功能主要是通过配置登录的LoginForm进行实现的,以此首先必须在struts-config.xml中进行相应的配置,基本代码如下:
省略
2.5 LoginForm模型创建
在课程成绩管理系统登录模块中,还需要在这里创建一个继承于ActionForm的模型,用于向Action提交信息,部分基本代码为:
public class LoginForm extends ActionForm{
public void reset(ActionMapping mapping,HttpServletRequest request){}
public void setPassword(String password){this.password=password;}
}
3 结语
通过对Web系统应用实例程成绩管理系统分析,阐述了Struts+Hibernate框架实现过程,很好的提高了代码的重用性,降低开发成本,并保证了系统良好的移植性、可维护性和可扩展性,降低了数据库设计的复杂度,提高了开发效率。
参考文献
[1] 李刚.经典Java EE企业应用实战[M].北京:电子工业出版社,2010.
[2] 刘伟,张利国.Hibernate开发与实战[M].北京:电子工业出版社.
[3] (美)Christian.Hibernate实战[M].北京:人民邮电出版社,2008.
关键词:MVC Struts Hibernate 框架
中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2015)03(c)-0021-01
随着Java EE技术应用的不断增多,选择一种高效的实用的软件开发框架成为软件开发设计人员的基本要求。在Web应用开发设计中,一个成熟的框架不但可以提高代码的重用性,减少重复代码开发的工作量,降低开发成本,还可以保证系统具有较好的移植性、可维护性和可扩展性,降低数据库设计的复杂度。目前基于Java EE平台上常见的Web框架有:Struts、spring、Hibernate等。
1 Struts和Hibernate框架与Web应用
MVC模式是一个存在于服务器端表达层的模型,它是“Model(模型)--View(试图)--Controller(控制器)”三个单词的缩写,MVC模式将应用分开,改变应用之间的高度耦合。
Struts的含义是“支干、支柱”,它的目的是为了帮助减少在运用MVC设计模型来开发Web应用的时间。实质上就是在JSP Model2的基础上实现的一个MVC框架,模型为JavaBean和EJB组件,控制器为ActionServlet和Action,视图为JSP和Struts客户化标签。Struts将Servlet和JSP标记用作实现的一部分。它继承了MVC的各项特性,并根据JavaEE的特点作了相应的变化和扩展。
在Struts体系结构中视图就是一组JSP文件,在这些JSP文件中既没有业务逻辑,也没有模型信息,只有标准的JSP标签或客户化标签。模型表示应用程序的状态和业务逻辑,对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现。控制器的主要功能从客户端接收请求,决定执行什么业务逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的View组件。
Hibernate是一个O/R Mapping(对象/关系映射)框架,提供强大的对象与关系数据库映射及查询功能,即是将Java中的对象和对象间的关系,对应到关系型数据库中的表格和表格间的关系,也能够把关系型数据库中的表格和表格间的关系对应到Java中的对象和对象间的关系。它的基本工作原理是Hibernate通过对JDBC进行封装,并对关系数据库与Java类进行mapping,从而来实现对关系数据库的面向对象方式的操作,这样传统的JDBC+SQL的操作数据方式就得到了改变,程序开发人员能够用更多的时间和精力来进行对象方面的开发。同时为各种不同的数据库提供了统一操作的接口,让Hibernate对几乎所有的数据库开发都支持,从而使应用程序的跨数据库开发变为了可能。
2 Web系统应用实例
下面以一个课程成绩管理系统Web应用为例,阐述在Struts+Hibernate框架技术下如何进行实现。由于系统功能在事务处理逻辑与代码设计上具有较多的相似性,因此只选取系统Hibernate实现、登录模块实现2个具有代表性的模块功能加以阐述。
2.1 Hibernate初始化
首先需要定义一个类来对Hibernate进行初始化,并由它来创建全局的Session
Factory实例,提供创建Session实例、关闭Session实例、打开/关闭事务和重新创建SessionFactory实例的方法。这里定义一个HibInit类来完成上述的功能,具体实现SessionFactory创建、session获取和关闭、事务开始、关闭和回滚等功能。
SessionFactory创建部分的主要代码为:
try{sessionFactory=new Configuration().configure().buildSessionFactory();}
catch(Throwable ex){ex.printStack
Trace();
System.out.println("SessionFactory初始化失敗");
throw new ExceptionInInitializerError(ex);
}
2.2 映射文件创建
通过对数据库的分析,已知系统中主要包含系统管理员表(admin)、教师信息表(teacher)、学生信息表(student)、课程信息表(course)、班级信息表(class)、学生课程与成绩表(enrol)六个表,为了实现用Hibernate来进行对象持久化操作,就需要对上述的六个表进行Hibernate映射文件创建。创建的映射文件为XX.xml,方法用Hibernate辅助工具自动生成。
2.3 持久化类创建
进行完映射文件创建后,还需要对持久化类进行创建,并将创建好的持久化类放在映射文件的同一个包中,以实现对各类基本信息的持久化操作。
2.4 Struts配置
在课程成绩管理系统登录模块中,对用户所提交的信息进行验证标识以及不同角色对应页面跳转功能主要是通过配置登录的LoginForm进行实现的,以此首先必须在struts-config.xml中进行相应的配置,基本代码如下:
2.5 LoginForm模型创建
在课程成绩管理系统登录模块中,还需要在这里创建一个继承于ActionForm的模型,用于向Action提交信息,部分基本代码为:
public class LoginForm extends ActionForm{
public void reset(ActionMapping mapping,HttpServletRequest request){}
public void setPassword(String password){this.password=password;}
}
3 结语
通过对Web系统应用实例程成绩管理系统分析,阐述了Struts+Hibernate框架实现过程,很好的提高了代码的重用性,降低开发成本,并保证了系统良好的移植性、可维护性和可扩展性,降低了数据库设计的复杂度,提高了开发效率。
参考文献
[1] 李刚.经典Java EE企业应用实战[M].北京:电子工业出版社,2010.
[2] 刘伟,张利国.Hibernate开发与实战[M].北京:电子工业出版社.
[3] (美)Christian.Hibernate实战[M].北京:人民邮电出版社,2008.