Java SSH框架在Java Web中的应用
2016-03-08李健田立锋郭瑞
李健 田立锋 郭瑞
(海洋石油工程股份有限公司,天津 300451)
Java SSH框架在Java Web中的应用
李健 田立锋 郭瑞
(海洋石油工程股份有限公司,天津 300451)
SSH框架是Java Web开发的常见技术框架集合,包含Struts、Hibernate和Spring三个框架,这三个框架在具体开发应用侧重点都有所不同,各自管理的代码范围也有着较大的区别,当前应用SSH框架集进行Java Web项目的开发是web开发过程中非常流行的开发模式。本文通过对SSH框架进行简单介绍,探讨各自框架在web领域具体应用以及Java Web框架技术的发展展望,使得读者能够通过本文快速了解SSH框架及相关技术,同时为开发人员进行快速开发提供有效参考。
Java;ssh框架;Java Web;应用
1 引言
Java于1995由sun公司推出(现被oracle收购),当前Java最新版本为Java 9.0,Java是一种面向对象的开发语言,其主要有三大体系,分别为Java Se、Java Me以及Java EE。Java语言目前常见的开发形式主要体现在web方面、android方面以及当前炙手可热的云计算方面,在桌面类型开发相对较少。Java以其独特的健壮性、高性能以及跨平台性等特点深受广大开发者的追捧。
Java Web是利用Java技术解决web问题的技术集。web应用通常有两方面的内容,即表现层和服务器层。表现层所运用的技术包括HTML、CSS、JavaScript(包含常见的JS应用集ext、jquery、Node.js等)、FreeMarker、Velocity、JSP等,而服务器层则更多的由Java技术集来处理,如常见的Servlet技术、Java Data Base Connectivity技术、Struts框架、JSF框架、Hibernate框架、ibatis框架、Spring框架等。正是由于Java技术如此丰富的工具集,使得Java语言在web开发中占有举足轻重的作用。需要提及的是,正因为Java技术集的庞杂,使得Java Web开发的复杂度较传统开发web开发有了一定的难度,一些轻量级web开发技术如PHP也迅速发展壮大,给Java开发带来了巨大的挑战。总之,Java Web是当前十分流行web开发技术,也是诸多程序员和软件公司青睐的技术流,相信随着Java技术的发展,Java在web方面的必将展现出其强大生命力和技术适应能力。
2 SSH框架在JavaWeb中的应用
2.1 Struts框架的具体应用过程
本文主要就Struts2进行应用介绍。Struts的具体应用主要体现在三方面,首先是struts.xml文件的配置,Struts框架通过“包”的形式来管理各类action和拦截器,如下文所示:
〈!--定义包名以及包的继承属性--〉
〈package name="default"extends="struts-default"〉
……
〈!--定义处理action--〉
〈action name="XXX"class="XXX.action"〉
〈!--定义JSP资源和请求结果的映射关系--〉
〈result name="success"〉/success.jsp〈/result〉
〈result name="error"〉/error.jsp〈/result〉
〈/action〉
……
〈/package〉
拦截器的定义类似于action的定义,具体请参考相关文档。其次,在配置好struts.xml就要进行相关action类的定义,action类通常继承actionSupport类,然后定义好相关JavaBean的属性,并为其生成set/get方法,最后是execute方法的描述,execute则是调用相关的业务处理逻辑进行判断,然后根据返回的具体字段,结合上述struts.xml的配置,进行相应视图的跳转,其大致的编写过程如下:
public class XXXaction extendsactionSupport{
……
//定义相关属性(或者直接应用Javabean)
private String Property1;
private String Property2;
……
//get set方法定义
//请求处理的方法
public String execute()throws Exception{
if( //业务逻辑1)
return this.SUCCESS;
else{
return this.ERROR;
}
……
}
最后则是JSP页面的编制过程,JSP页面也就是最终展现在用户面前的网页代码,主要是html编码加上JSP的一些特殊标签构成的,当然Struts也提供了自身的一些标签,可供开发者选用。需要注意的是,Struts框架也提供了异常处理机制,开发人员可根据自身需求进行应用。上文所述的只是Struts框架在应用的时候最为核心的应用过程,Java版本的更新也提供了annotation等形式的零配置类型开发方式,本文在此就不再介绍。
2.2 Hibernate框架的具体应用过程
Hibernate配置应用过程体现在四个方面:
第一,hibernate.cfg.xml,具体如下:
……
//项目所用数据库用户名
〈property name="connection.username" 〉username〈/ property〉
//MySQL数据库链接URL以及端口的配置
〈property name="connection.url"〉jdbc:mysql://XXXXX: 3306/所用数据库名〈/property〉
//数据库方言配置
〈property name="dialect"〉org.hibernate.dialect.MySQLDialect〈/property〉
//数据库密码
〈property name="connection.password"〉XXXXX〈/property〉
//相关数据库驱动
〈property name="connection.driver_class"〉具体数据库驱动〈/property〉
//Hibernate映射文件路径
〈mapping resource="包名.hbm.xml"/〉
……
第二,即相应hbm.xml的配置过程,通常所见的配置包括一对一、一对多、多对一和多对多这四种关系的配置,该XML配置过程是hibernate应用的核心,也是hibernate将数据库中的二维表转化为面向对象编程的关键所在。
第三,即相关JavaBean的编写过程,在此需要提及的是,此处的JavaBean与Struts应用中JavaBean是同样的类,因此,在程序设计的时候应通盘考虑,做好JavaBean的设计工作,主要是属性名以及get/set方法的定义。
第四,即是相关业务处理代码的编写,根据Hibernate框架提供的Session以及事务处理等工具类,完成数据添加、修改、删除、查的具体工作,此外Hibernate也提供了直接访问数据库的一些类和方法,开发人员可以越过框架本身进行数据访问以及持久化的操作,本文不建议开发者这样做,如此会破坏代码的复用性以及结构完成性。最后,Hibernate框架与Struts框架结合点在于JavaBean类的公用以及action类中execute方法调用业务逻辑类,而业务逻辑类中代码有可能进行数据持久化层的访问。
2.3 Spring框架的具体应用过程
Spring框架的具体应用在于有机地整合了Struts框架以及Hibernate框架。首先,上文所述的数据库配置被Spring框架进行整合,通过数据源(datasource)的配置,管理Hibernate中数据驱动、数据库URL名以及数据库名以及密码等内容,具体的配置如下文:
//数据源的配置
〈bean id="dataSource"class="org.springframework.jdbc. datasource.DriverManagerDataSource"〉
//驱动名配置
〈property name="driverClassName"〉
〈value〉具体驱动类〈/value〉
〈/property〉
//数据库URL信息
〈property name="url"〉
〈value〉URL值〈/value〉
〈/property〉
//数据库用户名和密码
〈property name="username"〉
〈value〉用户名〈/value〉
〈/property〉
〈property name="password"〉
〈value〉密码〈/value〉
〈/property〉
〈/bean〉
其次,JavaBean、业务类、持久化、action类、Hibernate中的事务管理类也类似于数据源的配置进行管理,比如action类的配置和JavaBean的配置:
〈!--控制层action类的配置--〉
〈bean id="XXXXaction"
class="包名.XXXXaction"scope="作用范围"〉
〈property name="属性名"ref="属性引用"〉〈/property〉
〈/bean〉
……
〈!--javabean的配置--〉
〈bean id="类名ID"class="包名.类名"scope="prototype"/〉
〈/beans〉
再次,Java对象的生成方式也有所不同,Java对象不再通过new的形式生成,而是以注入的形式完成,类似于“〈bean id="对象名"class="包名.类型"〉〈/bean〉”样式;除此之外,还有aOP的配置类型,aOP是面向切面编程,主要是对于切面的定义、切面的实现类定义、切面异常抛出类等内容的定义:
〈!--切面定义--〉
〈aop:config〉
〈!--切面ID,以及所指向的类--〉
〈aop:aspect id="切面ID"ref="aspectBean"〉
〈!--切入点的定义--〉
〈aop:pointcut id="切点ID"expression="execution(*切点作用类)"/〉
〈!--切点进行前完成的业务代码--〉
〈aop:before pointcut-ref="切点引用"method="方法名" /〉
〈aop:after-returning pointcut-ref="切点引用"method="方法名"/〉
……
〈/aop:aspect〉
面向切面编程在权限验证、内容传递、懒加载以及事务处理方面都有重要的应用。最后Spring除了最为核心的aOP和IOC应用以外,还有自身一些组件如SpringMVC、乱码处理、SpringData等,为Spring的应用提供了更多的可能。
2.4 三大框架的整合应用
通过上文的分析可以看出,SSH三大框架在Java Web的开发过程中彼此之间都有一定的联系,例如Struts与Hibernate的应用结合点在于action类中execute方法,Struts框架与Spring框架的结合点在于JavaBean类对象的定义过程中,而Spring框架与Hibernate框架的整合支出在于数据源的配置过程,事务管理过程以及业务逻辑实现类的应用以及aOP切面的生成过程中。三个框架之间当然可以进行单独的应用,开发人员应根据项目组的要求进行相应技术的选择和应用,达到项目开发时间、项目规划、运行可靠性以及技术可行性的最优保障。
3 SSH框架在Java Web技术发展分析
上文对于SSH框架的具体应用进行了简单的介绍,通过上文的介绍可以看出Struts、Hibernate以及Spring框架的应用领域都不尽相同。Struts更多地承担了基础性视图层和应用层调用的角色,Hibernate则专注于对于数据持久化的应用,应用Hibernate实现了持久化层以面向对象的访问模式,而Spring更像一个大管家,通过以“bean”形式的配置,通盘地管理action、JavaBean、数据源、事务处理过程、缓存处理过程以及aOP的支持等,使得Struts和Hibernate更能够专注于自身业务的处理,减少对于配置带来复杂度关注,使得程序的编写和开发过程复用性方面有了更大的提升。另外需要提及的是,大多数的软件公司在Java Web开发过程并不局限于SSH框架的应用,往往采取Struts+Spring+ibatis或者JSF+ HIbernate+Spring甚至于Struts+Spring+JDBC的开发框架,当然还有一些其他的开发模式存在。本文仅仅以SSH框架对Java Web开发过程进行简要的描述,使得读者能够更加深入了解Java Web的开发模式,至于在开发团队选取具体框架进行web开发时,能够做到胸有成竹。
本文对于Java Web的开发过程侧重于服务器端的分析和阐述,在视图层次,伴随HTML5技术的发展以及EXT、JQuery、JavaFlex等富客户端技术使得网页的展现形式更加丰富多彩,同时异步刷新机制也使得网页数据的更新展现都迈入了新的层次,一定程度上做到了与C/S模式相媲美,在此本文就不过多地进行分析了。总之,相信随着Java技术的发展以及各种框架技术的成熟发展,Java在web领域依然会大放异彩。
4 结语
Java语言作为面向对象语言的代表,从Java applet小程序开始、再到后来Java Se、Java Me以及Java EE的齐头并进,再到如今Java android程序开发的火爆和Java Web开发的蓬勃发展,以及以Hadoop为代表的云计算领域大放异彩,展现出了Java语言强大的生命力。本文以Java Web技术为侧重点,主要讲解了SSH(Struts、Hibernate、Spring)框架在web开发过程中的实际应用,通过以实例代码的展示和文字说明,简要分析了SSH框架的核心应用,限于篇幅与笔者技术能力有限,不能将各个框架的细节进行完整的展示,相信通过文本的简要介绍,读者一定能够有“拨开雨雾见天日”的感觉,为踏入Java Web开发领域以及熟练运用SSH框架开发有所帮助。
参考文献:
[1]韩江.基于SSH2架构的Java Web通用权限管理的设计[J].智能计算机与应用,2014,02:114-116.
[2]丁亮,许舒人.基于SSH框架的java代码自动生成[J].计算机系统应用,2014,09:72-77.
[3]王向兵.Java EE多层架构Struts2+Spring3+Hibernate3+Ajax的整合[D].大连海事大学,2009.
[4]谌湘倩,狄文辉,孙冬.基于SSH框架与AJAX技术的Java Web应用开发[J].计算机工程与设计,2009,10:2590-2592+2596.
[5]马琰.基于SSL&SET协议的在线支付模型的研究[J].电脑与电信,2011,5:64-65.
Theapplication of Java SSH Framework in Java Web
Li Jian Tian Lifeng Guo Rui
(Offshore Oil Engineering Co.,Ltd.Tianjin 300451)
SSH is a common technology framework collection for Java Web development,including Struts,Hibernate and Spring.These three frameworks are different in the development and application,and each code range also has a greater difference. The application of SSH framework in Java Web is a very popular development mode of web development.This paper introduces the SSH framework,studies on the application of each frame in web and the prospect of Java Web framework,allowing readers to quickly understand the SSH framework and the relevant techniques.It will provide a valid reference for developers.
Java;ssh framework;Java Web;application
TP311.1
a
1008-6609(2016)03-0069-04
李健,男,辽宁葫芦岛人,本科,助理工程师,研究方向:系统架构设计。