• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      JFinal與SSH在JavaWeb應(yīng)用開(kāi)發(fā)中的研究

      2019-05-24 14:12:12干佳林何貞銘廖環(huán)宇
      電腦知識(shí)與技術(shù) 2019年7期
      關(guān)鍵詞:框架

      干佳林 何貞銘 廖環(huán)宇

      摘要:隨著JavaWeb應(yīng)用技術(shù)的發(fā)展,JavaWeb應(yīng)用框架應(yīng)運(yùn)而生,開(kāi)發(fā)者選擇合適的開(kāi)發(fā)框架將事半功倍。該文研究了JFinal和SSH(Struts2+Spring+Hibernate)兩種框架的構(gòu)成及特點(diǎn),分別介紹兩種技術(shù)在Web應(yīng)用中的開(kāi)發(fā)實(shí)例,并做出總結(jié)。該文充分展示了兩種框架技術(shù)的應(yīng)用特色,為開(kāi)發(fā)者選擇應(yīng)用開(kāi)發(fā)框架時(shí)提供了一定的參考依據(jù)。

      關(guān)鍵詞:SSH;JFinal;JavaWeb;框架

      中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2019)07-0081-02

      開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

      隨著JavaWeb技術(shù)的發(fā)展,開(kāi)發(fā)項(xiàng)目中所運(yùn)用的JavaWeb框架技術(shù)也層出不窮。開(kāi)發(fā)者使用框架的主要目的是[1]:實(shí)現(xiàn)業(yè)務(wù)模塊間的松耦合性、系統(tǒng)的擴(kuò)展性、代碼的重用性,從而達(dá)到開(kāi)發(fā)、維護(hù)的高效性。

      JFinal于2011年初推出,是一種基于微內(nèi)核、全方位擴(kuò)展型架構(gòu),SSH是一種典型的J2EE三層結(jié)構(gòu)。前者在開(kāi)源社區(qū)備受矚目,后者是當(dāng)前Java Web中主流框架,將兩者進(jìn)行比較,對(duì)Java Web開(kāi)發(fā)者具有一定的參考價(jià)值。

      1 Jfinal

      1.1 JFinal介紹

      JFinal是一款國(guó)產(chǎn)的、基于MVC+ORM的開(kāi)源JavaWeb框架[2],其設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、代碼量少、學(xué)習(xí)簡(jiǎn)單、功能強(qiáng)大、輕量級(jí)、易擴(kuò)展、Restful。在擁有Java語(yǔ)言所有優(yōu)勢(shì)的同時(shí),并擁有ruby、python、php等動(dòng)態(tài)語(yǔ)言的開(kāi)發(fā)效率。

      1.2 JFinal的架構(gòu)及其特點(diǎn)

      JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分組成[3],每個(gè)部分都是基于接口實(shí)現(xiàn)的,支持完整的自定義,使用靈活,擴(kuò)展性強(qiáng)。JFinal總體架構(gòu)圖如圖1所示。

      其中,JFinalFilter負(fù)責(zé)攔截客戶端請(qǐng)求,Handler是一個(gè)鏈條式調(diào)用,并對(duì)請(qǐng)求進(jìn)行詳細(xì)處理,Interceptor負(fù)責(zé)在Controller或方法執(zhí)行前執(zhí)行,Render負(fù)責(zé)視圖渲染。Plugin是JFinal的插件部分[4],提供了c3p0、Spring等第三方插件集成,同時(shí)支持用戶自定義集成插件。

      JFinal框架采用MVC架構(gòu),設(shè)計(jì)精巧,使用簡(jiǎn)單;支持AOP[5],提供配置靈活功能強(qiáng)大的攔截器;同時(shí)遵循COC原則,無(wú)XML實(shí)現(xiàn)零配置等特點(diǎn)。其在開(kāi)發(fā)的每個(gè)階段都提供了大量的便捷性和支持。

      2 SSH

      2.1 SSH介紹

      SSH是一種由Struts2、Spring、Hibernate三個(gè)框架組合的集成框架[6],是目前較流行的一種Web應(yīng)用程序開(kāi)源框架。集成SSH框架的系統(tǒng)從職責(zé)上分為三層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層,以幫助開(kāi)發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序。

      2.2 SSH的架構(gòu)及其特點(diǎn)

      Struts2是一個(gè)基于MVC[7]設(shè)計(jì)模式的Web應(yīng)用框架。它本質(zhì)上相當(dāng)于一個(gè)servlet,在MVC設(shè)計(jì)模式中,Struts2作為控制器(Controller)來(lái)建立模型與視圖的數(shù)據(jù)交互。

      Spring是一個(gè)輕量級(jí)控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架[8]。Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。

      Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架[9],它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是一個(gè)全自動(dòng)的ORM框架。

      三者在整合框架中,各司其職。其中Struts2位于表現(xiàn)層,負(fù)責(zé)與用戶的交互和頁(yè)面邏輯的跳轉(zhuǎn);Spring位于業(yè)務(wù)邏輯層,負(fù)責(zé)管理業(yè)務(wù)邏輯處理對(duì)象;Hibernate位于數(shù)據(jù)訪問(wèn)層,負(fù)責(zé)數(shù)據(jù)庫(kù)的操作[10]。SSH整合架構(gòu)圖如圖2所示。

      3 兩種框架在Web項(xiàng)目中的應(yīng)用

      本節(jié)以管理員在博客中添加文章為功能需求,分別以兩者框架中Controller中部分代碼為例。

      3.1 JFinal在Web應(yīng)用開(kāi)發(fā)實(shí)例

      采用JFinal編寫(xiě)相關(guān)代碼,核心代碼如下:

      @Before(AdminInterceptor.class)

      publicclassArticleControllerextendsController{

      // 添加

      publicvoidadd() {

      getModel(Article.class).save();

      redirect("/article/list");

      }

      }

      其中Controller是JFinal的核心類(lèi)之一[11],該類(lèi)作為MVC模式中的控制器,基于JFinal的Web應(yīng)用的控制器需要繼承該類(lèi)。該控制器執(zhí)行前,可在AdminInterceptor攔截器中進(jìn)行登錄權(quán)限校驗(yàn)等操作。getModel用來(lái)接收頁(yè)面表單域傳遞過(guò)來(lái)的model對(duì)象,該model對(duì)象與Article實(shí)體類(lèi)相對(duì)應(yīng),實(shí)現(xiàn)數(shù)據(jù)傳參和入庫(kù)操作規(guī)范化和簡(jiǎn)單化。

      3.2 SSH在Web應(yīng)用開(kāi)發(fā)實(shí)例

      結(jié)合上文提到的實(shí)例,采用SSH框架編寫(xiě)相關(guān)代碼,核心代碼如下:

      @SessionAttributes(value = "article")

      @Controller

      //使用該注解標(biāo)志它是一個(gè)控制器

      @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層負(fù)責(zé)業(yè)務(wù)處理層,提供控制層調(diào)用接口的抽象方法及其實(shí)現(xiàn);Dao層提供與數(shù)據(jù)庫(kù)交互的方法,及其相關(guān)的SQL語(yǔ)句;Entity層與數(shù)據(jù)庫(kù)表進(jìn)行映射,并提供get和set方法。

      3.3兩種框架在JavaWeb項(xiàng)目中的開(kāi)發(fā)總結(jié)

      JFinal與SSH兩者都有各自的特點(diǎn),如何進(jìn)行取舍,取決于項(xiàng)目實(shí)際情況。以下從客觀的角度,將JFinal與SSH進(jìn)行對(duì)比,如表1所示。

      從開(kāi)發(fā)環(huán)境配置方面比較,JFinal比SSH配置相對(duì)復(fù)雜,同時(shí)后者需要考慮不同jar包版本之間的兼容性問(wèn)題。從開(kāi)發(fā)工作量方面比較,JFinal開(kāi)發(fā)工作量相對(duì)較少。從擴(kuò)展性和維護(hù)性比較,SSH通過(guò)控制反轉(zhuǎn)和面向切面編程技術(shù),解決代碼間的耦合,相對(duì)JFinal具有優(yōu)勢(shì)。

      4 結(jié)束語(yǔ)

      本文主要簡(jiǎn)單闡述了JFinal和SSH兩種開(kāi)源框架及其特點(diǎn),并結(jié)合實(shí)例分別介紹兩種框架下的開(kāi)發(fā)步驟,最后,針對(duì)兩種框架下的開(kāi)發(fā)進(jìn)行總結(jié)。對(duì)于個(gè)人學(xué)習(xí)JavaWeb框架入門(mén)或者小型項(xiàng)目,JFinal是個(gè)不錯(cuò)的選擇,但是對(duì)于擴(kuò)展性、靈活性要求較高的項(xiàng)目,則應(yīng)當(dāng)選擇SSH框架。

      參考文獻(xiàn):

      [1] 周偉. 計(jì)算機(jī)JavaWeb軟件MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J]. 電腦迷, 2016(12): 33, 57.

      [2] 蘇小平. 基于Jfinal+Shiro框架的Web應(yīng)用系統(tǒng)開(kāi)發(fā)研究[J]. 電腦知識(shí)與技術(shù), 2016, 12(30): 68-70.

      [3] 楊寧,劉丹軍. 基于JFinal框架的Java Web應(yīng)用開(kāi)發(fā)研究[J]. 電腦知識(shí)與技術(shù), 2014, 10(7): 1440-1443.

      [4] 歐陽(yáng)宏基,于博,葛萌. 基于JFinal框架的Java EE應(yīng)用研究[J]. 微處理機(jī), 2017(4): 45-50.

      [5] 肖榮,張?jiān)迫A. 基于AOP和反射計(jì)算的動(dòng)態(tài)自適應(yīng)中間件[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2010, 19(1): 21, 58-62.

      [6] 譚呈祥. 基于Struts2+Hibernate+Spring的就業(yè)信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 電腦迷, 2018(4): 87-88.

      [7] 張雪敏. 淺議MVC設(shè)計(jì)模式在JavaWeb中的作用[J]. 科技風(fēng), 2018(22): 58-59.

      [8] 黃俊勇. 基于Spring框架的研究與設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2018, 14(3): 116-117, 120.

      [9] 楊國(guó)勛. Java Web應(yīng)用框架研究與應(yīng)用[J]. 科技傳播, 2017, 9(21): 90-91.

      [10] 高進(jìn). Java Web中的Java SSH框架分析[J]. 科技風(fēng), 2018(23): 48.

      [11] 趙璘,王紅霞. JFinal與Spring MVC+JDBCTemplate在Web應(yīng)用開(kāi)發(fā)中的研究[J]. 電子元器件與信息技術(shù), 2017, 1(1): 13-23.

      【通聯(lián)編輯:代影】

      猜你喜歡
      框架
      有機(jī)框架材料的后合成交換
      框架
      K-框架和緊K-框架的算子擾動(dòng)的穩(wěn)定性
      廣義框架的不相交性
      構(gòu)建新外商投資法下的外匯管理框架
      WTO框架下
      法大研究生(2017年1期)2017-04-10 08:55:06
      元框架:話語(yǔ)實(shí)踐中的修辭發(fā)明與爭(zhēng)議宣認(rèn)
      基于框架抽屜式低壓開(kāi)關(guān)存在問(wèn)題及對(duì)策
      電子制作(2016年19期)2016-08-24 07:50:02
      關(guān)于原點(diǎn)對(duì)稱的不規(guī)則Gabor框架的構(gòu)造
      一種基于OpenStack的云應(yīng)用開(kāi)發(fā)框架
      西充县| 临汾市| 海宁市| 古丈县| 眉山市| 忻州市| 扶余县| 安达市| 涪陵区| 黔东| 兰坪| 弥渡县| 玉山县| 张掖市| 宝丰县| 虹口区| 县级市| 枣强县| 临颍县| 建水县| 浮山县| 资源县| 乌鲁木齐县| 武冈市| 会东县| 乳源| 左权县| 汾西县| 诸城市| 湖南省| 沙洋县| 平舆县| 武冈市| 富民县| 水富县| 宁强县| 九龙城区| 吴忠市| 正安县| 潢川县| 通河县|