




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
IIIBlogsystemdesignandimplementationABSTRACTWiththeadventoftheInternettrend,allwalksoflifeareconsideringtheuseoftheInternettopromotethemselvesout,thebestwayistoestablishtheirownInternetsystem,anditsmaintenanceandmanagement.Inthepracticalapplication,theworkingrulesanddevelopmentstepsoftheapplicationsoftware,usingtheSSMframeworktobuildtheblogsystem.Thisgraduationdesignmainlyrealizesthecollectionhumanity,thehighefficiency,theconvenientandsoonmeritinasuitblogsystem,completesthenewsannouncementmanagement,theblogcategorymanagement,thebloginformationmanagement,thesystemmanagementandsoonfunctionmodule.Thesystemcommunicateswiththeserverthroughthebrowsertorealizedatainteractionandchange.Justneedtopassacomputer,movefingertobeabletooperateasystem,realizedatacommunicationmanagement.Thedesignprocessofthewholesystemfullyconsidersthesafety,stabilityandreliabilityofdata,andtheoperationprocessissimple.Throughscientificmanagementandconvenientservice,thesystemimprovesworkefficiencyandreduceserrorsandomissionsindatastorage.ThissystemUSESWindows7astheserver-sideoperatingsystem,Javaasthedevelopmentlanguage,Mysqlasthedatabase,mybatisasthedatabaseconnectiontechnology,Myeclipseasthesystemapplicationdevelopmenttool,andTomcat7.0astheWebserver.Keywords:Datacommunication;Java;Mysqldatabase;Thewebserver
目錄摘要 IABSTRACT II目錄 III第1章緒論 11.1開發背景與意義 11.2開發現狀 11.3論文結構 1第2章主要技術和工具介紹 22.1jsp腳本語言 22.2Mysql數據庫 22.3B/S結構 32.4MVC模式 32.5SSM框架 32.6tomcat服務器概述 3第3章系統分析 43.1可行性分析 43.1.1技術可行性 43.1.2經濟可行性 43.1.3操作可行性 43.2需求分析 43.3業務流程分析 5第4章系統設計 64.1整體架構 64.2系統結構設計 64.3功能模塊設計 74.4系統安全設計 84.5表單字段校驗處理設計 84.6系統維護設計 84.7數據庫設計 94.7.1數據庫設計概述 94.7.2概念設計 94.7.3邏輯設計 94.7.3物理設計 10第5章系統實現 135.1登錄模塊的實現 135.2用戶子系統模塊的實現 155.2.1用戶首頁的實現 155.2.2注冊模塊的實現 155.2.3留言模塊的實現 175.2.4評論模塊的實現 195.2.5博客模塊的實現 215.3管理員子系統模塊的實現 225.3.1用戶管理模塊的實現 225.3.2密碼修改模塊的實現 24第6章系統測試 276.1測試目的與定義 276.2功能測試 276.3測試結果 286.4測試評價 28第7章總結 29致謝 30參考文獻 31第1章緒論1.1開發背景與意義創建此博客系統可以充分地表達自己的思想,通過發表日志展示個人才能,抒發個人情感;網友則可以根據主題發表個人的意見,表達自己的想法,與站長進行思想交流。同時也是為了滿足廣大網友日益增長的網絡服務需求,提供一個更強大的,更方便快捷的交流平臺。為了適應網絡的快速發展,設計開發一個更能滿足網民需求的交流載體,使大家在網上可以提供學習交流的平臺,使人們的生活更加豐富多彩。簡言之,個人博客系統就是以網絡作為載體,可以實時交流模塊簡易迅速便捷地發布自己的心情,在沒有比賽的時候大家可以在站長發表的日志下發表評論,及時有效輕松地與他人進行交流,再集豐富多彩的個性化展示于一體的綜合性平臺[1][2]。1.2開發現狀現今,博客系統已經由06年的風風火火變的平淡,通過各種方式融入了我們的生活,成為了我們表現自己的主要方式。它們大部分是由簡短而且經常更新的帖子構成,所有日志都是按照年份和日期排列,有些類似斑竹的日記。看上去平淡無奇,毫無可炫耀之處,但它可以讓每零成本、零維護地創建自己的網絡媒體,每個都可以隨時把自己的思想火花和靈感更新到博客系統站點上。1.3論文結構第一章是論文的緒論部分,主要介紹了課題的研究背景以及研究目的和意義。第二章研究了博客系統的所采用的開發技術和開發工具。第三章研究了博客系統的需求分析,根據系統的特點,分析系統采用的體系結構及開發方法,以及該系統的運行環境,并分析了業務流程,繪制了業務流程以及數據流程。第四章是對系統的詳細設計進行說明。第五章是系統的具體實現,介紹系統的各個模塊的具體實現。第六章在前幾章的基礎上對系統進行測試和運行。最后對系統進行了認真的總結,以此對未來有一個新的展望。第2章主要技術和工具介紹2.1jsp腳本語言JSP是一種跨平臺的網頁技術,最終實現網頁的動態效果,與ASP技術類似,都是在HTML中混合一些程序的相關代碼,運用語言引擎來執行代碼,JSP能夠實現與用戶的交互,方便用戶的使用[3]。JSP技術具有諸多優點,由于JSP是基于Java的,所以具有了Java的最大優點。可以忽略所使用的平臺,實現僅需一次編寫就能夠到處運行使用,而且還具有很好的安全性和多平臺支持的特性,能夠在任何平臺的任何環境中進行開發,進行系統部署和環境擴展。它也有屬于自己的功能強大的開發工具的支持,并且可以通過很多渠道免費得到,這就為JSP技術的傳播也準備了條件[4]。與微軟公司的ASP技術相比,JSP具有如下優點:(1)開放的技術:JSP技術基于平臺和服務器的相互獨立,技術支持來自廣泛的、專門的、各種工具包,有服務器的組件和數據庫產品開發商提供。相比之下,ASP技術主要依賴MICROSOFT支持[5]。(2)平臺和服務器的獨立性:JSP編寫的代碼可運行在任何符合JAVA語法結構的環境中。這樣JSP就能夠運行在多種WEB服務器上并支持來自多家開發商提供的各種工具包[6]。(3)開放的開發過程,開放的源碼:自1995年以來,SUN用開放過程方法同國際JAVA組織合作開發和修改JAVA技術和規范。(4)JSP標記可擴充性:JSP技術能夠為開發者擴展JSP標記,充分利用與XML兼容的標記技術強大的功能,大大減少對腳本語言的依賴。(5)JSP跨平臺的可重用性:JSP組件(EJB,JavaBean或定制的JSP標記)都是跨平臺可重用的[7][8]。2.2Mysql數據庫MySQL是PHP的最佳搭檔,是一種關系數據庫管理系統[9][10]。MySQL有如下特點:1.MySQL是一種關系數據庫管理系統。2.MySQL是開源的。3.MySQL服務器是一種快速的、可靠的和易于使用的數據庫服務器。4.MySQL可運行在不同的操作系統下,可以支持Windows95/98/NT/2000以及Unix、Linux等多種操作系統平臺。5.MySQL支持大型的數據庫。雖然對于用PHP編寫的網頁來說只要能夠存放上百條以上的記錄數據就足夠了,但MySQL數據庫可以方便地支持上千萬條記錄。6.MySQL服務器工作在客戶/服務器或嵌入系統中[11]。2.3B/S結構B/S模式也就是瀏覽器/服務器模式,它的界面部分是在瀏覽器端展示,而主要工作是由服務器端進行實現的,用戶的請求由瀏覽器端提交給服務器端進行處理,而服務器將處理結果反饋給瀏覽器端,在瀏覽器端界面描畫給用戶查看。采用B/S模式不僅可以避免用戶必須安裝專業軟件才能開發系統或者訪問系統的局限性,而且更加便利[12]。2.4MVC模式MVC是一個框架模式,有三個核心部件,即模型(Model)、視圖(View)和控制器(Controller)。模型表示應用程序核心,視圖表示顯示數據,控制器表示處理輸入。它們各自處理自己的任務,將業務邏輯和數據顯示分離,便于代碼的重用[13]。2.5SSM框架市面上J2EE的開源框架層出不窮,本系統采用近期比較流行的SSM的框架組合,即SpringMVC4.2.3+Spring4.2.3+Mybatis3.4.1的框架組合,、其中Mybatis和Hibernate都是操作數據庫的框架,同時使用是因為Mybatis查詢效率高,而Hibernate由于其ORM特性,對更新修改操作很方便。具體采用技術框架描述如下:?(1)SpringMVC?Spring?MVC是一種實現了MVC設計模式的輕量級Web框架,大大簡化了開發人員的日常Web開發,選擇SpringMVC還有一個原因,就是SpringMVC對Ajax的支持非常好。?(2)Spring?Spring是一個全方位的應用程序框架,一般用Spring來整合整個應用程序,同時它也可以很輕松的用來整合其它各種框架,包括Mybatis、Hibernate?等。?(3)Mybatis?MyBatis是優秀的持久層框架,它可以通過配置xml或注解的方式來定制SQL,然后將接口和Java的實體對象映射成數據庫中的記錄[14]。2.6tomcat服務器概述Tomcat屬于著名的Apache工程組下的一個獨立項目組jakarta,該項目組和Java領導者Sun公司合作共同致力于Servlet/JSP服務技術的開發。雖然目前Tomcat不是性能最好的Servlet/JSP服務器,但是由于它的開發者具有深厚的技術背景,加上該項目本身非常活躍。同時Tomcat屬于開放源代碼項目產品,可以使我們有機會更深入的了解和使用[15]。第3章系統分析3.1可行性分析本次畢業設計基于B/S模式下,運用Java、SSM框架采用的是Mysql數據庫和Myeclipse實現,總體的可行性共分為以下三個方面。3.1.1技術可行性采用的是當下流行的JAVA語言,SSM框架,它具有如下優點。強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數臺服務器,Java顯示了一個巨大的生命力。JSP可以使用成熟的JAVABEANS組件來實現復雜功能。3.1.2經濟可行性博客系統采用的插件都是開源免費的,開發工具,Myeclipse,以及數據庫是Mysql皆是開源免費的,服務器采用tomcat,也是當下流行的開發所用的服務器,因為都是開源免費的,所以在開發前期,開發時用于項目的經費將會大大降低,不會讓開發該軟件在項目啟動期受到經費的影響,所以經濟上還是可行的。盡量用最少的花費去滿足用戶的需求。省下經費用于人工費,以及設備費用。將在無紙化,高效率的道路上越走越遠。3.1.3操作可行性本系統實現功能的操作很簡單,普通電腦的常見配置就可以運行本軟件,并且只要粗通電腦使用的基本常識就可以流暢的使用本軟件。電腦具備連接互聯網的能力,并且可以正常訪問系統,并不需要操作者有什么高超的能力,只需了解業務流程,并且按照專業知識進行正確操作即可,所以博客系統具備操作可行性。3.2需求分析一個系統的開發至關重要的一點就在于對需求的分析。在研究調查的基礎之上,對所開發的系統功能進行的詳細分析總結,從而設計出完整的系統并將其實現。用戶和開發人員的交流分析,使其達到最佳理解程度,使系統功能達到最佳。下面分別簡單闡述一下這幾個功能模塊需求。登錄:登錄功能主要分為用戶登錄用戶子系統和管理員登錄管理子系統兩部分內容,用戶在用戶子系統登錄頁面進行登錄,系統將用戶填寫的登錄信息與用戶已存在的用戶名和密碼進行驗證,驗證通過則登錄成功。用戶注冊:注冊功能是為實現用戶子系統新用戶而設置,新用戶進入新用戶注冊頁面,按系統要求注冊新用戶的賬號和密碼。站內搜索:用戶可以通過標題和類別搜索站內信息。在線留言:增加留言:未登錄系統的游客用戶無法使用留言功能,登錄后的用戶增加留言,系統提示留言成功,并顯示新增的留言;留言回復:系統管理員查詢已有的留言,并回復未回復的留言,系統提示回復成功,并顯示已回復的留言;留言管理:系統管理員查看所有的留言信息,并可以對其刪除,系統提示是否刪除,點擊是則將該條留言刪除。在線評論:評論添加:注冊用戶選擇要評論的信息進行添加評論;評論管理:管理員對用戶的評論信息進行管理,包括刪除、修改。個人資料管理:用戶可以根據自己當前的情況修改個人的信息。博客管理:添加博客信息:管理員添加博客信息;編輯博客信息:管理員修改博客信息;刪除博客信息:管理員刪除博客信息;查詢博客信息:管理員查詢博客信息。3.3業務流程分析業務流程圖是一種物理模型,它描述系統內部各單位與人員之間的業務關系和管理信息的流向。系統的業務流程如下圖所示。圖3-1系統業務流程圖第4章系統設計4.1整體架構系統整體采用分層架構,分層就是要把界面部分、業務邏輯部分、數據庫訪問部分的代碼放在各自獨立的方法或類中編寫,減少代碼之間的聯系,分層設計思想已經成為開發軟件的主流思想。SSM框架是springMVC,spring和mybatis框架的整合,是標準的MVC模式,將整個系統劃分為表現層,controller層,service層,DAO層四層,使用springMVC負責請求的轉發和視圖管理,spring實現業務對象管理,mybatis作為數據對象的持久化引擎。SSM框架的工作原理如下:1.客戶端發送請求到DispacherServlet(分發器)。2.由DispacherServlet控制器查詢HanderMapping,找到處理請求的Controller。3.Controller調用業務邏輯處理后,返回ModelAndView。4.DispacherSerclet查詢視圖解析器,找到ModelAndView指定的視圖。5.視圖負責將結果顯示到客戶端。6.IOC容器可以裝載bean(也就是Java中的類,當然也包括servicedao里面的),有了這個機制,就不用在每次使用這個類的時候為它初始化,很少看到關鍵字new。另外spring的aop,事務管理等等都是我們經常用到的。7.mybatis是對jdbc的封裝,它讓數據庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個類對數據庫所需進行的sql語句映射。在每次與數據庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。其構建圖如下圖所示。圖4-1整體架構4.2系統結構設計本系統使用的角色主要有系統管理員、注冊用戶,本系統分為系統前臺和系統后臺,首先在系統前臺,游客用戶可以經過賬號注冊,管理員審核通過后,用賬號密碼登錄系統前臺,查看站內新聞、系統簡介、博客信息、通知公告、留言信息等欄目信息,進行在線留言和管理員交流,博客搜索、添加評論,在前臺用戶可以通過標題和類別進行前臺信息的搜索,注冊用戶可以登錄個人中心進行個人資料管理、博客信息發布等功能。后臺主要由管理員使用,以管理員的身份在登錄頁面輸入賬號和密碼,經過數據庫身份驗證,驗證成功后登錄系統主頁,可以使用系統用戶管理(系統用戶錄入、刪除、修改、注冊用戶管理)、新聞公告管理(站內新聞管理、通知公告管理)、博客類別管理(博客類別錄入、刪除、修改)、博客信息管理(博客審核、查詢)、系統管理(友情鏈接管理、留言管理、系統簡介設置、系統公告設置)等功能操作。同時管理員可以通過關鍵字搜索可以搜索相應的信息,打印各種詳細信息,導出各類信息列表至excel中。系統的功能結構圖如下圖所示。圖4-2系統功能結構圖4.3功能模塊設計用戶管理模塊:該模塊包括注冊用戶管理和系統用戶管理,系統用戶主要是普通管理員,對用戶信息進行管理,只有注冊用戶才可在該系統上進行相應的操作。用戶對個人信息可進行修改;管理員可對自己的個人信息進行維護,同時可對用戶的密碼信息進行修改,也可刪除系統中的用戶。新聞管理模塊管理員點擊新聞管理菜單,點擊新聞添加子菜單,添加新聞信息,填寫標題、內容、類別、圖片,添加成功后,該新聞信息將顯示給用戶查看。博客管理模塊用戶點擊博客管理菜單,點擊博客添加子菜單,添加博客信息,添加成功后,管理員審核該博客,審核成功后,該博客信息將顯示給用戶查看。留言信息管理模塊用戶登錄系統后,可在留言板進行留言,管理員在后臺可以查看或搜索留言信息,同時可回復或刪除留言信息。評論信息管理模塊評論模塊分為用戶評論和管理員管理評論信息,用戶登錄系統后,選擇想要評論的博客,添加評論,管理員查詢該評論信息,并有權對其管理,包括刪除。打印和導出模塊系統多個頁面可以進行打印功能,包括信息詳細頁,信息列表頁,打印時調用外部打印機,完成打印設置即可打印,在信息列表頁可以將該信息列表導出至excel中,用戶選擇保存excel文件的路徑,既可以下載至本地,在excel中可以自由編輯。4.4系統安全設計博客系統才為了防止被暴力登錄,設置了登錄驗證碼功能。除此之外,為了保證數據的安全性,用戶密碼被加密后存入系統數據庫中,此外數據庫采用的是Mysql相對穩定,數據通過人工備份的方式進行定期備份。系統整體上數據業務邏輯前臺頁面做到了很好的分離,這也是能夠相對保證安全。4.5表單字段校驗處理設計1.出錯信息類型出錯信息類型包括:A未輸入必填項;B應輸入合法字符或數字卻輸入非法字符或數字;C對空數據表進行更改或刪除操作;D向要求唯一值的關鍵字段添加重復值。2.出錯處理對策對于錯誤A,系統要求用戶輸入非空值。對于錯誤B,系統要求用戶輸入合法字符。對于錯誤C,系統提示數據表無記錄可更改或刪除。對于錯誤D,系統要求用戶輸入非重復值。4.6系統維護設計博客系統是個現代化的高度集成的綜合信息系統,系統主要服務對象為用戶,最大化在頁面中提供多的信息,因此在系統維護上,數據量較大,整體的維護設計如下:(1)代碼的維護:部署在云服務器上或本地服務器,通過SVN或FTP保持版本更新迭代。(2)功能增加:功能升級在必要的前提下。(3)數據維護:根據安全性等需求,定期對數據庫進行人工備份。4.7數據庫設計4.7.1數據庫設計概述數據庫的設計在整個系統開發的過程中扮演者關鍵的角色,前期考慮不全面修改數據庫有可能整個系統都要重新開發,所以數據庫的設計不容忽視。數據庫具有完整性和一致性,并且數據庫的響應速度非常的快。在博客系統中,設計數據庫表的各個字段,確定表和表之間的關聯關系,在后期的開發中盡量減少改動數據庫,提高開發效率。4.7.2概念設計數據庫的前期設計最關鍵的步驟是概念結構的設計,是數據模型的概念信息。將需求分析抽象為信息世界的結構,才能更好更準確的使用數據庫管理系統。其設計具有以下兩點優勢:(1)能夠體現事物之間的關聯關,滿足用戶對數據的處理要求。(2)易于理解、更改,用戶的積極參與是數據庫設計成功的關鍵。(3)描述概念模型最有力的工具就是E-R模型,使用E-R圖可以清楚的指導各實體之間的聯系,它有三個關鍵的元素,即實體、屬性和聯系。系統總體ER圖如下圖所示。圖4-3系統總體ER圖4.7.3邏輯設計數據庫的概念模型轉換成邏輯模型又稱邏輯設計,通俗的講就是實體圖轉化成以關系模式、層次模式表現出來的形式。博客系統的數據庫邏輯結構如下。管理員用戶信息(序號、用戶名、密碼、權限、添加時間)普通用戶信息(序號、賬號、密碼、姓名、性別、地區、手機、Email、照片、添加時間)留言信息(序號、賬號、照片、姓名、留言、回復、添加時間)評論信息(序號、數據ID、留言內容、評分、評論人、添加時間)博客信息(序號、標題、類別、首頁圖片、點擊率、添加人、添加時間)4.7.3物理設計數據庫的物理結構設計,就是在數據庫中創建表設置表的屬性和大小等等,建立表和表之間的關聯關系。本系統所使用的部分數據表結構如下。t_allusers表:序號字段名稱字段類型大小允許為空最大長度備注1IDInt4否10
2usernameVarChar50是255
3pwdVarChar50是255
4cxVarChar50是255
5addtimeDateTime8是23
t_bowenguanli表:序號字段名稱字段類型大小允許為空最大長度備注1idInt4否10
2bowenbianhaoVarChar50是255
3biaotiVarChar50是255
4bowenVarChar50是255
5tupianVarChar50是255
6shipinVarChar50是255
7fabushijianVarChar50是255
8faburenVarChar50是255
9isshVarChar10是255
10addtimeVarChar50是255
t_liuyanban表:序號字段名稱字段類型大小允許為空最大長度備注1IDInt4否10
2chengVarChar50是255
3xingbieVarChar2是255
4QQVarChar50是255
5youxiangVarChar50是255
6dianhuaVarChar50是255
7neirongVarChar500是255
8addtimeDateTime8是23
9huifuneirongVarChar500是255
t_pinglun表:序號字段名稱字段類型大小允許為空最大長度備注1idInt4否10
2xinwenIDVarChar50是255
3pinglunneirongVarChar50是255
4pinglunrenVarChar50是255
5pingfenVarChar50是255
6biaoVarChar50是255
7addtimeVarChar50是255
t_xinwentongzhi表:序號字段名稱字段類型大小允許為空最大長度備注1IDInt4否10
2biaotiVarChar300是255
3leibieVarChar50是255
4neirongText16是255
5tianjiarenVarChar50是255
6shouyetupianVarChar50是255
7dianjilvInt4是10
8addtimeDateTime8是23
t_yonghuxinxi表:序號字段名稱字段類型大小允許為空最大長度備注1idInt4否10
2yonghumingVarChar50是255
3mimaVarChar50是255
4chengVarChar50是255
5xingbieVarChar50是255
6touxiangVarChar50是255
7zhenshixingmingVarChar50是255
8shenfenzhengVarChar50是255
9lianxishoujiVarChar50是255
10youxiangVarChar50是255
11jifenVarChar255是255
12gerenjianjieVarChar50是255
第5章系統實現5.1登錄模塊的實現系統的登錄窗口是用戶的入口,用戶只有在登錄成功后才可以進入訪問。通過在登錄提交表單,后臺處理判斷是否為合法用戶,進行頁面跳轉,進入系統中去。登錄合法性判斷過程:用戶輸入賬號和密碼后,系統首先確定輸入輸入數據合法性,其不能為空,然后調用數據庫查找alluser表中數據,進行匹配查看此賬號是否存在和密碼是否正確。在主頁中切入登錄窗口頁面,調用設計好的CSS、JS和IMAGES等文件對頁面進行整體設計,創建表單,在login.jsp頁面發送登錄請求,通過applicationContext.xmll文件來指定所要執行的DispacherServlet分發器,分發器找到控制層下的hsgloginController文件。當系統判定賬號密碼都正確,系統會跳轉到系統的首頁。用戶登錄模塊的IPO如下所示:輸入:用戶名和密碼。處理:1)檢驗用戶是否滿足輸入的要求,即檢驗用戶名和密碼文本框是否為空,若為空,則提示用戶輸入用戶名和密碼。2)檢驗是否存在用戶輸入的用戶名,并且密碼是否正確。3)從數據庫中提取記錄,并儲存在本地的session中(timeout默認=30min)。4)根據用戶名,將其顯示在系統首頁上。5)關閉窗口。輸出:是否成功的信息。登錄流程圖如下所示。圖5-1登錄流程圖系統登錄界面如下所示。圖5-2系統登錄用戶登錄的邏輯代碼如下:@RequestMapping("hsglogin.do") publicStringcheckAllusersLogin(Allusersallusers,HttpSessionsession){ Map<String,Object>u=newHashMap<String,Object>(); System.out.println("name==="+allusers.getUsername()); u.put("username",allusers.getUsername()); //u.put("utype","用戶"); //Md5.MD5HexEncode(user.getPassword()) u.put("pwd",allusers.getPwd()); allusers=allusersService.allusersLogin(u); if(allusers!=null){ session.setAttribute("username",allusers); System.out.println("username="+allusers); session.removeAttribute("suc"); return"redirect:index.do"; }else{ System.out.println("usernafwfwwme="); session.setAttribute("suc","登錄失敗!用戶名或密碼錯誤!"); return"login"; }5.2用戶子系統模塊的實現5.2.1用戶首頁的實現本系統的首頁使用多個jsp頁面組成,通過設置頁面的長度和高度限制顯示區域的大小,整個系統首頁以圖片為背景。在一個jsp頁面中,使用css指定字體大小和字體類型以及其位置,水平排列菜單欄,通過設置超鏈接的樣式去掉下劃線和鼠標移動到該選項時變顏色等等,編寫javascript腳本在導航欄顯示系統的當前日期,首先定義一個數組d存放周一至周日,創建一個獲取時間的對象time后通過該對象的方法獲取年月日,(time.getDay())%7計算得到的結果是數組的下標,通過數組下標就獲取了數組的值,利用字符竄連接把年月日和星期轉換成字符竄,通過document.getElementById("date")獲取標簽后使用innerHTML把該字符竄顯示在jsp頁面。利用<jsp:include></jsp:include>標簽包含設計好的頭部和左邊部分的網頁。如下圖所示為系統的首頁界面。圖5-3系統首頁其中載入前臺頁面的主要代碼如下:<td><%@includefile="qttop.jsp"%></td><td><%@includefile="qtleft.jsp"%></td><td><%@includefile="qtdown.jsp"%></td>5.2.2注冊模塊的實現該功能實現了用戶注冊信息功能,用戶按照頁面上的提示填寫用戶名、密碼、聯系方式、聯系地址等用戶信息,其中填寫的用戶名不能重復即可注冊,如果格式都正確,通過message發送消息,提交action到addYonghuzhuce.do,DispacherServlet分發器找到控制層下的YonghuzhuceController文件,調用里面的addYonghuzhuce()注冊方法,然后調用業務邏輯層的yonghuzhuceService,實現用戶注冊,插入注冊數據,提示注冊成功,并將注冊的信息加入用戶表中,無論是否注冊成功,在注冊頁面上都給出提示信息(如注冊成功)。用戶注冊流程圖如下所示。圖5-4用戶注冊流程圖用戶注冊界面如下圖所示。圖5-5用戶注冊用戶注冊關鍵代碼為:@RequestMapping("addYonghuzhuce.do") publicStringaddYonghuzhuce(HttpServletRequestrequest,Yonghuzhuceyonghuzhuce,HttpSessionsession)throwsSQLException{ Timestamptime=newTimestamp(System.currentTimeMillis()); yonghuzhuce.setAddtime(time.toString().substring(0,19)); yonghuzhuceService.add(yonghuzhuce); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl",request.getHeader("Referer")); //session.setAttribute("backurl","yonghuzhuceList.do"); return"redirect:postback.jsp"; //return"redirect:yonghuzhuceList.do"; }// 處理編輯 @RequestMapping("doUpdateYonghuzhuce.do") publicStringdoUpdateYonghuzhuce(intid,ModelMapmap,Yonghuzhuceyonghuzhuce){ yonghuzhuce=yonghuzhuceService.getById(id); map.put("yonghuzhuce",yonghuzhuce); return"yonghuzhuce_updt"; }5.2.3留言模塊的實現用戶在lyblist查看留言信息,先使用sql語句查詢出所有留言表的數據,然后調用PageManager.getPages(url,4,sql,request),返回一個ArrayList的對象,在for循環里,使用jsp得到每個ArrayList對象的數據,然后放入頁面模板中,用戶點擊我要留言則跳轉至liuyanban_add.jsp,發布留言則發出名為liuyanban_add.jsp的action請求,找到LiuyanbanController控制層的addLiuyanban()方法,然后調用業務邏輯層下的liuyanbanService類,將留言內容插入留言表中。用戶留言流程圖如下所示。圖5-6用戶留言流程圖用戶留言界面如圖所示。圖5-7用戶留言留言管理界面如圖所示。圖5-8留言管理留言添加關鍵代碼為: @RequestMapping("addLiuyanban.do") publicString (HttpServletRequestrequest,Liuyanbanliuyanban,HttpSessionsession){ Timestamptime=newTimestamp(System.currentTimeMillis()); //Usersu=(Users)session.getAttribute("user"); /*if(u==null||u.equals("")){ return"redirect:showIndex.do"; }else{*/ liuyanban.setAddtime(time.toString().substring(0,19)); liuyanbanService.add(liuyanban); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl","lybList.do"); return"redirect:postback.jsp"; //return"redirect:liuyanbanList.do"; /*}*/ }5.2.4評論模塊的實現進入博客頁,先使用sql語句查詢出所有博客表的數據,用戶在博客頁查看博客信息和評論信息,點擊評論,跳轉至評論添加頁面,發布評論則發出名為pinglun_add.jsp的action請求,找到PinglunController控制層的addPinglun()方法,然后調用業務邏輯層下的pinglunService類,將評論內容插入評論表中。用戶評論流程圖如下所示。圖5-9用戶評論流程圖用戶評論界面如圖所示。圖5-10用戶評論評論添加關鍵代碼為:@RequestMapping("addPinglun.do") publicStringaddPinglun(HttpServletRequestrequest,Pinglunpinglun,HttpSessionsession){ Timestamptime=newTimestamp(System.currentTimeMillis()); //Usersu=(Users)session.getAttribute("user"); /*if(u==null||u.equals("")){ return"redirect:showIndex.do"; }else{*/ pinglun.setAddtime(time.toString().substring(0,19)); pinglunService.add(pinglun); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl","hsgpinglun.jsp?ok=1"); return"redirect:postback.jsp"; //return"redirect:pinglunList.do"; /*}*/ }5.2.5博客模塊的實現用戶發布博客,可以進行新增、查看、修改以及刪除等相應的博客管理操作。當點擊"新增博客"的按鈕時,在博客添加界面進行詳細信息的添加操作。當點擊"查看博客"超級鏈接時,會顯示所選的博客的信息,然后點擊"返回"再返回到其主頁面。博客新增界面如圖所示。圖5-15博客新增博客管理界面如圖所示。圖5-16博客管理博客添加關鍵代碼為:@RequestMapping("addXindexinxi.do") publicStringaddXindexinxi(HttpServletRequestrequest,Xindexinxixindexinxi,HttpSessionsession)throwsSQLException{ Timestamptime=newTimestamp(System.currentTimeMillis()); xindexinxi.setAddtime(time.toString().substring(0,19)); xindexinxiService.add(xindexinxi); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl",request.getHeader("Referer")); //session.setAttribute("backurl","xindexinxiList.do"); return"redirect:postback.jsp"; //return"redirect:xindexinxiList.do"; }5.3管理員子系統模塊的實現5.3.1用戶管理模塊的實現用戶在yhzhgl查看用戶信息,先使用sql語句查詢出所有用戶表的數據,然后調用PageManager.getPages(url,4,sql,request),返回一個ArrayList的對象,在for循環里,使用jsp得到每個ArrayList對象的數據,然后放入頁面模板中,添加用戶則將添加的用戶數據封裝在HashMap,中然后調用action包下Action類的insert方法將用戶內容插入用戶表中。系統用戶管理界面如下圖所示。圖5-17系統用戶管理注冊用戶管理界面如下圖所示。圖5-18注冊用戶管理系統用戶管理關鍵代碼為:@RequestMapping("allusersList.do") publicStringgoodList(@RequestParam(value="page",required=false)Stringpage, ModelMapmap,HttpSessionsession,Allusersallusers,Stringusername,Stringpwd,Stringcx){ /*if(session.getAttribute("user")==null){ return"login"; }*/ if(page==null||page.equals("")){ page="1"; } PageBeanpageBean=newPageBean(Integer.parseInt(page),15); Map<String,Object>pmap=newHashMap<String,Object>(); pmap.put("pageno",pageBean.getStart()); pmap.put("pageSize",15); Map<String,Object>bmap=newHashMap<String,Object>(); Map<String,Object>cmap=newHashMap<String,Object>(); /*pmap.put("uid",((Users)session.getAttribute("user")).getId()); bmap.put("uid",((Users)session.getAttribute("user")).getId());*/ if(username==null||username.equals("")){pmap.put("username",null);cmap.put("username",null);}else{pmap.put("username",username);cmap.put("username",username);} if(pwd==null||pwd.equals("")){pmap.put("pwd",null);cmap.put("pwd",null);}else{pmap.put("pwd",pwd);cmap.put("pwd",pwd);} if(cx==null||cx.equals("")){pmap.put("cx",null);cmap.put("cx",null);}else{pmap.put("cx",cx);cmap.put("cx",cx);} inttotal=allusersService.getCount(bmap); pageBean.setTotal(total); List<Allusers>list=allusersService.getByPage(pmap); map.put("page",pageBean); map.put("list",list); session.setAttribute("p",1); return"allusers_list"; }5.3.2密碼修改模塊的實現修改用戶密碼是將用戶的原密碼用新密碼替換,用戶在原密碼輸入正確的情況下,更新用戶信息表中的密碼以及確認密碼字段,密碼修改成功之后頁面跳轉到密碼修改界面,下次登錄使用新密碼。密碼修改流程圖如下所示。圖5-19密碼修改流程圖密碼修改關鍵代碼為:if(ac.equals("uppass")) { Stringolduserpass=request.getParameter("ymm"); Stringuserpass=request.getParameter("xmm1"); Stringcopyuserpass=request.getParameter("xmm2"); HashMapm=dao.getmaps("yonghuming",(String)request.getSession().getAttribute("username"),"yonghuzhuce"); if(!(((String)m.get("mima")).equals(olduserpass))) { request.setAttribute("error",""); go("mod2.jsp",request,response); }else{ //Stringid=(String)user.get("id"); Stringsql="updateyonghuzhucesetmima='"+userpass+"'whereyonghuming='"+(String)request.getSession().getAttribute("username")+"'"; mOper(sql); request.setAttribute("suc",""); go("mod2.jsp",request,response); } }第6章系統測試6.1測試目的與定義在對該系統進行完詳細設計和編碼之后,就要對博客系統的程序進行測試,檢測程序是否運行無誤,反復進行測試和修改,使之最后成為完整的軟件,滿足用戶的需求,實現預期的功能。6.2功能測試功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項檢測,檢查產品是否達到用戶要求的功能。下面列出的測試用例是基于需求分析階段的用例描述而進行的設計。下面將通過表格的形式介紹針對本系統每個功能模塊所進行的功能測試。測試用例表如下所示。表6-1測試用例測試用例方案輸入數據預期結果測試結果用戶注冊使用未存在的用戶名和完整的數據注冊賬號密碼用戶名:zcyh密碼:zcyh確認密碼:zcyh系統提示注冊成功與預期結果一致使用已存在的用戶名和完整的數據注冊賬號密碼用戶名:zcyh密碼:zcyh確認密碼:zcyh系統提示注冊失敗,該用戶名已存在與預期結果一致使用未存在的用戶名和完整的數據注冊賬號密碼,但是確認密碼不一致用戶名:zcyh密碼:zcyh確認密碼:zcyh1系統提示注冊失敗,輸入的兩次密碼不一致與預期結果一致用戶登錄使用已存在的用戶名和相匹配的密碼、驗證碼登錄系統用戶名:zcyh密碼:zcyh驗證碼:6066系統提示登錄成功,并跳轉至系統主頁與預期結果一致使用已存在的用戶名和不匹配的密碼、正確的驗證碼登錄系統用戶名:zcyh密碼:zcyh123驗證碼:6066系統提示登錄失敗,密碼錯誤與預期結果一致使用已存在的用戶名和相匹配的密碼、不正確驗證碼登錄系統用戶名:zcyh密碼:zcyh驗證碼:6061系統提示登錄失敗,驗證碼錯誤與預期結果一致密碼修改用戶登錄系統后,使用原始密碼和兩次一致新密碼修改當前的登錄密碼原始密碼:zcyh新密碼:zcyh1確認新密碼:zcyh1系統提示修改密碼成功與預期結果一致原始密碼輸入錯誤,兩次新密碼一致原始密碼:zcyh2新密碼:zcyh1確認新密碼:zcyh1系統提示修改密碼失敗,原始密碼錯誤與預期結果一致原始密碼輸入正確,兩次新密碼不一致原始密碼:zcyh新密碼:zcyh1確認新密碼:zcyh2系統提示修改密碼失敗,兩次新密碼不一致與預期結果一致在線留言用戶已登錄,打開留言界面,輸入留言標題、內容等信息留言標題:你好留言內容:謝謝系統提示留言成功,并顯示新的留言信息與預期結果一致用戶已登錄,打開留言界面,用戶未輸入留言標題和內容留言標題:留言內容:系統提示留言失敗,內容不能為空與預期結果一致博客管理用戶已登錄,打開博客添加界面,輸入博客標題、內容等信息博客標題:wernziihu博客內容:qerjzfiew系統提示博客添加成功,新博客成功顯示與預期結果一致用戶已登錄,打開博客添加界面,用戶未輸入博客標題和內容博客標題:博客內容:系統提示博客添加失敗與預期結果一致6.3測試結果測試完成后,系統總體上已經完成了預期的所有功能,滿足了任務書中的各項要求,該系統操作簡便,界面簡潔,安全性高,對用戶來說無疑是一款非常實用的博客系統。6.4測試評價軟件基本達到設計要求,功能完整,操作簡便,界面簡潔,安全可靠,錯誤處理正確,且能在出錯時提示出相對應的錯誤種類,然而同時在測試中也發現了軟件的一些不足。比如,該系統在用戶的數據量達到上萬條時,頁面操作會有微小的卡頓,等等一些缺陷,這些需要在軟件之后的進一步修改和維護時進行修改。第7章總結通過博客系統的開發,本人鞏固了之前學過的知識,平時所學到的知識不僅融合了,還獲得了許多其他學科上知識,本人深深體會到學科之間的關聯效應。為了完成畢業設計,做了很多的準備,首先,在數據庫系統的設計過程中,尤其是在數據庫的工作原理、工作特點,對其深刻的討論,與此同時,對于小型站點來說,最好服務器的選擇,其次,利用所學的知識點分析所做的系統,并在此基礎上設計。目前本系統已經上線,正在試運行階段,用戶反饋良好,基本完成用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內蒙古交通職業技術學院《大學體育一》2023-2024學年第二學期期末試卷
- 江蘇省鹽城市鹽城初級中學2024-2025學年初三下學期第二次質量測試化學試題含解析
- 山東政法學院《國際物流學》2023-2024學年第二學期期末試卷
- 上海市黃浦區盧灣中學2025年初三五月調研測試物理試題試卷含解析
- 電動工具在醫療器械制造中的無菌要求考核試卷
- 電視邊緣計算與內容分發優化考核試卷
- 電子智能健康監測設備行業挑戰考核試卷
- 滌綸纖維在農業種植技術與智能溫室中的應用與前景考核試卷
- 核輻射測量在核設施輻射防護性能提升中的研究考核試卷
- 燃油零售業務中的互聯網思維考核試卷
- 附著齦重建在口腔種植修復中的應用探索
- 房屋建造流程過程
- 2025年教科新版七年級英語下冊月考試卷
- 2025年春新滬科版物理八年級下冊課件 第九章 浮力 第四節 物體的浮與沉 第1課時 物體的浮沉條件
- 第二單元“中華傳統文化經典研習”說課稿 2024-2025學年統編版高中語文選擇性必修上冊001
- 中華人民共和國內河交通安全管理條例
- 文化行業非物質文化遺產保護傳承方案
- 2025屆高考政治核心知識梳理提綱
- 【MOOC】光學發展與人類文明-華南師范大學 中國大學慕課MOOC答案
- 《異常子宮出血診斷與治療指南(2022版)》解讀
- 中小學思政課課件
評論
0/150
提交評論