劉小飛 李明杰
摘要:本著有利于初學者對JavaWeb開發(fā)路線理解的原則,本項目沒有使用JavaWeb中已有成熟架構(gòu)體系,而是利用JsP和Servlet組合方案展示了Web頁面開發(fā)中的三層架構(gòu)體系,即前端、業(yè)務處理層和后臺數(shù)據(jù)庫層。學習了本項目的開發(fā)后,可以讓初學者對Web頁面類的開發(fā)流程有一個較為全面的認識和掌握。
關鍵詞:Web開發(fā);JSP;Servlet
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)12-0082-02
1概述
Web頁面系統(tǒng)開發(fā)是經(jīng)典的軟件開發(fā)項目,也是從事軟件開發(fā)人員的啟蒙項目。Web頁面系統(tǒng)開發(fā)涉及前端頁面、服務器、后端數(shù)據(jù)庫之間數(shù)據(jù)流與業(yè)務流的交互,因此需要學習一套完整成熟的開發(fā)架構(gòu)體系。
Java中的Web架構(gòu)種類豐富,但基本的開發(fā)規(guī)則和步驟都是類似的:在前端頁面上提供用戶交互,使用JSP等技術(shù)實現(xiàn)面向?qū)ο蟮恼埱蠛晚憫鞒?,使用Servlet或者Filter等技術(shù)攔截檢驗請求,確認安全無誤后訪問后臺服務器和數(shù)據(jù)庫。通常所說的第三方框架即是對上述流程進行了集成優(yōu)化后的一套完整處理方案,保證項目開發(fā)的快速高效。本文的新聞頻道系統(tǒng)沒有使用第三方框架而是選擇JsP和Servlet技術(shù)結(jié)合開發(fā)的原因是為了有利于初學者對于JavaWeb開發(fā)路線的理解。
2需求分析
新聞頻道系統(tǒng)用戶的需求是可以進行主頁面的新聞瀏覽,并且能夠定期進行更新和推送。不同用戶的關注點各不相同,需要實現(xiàn)能夠分類別的瀏覽,比如“體育”類、“軍事”類等等,用戶還需要能夠進行定向的搜索和查找。允許用戶發(fā)表自己的觀點和對新聞反饋自己的情緒,比如“點贊”“反對”等等。通過對上述需求的分析,我們可以確定三類不同權(quán)限的用戶,按權(quán)限級別由低到高分別為游客、普通用戶和管理員用戶。游客只有瀏覽和查找新聞的權(quán)限,無評論和反饋權(quán)限。普通用戶使用賬號登錄后可以進行評價和反饋,但不能對原始新聞進行增刪改操作。管理員用戶擁有最高權(quán)限。
3技術(shù)路線
3.1業(yè)務邏輯和數(shù)據(jù)邏輯
簡單來說,本項目的主要業(yè)務流向和數(shù)據(jù)流向為:前端頁面發(fā)送請求一后端服務器接收后對請求進行授權(quán)和反饋。這個過程中涉及數(shù)據(jù)的修改時,服務器可與數(shù)據(jù)庫之間進行交互。最后在前端頁面上顯示授權(quán)和反饋后的結(jié)果。
通常使用三層架構(gòu)進行處理,即Web/UI層,Service層和DAO層。
1)Web/UI層(前端UI和展示層):通常使用html、CSS等腳本語言編寫的頁面,用于接收用戶請求,展示反饋結(jié)果。
2)Selvice層(業(yè)務層):接收請求后,實現(xiàn)具體業(yè)務邏輯的地方,比如:登錄校驗、日志的打印等等。涉及數(shù)據(jù)流時,接收到DAO層的反饋數(shù)據(jù)后再返回給Web/UI層。
3)DAO層(數(shù)據(jù)層):直接跟數(shù)據(jù)庫關聯(lián),專門負責對于數(shù)據(jù)庫的增刪改查操作,按照訪問請求得到數(shù)據(jù)后會反饋給Service層。
早期的項目開發(fā)時,直接讓前端的Web/UI層和DAO層進行交互,缺少中間層Service,這樣會造成項目業(yè)務流、數(shù)據(jù)流不分,數(shù)據(jù)擁塞,另外也加大了數(shù)據(jù)安全的風險。采用三層架構(gòu)可以實現(xiàn)高內(nèi)聚低耦合的特點,讓各主要功能模塊各司其職、互不干擾。在這三層架構(gòu)之間控制業(yè)務流向和數(shù)據(jù)流向的技術(shù)就是JSP和Servlet技術(shù)。
3.2相關技術(shù)和工具
1)JSP
JSP(Java Server Page),是一種運行在服務器端的Java頁面,最初是由Sun公司倡導,并由多家公司參與建立起來的一種動態(tài)網(wǎng)頁技術(shù)標準。JSP運行在服務端,當用戶通過Web頁面請求訪問JSP資源時,Web服務器會使用JSP引擎對請求的JSP進行編輯和執(zhí)行,然后將生成的頁面返回給客戶端瀏覽器進行顯示。當JSP請求提交到服務器時,Web容器會通過以下三個階段進行處理,即翻譯階段,編譯階段和執(zhí)行階段。
2)Servlet
Servlet(Server Applet),全稱Java SeIvlet。是用Java編寫的服務器端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。狹義的Servlet是指Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。