网站首页  词典首页

请输入您要查询的论文:

 

标题 JFinal与SSH在JavaWeb应用开发中的研究
范文

    干佳林 何贞铭 廖环宇

    摘要:随着JavaWeb应用技术的发展,JavaWeb应用框架应运而生,开发者选择合适的开发框架将事半功倍。该文研究了JFinal和SSH(Struts2+Spring+Hibernate)两种框架的构成及特点,分别介绍两种技术在Web应用中的开发实例,并做出总结。该文充分展示了两种框架技术的应用特色,为开发者选择应用开发框架时提供了一定的参考依据。

    关键词:SSH;JFinal;JavaWeb;框架

    中图分类号:TP311 文献标识码:A

    文章编号:1009-3044(2019)07-0081-02

    开放科学(资源服务)标识码(OSID):

    随着JavaWeb技术的发展,开发项目中所运用的JavaWeb框架技术也层出不穷。开发者使用框架的主要目的是[1]:实现业务模块间的松耦合性、系统的扩展性、代码的重用性,从而达到开发、维护的高效性。

    JFinal于2011年初推出,是一種基于微内核、全方位扩展型架构,SSH是一种典型的J2EE三层结构。前者在开源社区备受瞩目,后者是当前Java Web中主流框架,将两者进行比较,对Java Web开发者具有一定的参考价值。

    1 Jfinal

    1.1 JFinal介绍

    JFinal是一款国产的、基于MVC+ORM的开源JavaWeb框架[2],其设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时,并拥有ruby、python、php等动态语言的开发效率。

    1.2 JFinal的架构及其特点

    JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分组成[3],每个部分都是基于接口实现的,支持完整的自定义,使用灵活,扩展性强。JFinal总体架构图如图1所示。

    其中,JFinalFilter负责拦截客户端请求,Handler是一个链条式调用,并对请求进行详细处理,Interceptor负责在Controller或方法执行前执行,Render负责视图渲染。Plugin是JFinal的插件部分[4],提供了c3p0、Spring等第三方插件集成,同时支持用户自定义集成插件。

    JFinal框架采用MVC架构,设计精巧,使用简单;支持AOP[5],提供配置灵活功能强大的拦截器;同时遵循COC原则,无XML实现零配置等特点。其在开发的每个阶段都提供了大量的便捷性和支持。

    2 SSH

    2.1 SSH介绍

    SSH是一种由Struts2、Spring、Hibernate三个框架组合的集成框架[6],是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为三层:表示层、业务逻辑层、数据持久层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。

    2.2 SSH的架构及其特点

    Struts2是一个基于MVC[7]设计模式的Web应用框架。它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

    Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架[8]。Spring可以将简单的组件配置、组合成为复杂的应用。

    Hibernate是一个开放源代码的对象关系映射框架[9],它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架。

    三者在整合框架中,各司其职。其中Struts2位于表现层,负责与用户的交互和页面逻辑的跳转;Spring位于业务逻辑层,负责管理业务逻辑处理对象;Hibernate位于数据访问层,负责数据库的操作[10]。SSH整合架构图如图2所示。

    3 两种框架在Web项目中的应用

    本节以管理员在博客中添加文章为功能需求,分别以两者框架中Controller中部分代码为例。

    3.1 JFinal在Web应用开发实例

    采用JFinal编写相关代码,核心代码如下:

    @Before(AdminInterceptor.class)

    publicclassArticleControllerextendsController{

    // 添加

    publicvoidadd() {

    getModel(Article.class).save();

    redirect("/article/list");

    }

    }

    其中Controller是JFinal的核心类之一[11],该类作为MVC模式中的控制器,基于JFinal的Web应用的控制器需要继承该类。该控制器执行前,可在AdminInterceptor拦截器中进行登录权限校验等操作。getModel用来接收页面表单域传递过来的model对象,该model对象与Article实体类相对应,实现数据传参和入库操作规范化和简单化。

    3.2 SSH在Web应用开发实例

    结合上文提到的实例,采用SSH框架编写相关代码,核心代码如下:

    @SessionAttributes(value = "article")

    @Controller

    //使用该注解标志它是一个控制器

    @RequestMapping(value = "/article")

    public class ArticleController {

    @Autowired

    publicArticleServicearticleService;

    @RequestMapping(value = "/add")

    PublicModelAndViewaddArticle(ModelMap mm, Article article){

    ModelAndViewmav = new ModelAndView("/article"); articleService.addArticle(article);

    mav.addObject("article", articleService.getArticles());

    returnmav;

    }

    }

    SSH框架一般把代码分为Controller、Service、Dao、Entity四层。其中,Controller层完成前端控制器解析处理的URI;Service层负责业务处理层,提供控制层调用接口的抽象方法及其实现;Dao层提供与数据库交互的方法,及其相关的SQL语句;Entity层与数据库表进行映射,并提供get和set方法。

    3.3两种框架在JavaWeb项目中的开发总结

    JFinal与SSH两者都有各自的特点,如何进行取舍,取决于项目实际情况。以下从客观的角度,将JFinal与SSH进行对比,如表1所示。

    从开发环境配置方面比较,JFinal比SSH配置相对复杂,同时后者需要考虑不同jar包版本之间的兼容性问题。从开发工作量方面比较,JFinal开发工作量相对较少。从扩展性和维护性比较,SSH通过控制反转和面向切面编程技术,解决代码间的耦合,相对JFinal具有优势。

    4 结束语

    本文主要简单阐述了JFinal和SSH两种开源框架及其特点,并结合实例分别介绍两种框架下的开发步骤,最后,针对两种框架下的开发进行总结。对于个人学习JavaWeb框架入门或者小型项目,JFinal是个不错的选择,但是对于扩展性、灵活性要求较高的项目,则应当选择SSH框架。

    參考文献:

    [1] 周伟. 计算机JavaWeb软件MVC设计模式的研究与实现[J]. 电脑迷, 2016(12): 33, 57.

    [2] 苏小平. 基于Jfinal+Shiro框架的Web应用系统开发研究[J]. 电脑知识与技术, 2016, 12(30): 68-70.

    [3] 杨宁,刘丹军. 基于JFinal框架的Java Web应用开发研究[J]. 电脑知识与技术, 2014, 10(7): 1440-1443.

    [4] 欧阳宏基,于博,葛萌. 基于JFinal框架的Java EE应用研究[J]. 微处理机, 2017(4): 45-50.

    [5] 肖荣,张云华. 基于AOP和反射计算的动态自适应中间件[J]. 计算机系统应用, 2010, 19(1): 21, 58-62.

    [6] 谭呈祥. 基于Struts2+Hibernate+Spring的就业信息管理系统设计与实现[J]. 电脑迷, 2018(4): 87-88.

    [7] 张雪敏. 浅议MVC设计模式在JavaWeb中的作用[J]. 科技风, 2018(22): 58-59.

    [8] 黄俊勇. 基于Spring框架的研究与设计[J]. 电脑知识与技术, 2018, 14(3): 116-117, 120.

    [9] 杨国勋. Java Web应用框架研究与应用[J]. 科技传播, 2017, 9(21): 90-91.

    [10] 高进. Java Web中的Java SSH框架分析[J]. 科技风, 2018(23): 48.

    [11] 赵璘,王红霞. JFinal与Spring MVC+JDBCTemplate在Web应用开发中的研究[J]. 电子元器件与信息技术, 2017, 1(1): 13-23.

    【通联编辑:代影】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 6:42:14