• 
    

    
    

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

      淺談JavaBean在MVC模式中的應(yīng)用

      2013-12-31 00:00:00朱亞玲
      網(wǎng)友世界 2013年10期

      【摘 要】本文在介紹MVC模式的基礎(chǔ)上,分析了基于JSP的MVC模式的實現(xiàn)方案。重點闡述了該方案中JavaBean的使用方式。

      【關(guān)鍵詞】MVC;JavaBean;JSP;Servlet

      Abstract:The paper introduces the MVC mode,and analyzes the implementation of JSP based on MVC mode.Then the theme focuses on how to use JavaBean in the scheme.

      Keywords:MVC;JavaBean;JSP;Servlet

      1.MVC模式

      利用Java技術(shù)構(gòu)建Web應(yīng)用存在ModelI和ModelII兩種模式。其中,ModelI模式是采用JSP或JSP+JavaBean模式,ModelII模式是采用MVC模式。使用JSP模式開發(fā)Web應(yīng)用,優(yōu)點是簡單易學(xué),便于快速開發(fā)小型網(wǎng)站,但是代碼可讀性較差,較難維護。使用JSP結(jié)合JavaBean開發(fā)Web應(yīng)用,未能實現(xiàn)視圖和業(yè)務(wù)邏輯完全分離,盡管十分簡單但不適合開發(fā)大型應(yīng)用程序,給網(wǎng)頁設(shè)計和維護仍然帶來很多麻煩。

      MVC是一種先進的軟件開發(fā)的設(shè)計模式,它把應(yīng)用程序分成三個核心模塊:模型(Model)、視圖(View)、控制器(Controller),它們各自處理自己的任務(wù),相互協(xié)作,實現(xiàn)Web系統(tǒng)的職能分工。模型、視圖、控制器三者在功能上構(gòu)成了一個控制回路,如圖1所示。

      圖1 模型、視圖、控制器關(guān)系圖

      (1)模型層:模型層又稱業(yè)務(wù)邏輯層,它完成系統(tǒng)的核心功能,負(fù)責(zé)處理用戶的數(shù)據(jù),實現(xiàn)核心業(yè)務(wù)邏輯。同時,模型還為視圖的顯示提供數(shù)據(jù),并可被多個視圖所共享。

      (2)視圖層:視圖層的主要任務(wù)是與用戶進行交互,收集用戶的數(shù)據(jù)并顯示模型層提供的數(shù)據(jù)。

      (3)控制器:控制器簡單來說就是一個分發(fā)器,主要負(fù)責(zé)接收用戶的請求,然后做出判斷,根據(jù)判斷結(jié)果將請求交給具體的模型進行處理,最后調(diào)用視圖來顯示模型返回的數(shù)據(jù)。

      MVC模式通過模型層將人機交互從核心功能中分離出來,而模型對用戶來說是透明的,用戶只需要觀察視圖即可,用戶與模型的交互通過控制器提供的安全方法來實現(xiàn)。

      2.JSP中的MVC模式

      基于JSP的MVC模式中,模型、視圖、控制器三個角色分別由JavaBean、JSP、Servlet承擔(dān)。即控制器servlet負(fù)責(zé)接受請求,然后根據(jù)請求創(chuàng)建相應(yīng)的JavaBean,由JavaBean處理數(shù)據(jù),servlet把處理結(jié)果再存儲到JavaBean中;JSP頁面獲取JavaBean的數(shù)據(jù)進行顯示。這種設(shè)計模式由于開發(fā)流程明確,層與層之間的分工和技術(shù)要求清晰,非常有利于大系統(tǒng)的開發(fā)。

      3.JavaBean

      JavaBean是通過封裝具有某種功能或者處理某個業(yè)務(wù)的可重復(fù)使用的軟件組件。由于JavaBean是基于Java語言的,因此JavaBean不依賴平臺,可以在任何安裝了Java運行環(huán)境的平臺上的使用,而不需要重新編譯。但是,JavaBean需要遵循一定的語法規(guī)則:

      (1)類中必須提供一個無參的public的構(gòu)造方法。

      (2)類的屬性是private的,訪問屬性的方法必須是public的。

      (3)如果類的屬性名稱是xxx,類中必須提供兩個方法:getXxx()和setXxx(),分別用來獲取屬性xxx的值和修改屬性xxx的值。即方法的名字用get或set為前綴,后綴是將屬性名稱的首字母大寫的字符序列。對于boolean類型的屬性,允許使用“is”代替上面的“get”和“set”。

      4.模型JavaBean的應(yīng)用

      基于JSP的MVC模式中,將servlet中創(chuàng)建的bean存儲到內(nèi)置對象,進而轉(zhuǎn)發(fā)給JSP。由于JavaBean的生命周期不同,在servlet中創(chuàng)建的bean與JSP中所指定的bean的銜接方式也不同,使用方式也有所不同。

      (1)在servlet端創(chuàng)建Javabean:User u=new User()。

      (2)根據(jù)具體系統(tǒng)要求選擇將bean存儲到內(nèi)置對象request,session,application中:request.setAttribute(“key”,u);request.getSession(true).setAttribute(“key”,u);getServletContext().setAttribute(“key”,u)。

      (3)在servlet端將存儲到內(nèi)置對象的bean傳遞到JSP頁面,使它在更新視圖中有效,從而通過bean方法得到目的數(shù)據(jù):

      方法1(轉(zhuǎn)發(fā)請求):

      request.getRequestDispatcher(“show.jsp”).

      forward(request,response;

      方法2(重定向):

      response.sendRedirect(“show.jsp”);

      其中,若將bean存儲到request中,傳遞數(shù)據(jù)時只能采用方法1;若將bean存儲到session或application中,兩種方法均可用。

      (4)在JSP端更新視圖:

      方法1:使用獲取bean,其中scope屬性中指明bean被存放的內(nèi)置對象。若從request中獲取對象:

      方法2:內(nèi)置對象通過getAttribute()方法直接獲取bean,將其強制轉(zhuǎn)換為相應(yīng)類型。

      若從session中獲取對象:

      out.print((User)session.getAttribute(“key”).

      getXXX())。

      5.總結(jié)

      MVC是一種先進的軟件開發(fā)的設(shè)計模式,它把應(yīng)用程序分成三個核心模塊:模型(Model)、視圖(View)、控制器(Controller),實現(xiàn)了Web系統(tǒng)的職能分工。而模型負(fù)責(zé)處理用戶的數(shù)據(jù),實現(xiàn)業(yè)務(wù)邏輯,為視圖的顯示提供數(shù)據(jù)。JavaBean不依賴平臺,實現(xiàn)了代碼復(fù)用,易編寫、易維護、易使用。所以JSP+JavaBean+Servlet的使用是MVC模式的一中簡單而又行之有效的方案。

      參考文獻(xiàn):

      [1]Sun公司.Servlet技術(shù)文檔[DB/OL].http://java.sun.com/products/servlet/index.jsp,2006-01-01.

      [2]耿祥義.JSP實用教程(第二版)[M].北京:清華大學(xué)出版社,2007.

      [3]賀建英.JSP中基于JavaBean技術(shù)的數(shù)據(jù)庫訪問研究[J].科技信息,2008,23(1):18-21.

      [4]李安,劉曉東.一種流行的WEB開發(fā)模式——JSP+JavaBea[J].微機發(fā)展,2002,11(6):41-43.

      [5]顧會珍,劉暾東.MVC架構(gòu)在JSP+JavaBean開發(fā)模式中的應(yīng)用[J]計算機與現(xiàn)代化,2007,11(5):11-13.

      作者簡介:朱亞玲(1983—),女,甘肅定西人,蘭州工業(yè)學(xué)院講師,主要研究方向:web開發(fā),圖形圖像與視頻處理。

      三河市| 上高县| 信丰县| 梓潼县| 鄂尔多斯市| 舒城县| 惠水县| 吴川市| 胶南市| 疏勒县| 天祝| 利川市| 江源县| 西昌市| 宁安市| 东明县| 揭西县| 南开区| 十堰市| 聂拉木县| 安康市| 盘锦市| 长垣县| 本溪市| 抚顺市| 鸡泽县| 新安县| 金塔县| 太谷县| 五家渠市| 定结县| 开远市| 泸定县| 嵊州市| 桃源县| 苗栗县| 鄢陵县| 武夷山市| 澄城县| 公主岭市| 探索|