一、緒言
今天又來更新博文了,學習Java也已經有一段時間了,經過這段時間的學習,我對Java有了更深一層的了解。從剛開始的HelloWorld到了現在的小型網頁項目,這中間也經曆了很多。話不多說,下面開始我的項目闡述,由于是第一次做,必然存在很多瑕疵,希望大家多多指正。。。。。
二、項目介紹
關于部落格系統這個項目呢,相信很多小夥伴也做過,所謂一個莎士比亞也能創造出一千個哈姆雷特,每個人都有每個人的思路,大佬不就是靠吸取各種精華修煉而成的嗎?是以有趣的靈魂和解法對于程式員來說還是有比要多接觸接觸。進入正題,提到部落格系統,我們腦子裡首先能想到的無非就是增删查改這些操作,不過也确實是這樣。是以項目的内容就由此得出,如下:
1.登入系統
2.建立部落格
3.檢視文章詳情
4.對文章進行修改
5.新增文章
6.删除選中文章
這就是部落格系統的大體操作,其實也不難想嘛哈哈哈哈,不過說起來容易,做起來可就難了。大家一起來探讨下,我們要實作以上功能,要用什麼技術去實作呢,是JavaSpringBoot架構,還是Web開發呢,介于本人目前的水準有限,還是選用了簡單的Web技術,後端開發引用了maven配置依賴包,Servlet處理及響應用戶端的請求。為了預處理使用者的請求,并且可以對HttpServletResponse實作後處理,使用了過濾器Filter,當然它也可響應使用者的請求。對于前端方面呢,無非還是三劍客:css、html、js以及jsp。為了建立快速動态網頁,使用了Ajax技術,通過在背景與伺服器進行少量資料交換,Ajax可以使網頁實作異步更新,由于本人主要學後端開發,前端知識有限,是以對于前端知識也不能和大家詳細述說,給大家推薦一個網站自行學習:https://www.w3cschool.cn/group/frontend.html。看完上面這一段,大家應該都暈了,下面是一些以上各種技術結合的圖繪,幫助大家了解。
圖1.Web應用的Ajax技術

圖2.本地計算機和遠端伺服器的工作過程
圖3.用戶端與Tomcat的互動
通過以上三圖,相信大家對整個過程的技術應用有了大概的了解,下面就開始闡述項目的具體過程。
三、項目的完成過程
1.包的建構
在完成這個項目之前,當然需要先下載下傳好需要的maven依賴包,接下來需要構思整個項目前端與後端需要哪些包,也就是我們需要在哪一層實作什麼功能,每個包放置哪些類,我的建構如下:
圖4.整個項目的包建構
可以看到我的元件裡有一個Exception包,這是自定義異常,用于統一處理發生的各種異常,Test包裡的類用于測試,Util包裡放置用于連接配接資料庫的類,以及JSON的序列化與反序列化類,實作二進制檔案與java對象的互相轉換。通過序列化實作遠端通信,也就是在網絡傳輸中傳送對象的位元組序列。Servlet包裡放對部落格文章進行操作的類,它們都必須繼承HttpServlet類,才能重寫DoPost或者DoGet方法,用于響應用戶端的請求,我的想法則是實作一個基類,讓它繼承HttpServlet類,其他類通過繼承它,在它的基礎上進行操作,就不用每個都繼承HttpServlet類了,在每個類裡我用的是DoPost或DoGet方法,還可以使用Service方法,它可以替代兩者。
2.Dao層的實作
Dao層是和資料庫相接的一層,在這一層裡,我們完成了資料庫的連接配接,比如配置URL等,和剛開始建立的資料表進行響應,設定占位符,編寫SQL語句等,目的就是為了擷取屬性對應的資料,實作登入時查詢資料庫的功能。在這個項目中,我隻設定了兩張表,文章表(article)和使用者表(user),是以隻有兩個Dao類,實作如下:
圖5.LoginDao的實作
圖6.ArticleDao的實作
3.Servlet層的實作
AbstractBaseServlet類的設計,讓它繼承HttpServlet類,設定請求響應的編碼格式,響應體的資料類型,對象的序列化,定義抽象類process,用于處理請求req、響應resp,這個包裡的其他類都繼承它,就不用再重新設定響應格式和資料類型。它的實作如下:
圖7.AbstractBaseServlet的實作
LoginServlet類的實作,這個類用于實作使用者登入,通過請求擷取使用者名和密碼,再建立Session對象,通過會話功能拿到使用者輸入的使用者名,再調用loginDao和資料庫中已有的資料進行校驗。對登入失敗進行傳回一個業務碼和錯誤語句進行提示。它的實作如下:
圖8.LoginServlet的實作
ArticleAddServlet類的實作,這個類用于發表新文章, 請求的資料類型是application/json,需要使用輸入流擷取 ,再進行反序列化操作擷取對象,實作如下:
圖9.ArticleAddServlet的實作
檢視文章詳情,删除文章,文章清單,修改文章,這幾個操作和新增文章類似,直接展示給大家看吧哈哈哈哈
圖10.ArticledetailServlet的實作
圖11.ArticleDeleteServelet的實作
圖12.ArticleListServlet的實作
圖13.ArticleUpdateServlet的實作
為了豐富文章編輯功能,如圖檔上傳等,我使用了富文本編輯器UEditor,引入了它的依賴,它的Servlet類實作如下:
圖14.UEditorServlet的實作
自定義異常處理如下:
圖15.Exception的實作
四、項目總結
(1)用了過濾器抓取請求與響應會話,富文本編輯器實作了圖檔上傳功能。
(2)對Servlet和Tomcat的工作流程有了一定的了解。
(3)對前端語言html、js、jsp的代碼編寫有一定認識,知道前端的功能實作。
(4)項目的打包和部署,遇到的各種問題也會自己用Fildder抓包解決。
那麼以上呢,就是整個部落格系統項目的實作過程,有不懂的小夥伴cue我喲,随時歡迎(此處自帶一個笑臉)!!!