基於MVC架構的學生信息管理系統分析


                                  學生信息管理系統的MVC架構分析

                                        摘 要
  目前,高校Web學生信息管理系統開發中多選用J2EE三層結構,在分析了某學院學生管理信息系統的實際需求的基礎上,在中間應用層開發中,采用以EJB為中心、Servlets做控制、JSP負責呈現邏輯的MVC結構,提高了Web應用程序的可擴展性和可維護性。   關鍵詞:模型-視圖-控制器;JSP;Servlets;EJB
                                  Abstract
  At present, the J2EE three-tier structure is mostly used in the development of Web student information management systems in colleges and universities. Based
on the analysis of the actual needs of a college student management information system, EJB-centered and Servlets are used for control in the development of the intermediate application layer.JSP is responsible for presenting the logical MVC structure, which improves the scalability and maintainability of Web applications.  Keywords: model-view-controller; JSP; Servlets; EJB 1 引言   目前Web學生信息管理系統都能支持多平台訪問與控制,采用分布數據管理方式。學生可以通過網絡實現信息查詢、選課、個人信息統計、下載學習資料、上傳作業、報告乃至實現網絡化學習。教師可以充分利用網絡資源,對每一門課程建設一個網絡節點,將課程要求、教學大綱、參考書目、電子教案、教學課件、習題指導等全部建設在該節點上,供學生使用,進一步實現網絡化教學。教務人員可以通過網絡數據庫平台實現課程管理、教學管理、成績管理、學籍管理的自動化,以及教學質量評估、人才評估的自動化。在開發高校Web學生信息管理系統中多選用J2EE三層結構,其
中中間層采用MVC結構可使系統具有良好的可擴展性及靈活性。 2 MVC概述 2.1 MVC簡介 MVC即“模型-視圖-控制器”(Model-View-Control,MVC)。MVC應用程序總是由這三個部分組成。Event(事件)導致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models
的數據或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數據來刷新自己。模型、視圖、控制器三者之間的關系和各自的主要功能,如圖
所示:
  
  MVC架構是一個復雜的架構。但是,我們已經總結出了很多可靠的設計模型,種設計模式結合在一起,使MVC架構的實現變得相對簡單易行。Views可以看作一棵樹,顯然可以用Composite Pattern來實現。
Views和Models之間的關系可以用Observer Pattern體現。Controller控制Views的顯示,可以用Strategy Pattern實現。Model通常是一個調停者,可采用Mediator Pattern來實現。   MVC與J2EE架構的對應關系是:View處於Web Tier或者說是Client Tier,通常是JSP/Servlet,即頁面顯示部分。Controller也處於Web Tier,通常用Servlet來實現,即頁面顯示的邏輯部分實現。Model處
於Middle Tier,通常用服務端的javaBean或者EJB實現。 2.2 MVC的產生   Model-View-Control是軟件設計的典型結構,它最先在Smalltalk中應用,是1996年由Buschmann提出的,應用於用戶交互應用程序中。smalltalk語言和java語言有很多相似性,都是面向對象語言,很自然
的SUN在petstore(寵物店)事例應用程序中就推薦MVC架構作為開發Web應用的架構模式。MVC架構是一種架構,其實需要其他模式協作完成。在J2EE模式目錄中,通常采用service to worker模式實現,而
service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式組成。而Struts只實現了MVC的View和Controller兩個部分,Model部分需要開發者自己來實現,Struts提供了抽象類Action使
開發者能將Model應用於Struts框架中。

2.3  MVC設計思想 
  MVC英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層。
 2.3.1 視圖 
  視圖(View)代表用戶交互界面,對於Web應用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨着應用的復雜性和規模性,界面的處理也變得具有挑戰性。一個應用可能有很多不同的視圖,
MVC設計模式對於視圖的處理僅限於視圖上數據的采集和處理,以及用戶的請求,而不包括在視圖上的業務流程的處理。業務流程的處理交予模型(Model)處理。比如一個學生添加學籍信息的視圖只接受來自模
型的數據並顯示給用戶,以及將用戶界面的輸入數據和請求傳遞給控制和模型。 2.3.2 模型   模型(Model):就是業務流程/狀態的處理以及業務規則的制定。業務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,並返回最終的處理結果。業務模型的設計可以說是MVC最主要的核心。
目前流行的EJB模型就是一個典型的應用例子,它從應用技術實現的角度對模型做了進一步的划分,以便充分利用現有的組件,但它不能作為應用設計模型的框架。它僅僅告訴你按這種模型設計就可以利用某些技
術組件,從而減少了技術上的困難。對一個開發者來說,就可以專注於業務模型的設計。MVC設計模式告訴我們,把應用的模型按一定的規則抽取出來,抽取的層次很重要,這也是判斷開發人員是否優秀的設計依
據。抽象與具體不能隔得太遠,也不能太近。MVC並沒有提供模型的設計方法,而只告訴你應該組織管理這些模型,以便於模型的重構和提高重用性。我們可以用對象編程來做比喻,MVC定義了一個頂級類,告訴
它的子類你只能做這些,但沒法限制你能做這些。這點對編程的開發人員非常重要。 業務模型還有一個很重要的模型那就是數據模型。數據模型主要指實體對象的數據保存(持續化)。比如將所添加的學生學籍信息保存到數據庫,再從數據庫獲取所需要查詢的學生學籍信息。我們可以將這個模
型單獨列出,所有有關數據庫的操作只限制在該模型中。 2.3.3 控制   控制(Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。划分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發器,選擇什么樣的模型,選擇什么樣的視圖,
可以完成什么樣的用戶請求。控制層並不做任何的數據處理。例如,用戶點擊一個連接,控制層接受請求后, 並不處理業務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用
戶。因此,一個模型可能對應多個視圖,一個視圖可能對應多個模型。

3  系統功能划分 
  Web學生信息管理系統完成的主要功能有(如圖所示):瀏覽學生基本信息、添加學生信息、修改學生信息、刪除學生信息、查詢學生信息。

 
        
4  系統中間層采用MVC設計模式 
  系統Web應用部分采用基於J2EE三層架構,將表現層,中間層和數據層分開,將所有的商業邏輯和工作流放入服務器端。在中間應用層中,采用以EJB為中心、Servlets做控制、JSP負責呈現邏輯的MVC結構
系統中間層中MVC結構把功能模塊、顯示模塊和控制模塊分離,使各部分之間協調工作、耦合性較小。EJB負責業務邏輯部分。通過對系統的分析,為了使系統開發與維護更具有可操作性,使系統的體系結構更
清晰,將業務邏輯划分為應用邏輯和商業邏輯兩部分,其中應用邏輯部分負責用戶的請求,商業邏輯部分負責與數據庫服務器的操作。應用邏輯以應用的需求條件調用商業邏輯,商業邏輯將相應結果再返回給
應用邏輯。業務邏輯功能的划分使EJB的處理更加自如,縮短開發周期,提高開發質量。同時也提高了系統的可復用性。 在這樣的模式下,HTTP請求從客戶端傳送控制器Servlet。Servlet更新模型,然后調用適合的視圖繪制JSP程序,利用更新后的模型更新視圖,使得執行內容與代碼相分離,提高了系統的可復用性和易維護性。
運用Session Bean包裝所有的Entity Bean,負責調用Entity Bean的方法,客戶端只允許與Session Bean交互。這樣可以縮短系統響應時間,減少資源利用。因此,系統地實現也將分為三個方面分別進行。 4.1 JSP+Servlet技術實現動態內容服務的表示層 在學校通知模塊中用戶在index.html頁面中單擊任意一項選項時,隨之對應便產生相對應的動作事件,例如:點擊“增加學生” ,程序就對應的調用"addStudent.jsp"來完成對學生信息的添加工作,其
他選項則與之相同。詳細設計如圖5:這是一種把JSP與java語句聯合使用來實現動態內容服務的方法。它吸取了兩種技術各自的突出優點,用JSP生成表達層的內容,讓java語句完成深層次的處理任務。在這
里,java語句充當控制者的角色,負責管理對請求的處理,創建JSP頁需要使用的方法和對象,同時根據用戶的動作決定把哪個JSP頁傳給請求者。在JSP頁內沒有處理邏輯,它僅負責檢查原先由java創建的對
象或方法,從java中提取動態內容插入靜態模板。這種方法清晰地分離了表達和內容,明確了角色的定義以及開發者與網頁設計者的分工。
4.2 StudentUtil.java類負責用戶的請求處理 
   StudentUtil.java可以看成是客戶程序的擴展,它只能一次由一個客戶使用。StudentUtil.java可以共享基礎數據庫的數據,但是它並不表示那些數據。在系統學籍信息管理模塊的設計實現中, StudentUt
il.java提供着所有時間的處理及其執行操作,例如添加學生信息:index.html—>addStudent.jsp—>addStudent_do.jsp—>StudentUtil.java—> Student.java—> index.html。
4.3 Student.java封裝學生信息 

5  結論 
  系統實現時采用的MVC結構可用來構建靈活且可重用的用戶界面。從體系結構角度來講,Servlet適合於MVC設計方法,在處理如內容格式化和顯示、基本請求處理、安全請求等等之類的用戶交互工作時很有效。
Servlet又可充當控制器和視圖。將JSP頁面用作視圖組件,JSP頁面或純servlet用作控制器組件。在EJB層開發中將業務邏輯划分為應用邏輯和商業邏輯兩部分。采用會話bean+CMP的持久化解決方案來實現業務
邏輯。通過以上方法可以使所開發高校學生信息管理系統具有良好的可擴展性及靈活性。
 
         
         
        
參考文獻:
  [1] 陳彥,沙莎。基於MVC架構的Web應用程序的分析與實現[J]。湖南科技學院學報 2006(11)
  [2] 倪寧。基於J2EE的MVC設計模式的Web應用開發的探討[J]。科技創新導報,2008(19)
  [3] 彭浩。基於MVC架構的學生管理系統的設計與實現[J]。軟件導刊,2008(06)
  [4] 王育堅,劉辰,祝洪濤。基於MVC模式的軟件項目管理系統的設計與實現[J]。北京聯合大學學報,2004(03)
  [5] 吉莉莉,呂繼祥,黃勇留。MVC模式的學生信息管理系統設計與實踐[J]。北京機械工業學院學報,2007(02)
 

翻譯 朗讀 復制 正在查詢,請稍候…… 重試 朗讀 復制 復制 朗讀 復制 via 谷歌翻譯(國內)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM