劉小飛 李明杰

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