![jsp文章管理系統(tǒng)sqlserver論文_第1頁](http://file4.renrendoc.com/view4/M01/29/31/wKhkGGYq4YmAAZsRAABcoLys2os163.jpg)
![jsp文章管理系統(tǒng)sqlserver論文_第2頁](http://file4.renrendoc.com/view4/M01/29/31/wKhkGGYq4YmAAZsRAABcoLys2os1632.jpg)
![jsp文章管理系統(tǒng)sqlserver論文_第3頁](http://file4.renrendoc.com/view4/M01/29/31/wKhkGGYq4YmAAZsRAABcoLys2os1633.jpg)
![jsp文章管理系統(tǒng)sqlserver論文_第4頁](http://file4.renrendoc.com/view4/M01/29/31/wKhkGGYq4YmAAZsRAABcoLys2os1634.jpg)
![jsp文章管理系統(tǒng)sqlserver論文_第5頁](http://file4.renrendoc.com/view4/M01/29/31/wKhkGGYq4YmAAZsRAABcoLys2os1635.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE基于jsp的文章管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)資料設(shè)計(jì)(論文)題目:文章管理系統(tǒng)基于jsp的文章管理系統(tǒng)PAGEIV摘要伴隨著網(wǎng)絡(luò)的出現(xiàn),網(wǎng)頁逐漸融入人們的生活。快速及時(shí)的新聞瀏覽,五彩繽紛的網(wǎng)上信息,使網(wǎng)絡(luò)與人們的生活息息相關(guān),于是世界上又出現(xiàn)了第三媒體——Internet。它打破了地域限制,真正使信息得以共享,改變了人們的工作和生活方式。文章管理系統(tǒng)是將文章發(fā)布和計(jì)算機(jī)網(wǎng)絡(luò)結(jié)合起來的文章新型管理方式,是信息化社會(huì)的產(chǎn)物。通過網(wǎng)絡(luò),管理者可以發(fā)布文章供會(huì)員瀏覽,可以用使信息傳遞更加快捷和方便,從而擴(kuò)展了信息傳遞領(lǐng)域,實(shí)現(xiàn)了信息傳遞的高效率。針對以上問題,設(shè)計(jì)開發(fā)了文章管理系統(tǒng),本系統(tǒng)前臺主要使用JSP作為開發(fā)語言,后臺使用SqlServer作為數(shù)據(jù)庫管理系統(tǒng),開發(fā)環(huán)境是MyEclipse,服務(wù)器采用tomcat,開發(fā)出的一個(gè)基于Web技術(shù)的B/S結(jié)構(gòu)的基于在線文章提交、在線審核一體的管理系統(tǒng)。關(guān)鍵詞:文章管理,WEB,JSP,B/S結(jié)構(gòu)
ABSTRACTWiththeemergenceofthenetwork,webpagegraduallyintopeople'slife.Timelynewsbrowsing,ariotofcoloursofonlineinformation,theInternetiscloselylinkedwithpeople'slife,andtheworldandtheemergenceofthethirdmedia--Internet.Itbrokethegeographicalrestrictions,sothatinformationcanbeshared,changedthewaypeopleliveandwork.Articlemanagementsystemistobepublishedarticlesandcomputernetworktocombinethenewwayofmanagement,istheproductoftheinformationsociety.Throughthenetwork,managerscanpublisharticlesformemberstobrowse,canmakeinformationmoreefficientandconvenient,therebyexpandingthefieldofinformationtransfer,realizetheinformationtransmissionefficiency.Inviewoftheaboveproblems,designanddevelopmentofarticlemanagementsystem,thissystemmainlyusestheJSPasadevelopmentlanguage,theuseofSqlServerasadatabasemanagementsystem,thedevelopmentenvironmentisMyEclipse,serverusingtomcat,developedaWebtechnologybasedonB/Sstructurebasedononlinearticlesubmission,ReviewOnlineintegratedmanagementsystem.Keywords:articlemanagement,WEB,JSP,B/Sstructure
目錄TOC\o"1-2"\h\z\t"標(biāo)題3,3,標(biāo)題4,4"摘要 IABSTRACT II第一章緒論 11.1課題背景 11.2目的和意義 11.3開發(fā)工具及技術(shù) 11.3.1開發(fā)工具 11.3.2JSP 21.3.3JavaScript 31.4軟硬件需求 3第二章需求分析 52.1需求調(diào)研 52.2可行性分析 52.2.1技術(shù)的可行性 52.2.2經(jīng)濟(jì)的可行性 52.2.3操作可行性 52.2.4法律的可行性 52.3系統(tǒng)用戶用例圖 62.3.1管理員用例圖 62.3.2普通用戶用例圖 62.4功能模塊需求分析 72.5設(shè)計(jì)的基本思想 82.6性能需求 92.6.1系統(tǒng)的安全性 92.6.2數(shù)據(jù)的完整性 92.7界面需求 9第三章系統(tǒng)分析與設(shè)計(jì) 113.1數(shù)據(jù)庫的分析與設(shè)計(jì) 113.1.1數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì) 113.1.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì) 133.1.3數(shù)據(jù)庫的連接原理 153.2中文亂碼問題處理 16第四章系統(tǒng)功能實(shí)現(xiàn) 184.1系統(tǒng)登陸頁面實(shí)現(xiàn) 184.2管理員功能模塊 214.2.1部門信息管理 214.2.2用戶信息管理 254.2.3分類信息管理 294.2.4文章審核管理 324.2.5修改密碼 344.2.6退出系統(tǒng) 354.3用戶功能模塊 354.3.1文章信息管理 354.3.2文章恢復(fù)管理 39第五章系統(tǒng)測試 425.1系統(tǒng)測試目的與意義 425.2測試過程 425.2.1主頁面的登錄模塊測試 425.3其他錯(cuò)誤 43結(jié)論 44參考文獻(xiàn) 45致謝 46基于jsp的文章管理系統(tǒng)第一章緒論1.1課題背景隨著經(jīng)濟(jì)的發(fā)展,社會(huì)的進(jìn)步,計(jì)算機(jī)越來越深入到我們?nèi)粘5墓ぷ鲗W(xué)習(xí)及生活中,成為我們?nèi)粘I钪胁豢扇鄙俚妮o助工具。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。它已經(jīng)深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設(shè)計(jì)、圖形圖像處理、教育培訓(xùn)以及游戲娛樂等。各行各業(yè)的人們無須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。1.2目的和意義文章管理系統(tǒng)用計(jì)算機(jī)管理文章的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前文章管理都是由工作人員人工書寫,調(diào)閱的方式來操作的.現(xiàn)在一般的文章管理都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)智能化管理程序來幫助前臺管理員進(jìn)行更有效的文章管理工作。文章管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。1.3開發(fā)工具及技術(shù)1.3.1開發(fā)工具此次設(shè)計(jì)主要采用MyEclipse加Tomcat后臺服務(wù)器進(jìn)行,設(shè)計(jì)過程中頁面主要使用JSP技術(shù)完成,下面對MyEclipse、Tomcat和SqlServer數(shù)據(jù)庫進(jìn)行簡要介紹。MyEclipseMyEclipse,是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開元產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。Tomcat是一個(gè)小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選??梢赃@樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apahce服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。SqlServerSqlServer使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng);為多種編程語言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑;可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。對于一般的個(gè)人使用者和中小型企業(yè)來說,SqlServer提供的功能已經(jīng)綽綽有余,而且由于SqlServer是開放源碼軟件,因此可以大大降低總體擁有成本。1.3.2JSPJSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端就是一個(gè)HTML文本,因此客戶端只要有瀏覽器能瀏覽。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。JSP技術(shù)的優(yōu)點(diǎn):(1)一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/.net的局限性是顯而易見的。(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺Application進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個(gè)巨大的生命力。(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺之下(5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVABEANS組件來實(shí)現(xiàn)復(fù)雜商務(wù)功能。內(nèi)部對象說明:request客戶端請求,此請求會(huì)包含來自GET/POST請求的參數(shù);response網(wǎng)頁傳回客戶端的響應(yīng);pageContext網(wǎng)頁的屬性是在這里管理;session與請求有關(guān)的會(huì)話;applicationservlet正在執(zhí)行的內(nèi)容;out用來傳送響應(yīng)的輸出流;config代碼片段配置對象;pageJSP網(wǎng)頁本身;exception針對錯(cuò)誤網(wǎng)頁,未捕捉的例外1.3.3JavaScriptJavaScript是一種基于對象和事件驅(qū)動(dòng)并具有相對安全性的客戶端腳本語言。同時(shí)也是一種廣泛用于客戶端Web開發(fā)的腳本語言,常用來給HTML網(wǎng)頁添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ?,通過基于對象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開發(fā)。在HTML基礎(chǔ)上,使用Javascript可以開發(fā)交互式Web網(wǎng)頁。Javascript的出現(xiàn)使得網(wǎng)頁和用戶之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了javascript技術(shù),比如說,檢驗(yàn)用戶輸入數(shù)據(jù)的有效性,是否重復(fù),是否為空等等。1.4軟硬件需求硬件需求:CPU:Pentium以上計(jì)算機(jī)內(nèi)存:512M以上軟件需求:操作系統(tǒng)版本:WindowsXP/vista/Win7開發(fā)工具:MyEclipse6.0.1后臺服務(wù)器:ApacheTomcat6.0開發(fā)語言:Java瀏覽器:IE6.0第二章需求分析2.1需求調(diào)研在項(xiàng)目的開始是需求調(diào)研,經(jīng)過一系列的調(diào)查與談話,了解企業(yè)內(nèi)部知識庫共享管理的流程。根據(jù)實(shí)際情況及調(diào)查結(jié)果,發(fā)現(xiàn)實(shí)現(xiàn)文章管理的網(wǎng)絡(luò)化、信息化是十分有必要的,因此設(shè)計(jì)了文章管理系統(tǒng)。2.2可行性分析開發(fā)任何一個(gè)系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。因此,在每一個(gè)項(xiàng)目開發(fā)之前,都要進(jìn)行可行性分析,可以減少項(xiàng)目的開發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi)。下面就技術(shù)、經(jīng)濟(jì)、操作和法律四個(gè)方面來介紹。2.2.1技術(shù)的可行性本系統(tǒng)開發(fā)工具是MyEclipse和SqlServer數(shù)據(jù)庫,開發(fā)語言是Java,主要使用了J2EE的技術(shù),java是一種面向?qū)ο缶幊陶Z言,簡單易學(xué)而且靈活方便。大三時(shí)就學(xué)習(xí)了java課程,大四期間也系統(tǒng)的了解了J2EE的知識,文章管理系統(tǒng)總體上開發(fā)難度不高,數(shù)據(jù)庫的設(shè)計(jì)和操作是本系統(tǒng)設(shè)計(jì)的核心。在大學(xué)期間學(xué)習(xí)過軟件工程,軟件測試,UML統(tǒng)一建模語言等課程,每個(gè)學(xué)期也會(huì)完成對應(yīng)的課程設(shè)計(jì),具備一定的系統(tǒng)分析、設(shè)計(jì)和測試能力。因此,完成系統(tǒng)實(shí)現(xiàn)在技術(shù)上完全具有可行性。2.2.2經(jīng)濟(jì)的可行性如今是信息化時(shí)代,信息化管理可以使文章管理工作更加系統(tǒng)化、快速化、全面化。這樣可以為企業(yè)帶來較高的工作效益和經(jīng)濟(jì)效益,本系統(tǒng)對計(jì)算機(jī)配置的要求不高,企業(yè)機(jī)房更換下來的低配置電腦都可以完全滿足需要,再者,企業(yè)在管理工作上的高效率和便捷性遠(yuǎn)遠(yuǎn)超過了開發(fā)本系統(tǒng)的成本,所以在經(jīng)濟(jì)上具有完全的可行性。2.2.3操作可行性本系統(tǒng)操作簡單,輸入信息頁面大多數(shù)都是下拉框的選擇形式,在某些頁面,信息可以自動(dòng)生成,無需輸入,時(shí)間的輸入也是用的日歷控件,操作簡便,對操作人員的要求很低,只需對WINDOWS操作熟練,加之對本系統(tǒng)的操作稍加培訓(xùn)即可工作,而且本系統(tǒng)可視性非常好,所以在技術(shù)上不會(huì)有很大難度。2.2.4法律的可行性本文章管理系統(tǒng)是自行開發(fā)的管理系統(tǒng),是很有實(shí)際意義的系統(tǒng),開發(fā)環(huán)境軟件和使用的數(shù)據(jù)庫都是開源代碼,開發(fā)這個(gè)系統(tǒng)不同于開發(fā)普通的系統(tǒng)軟件,不存在侵權(quán)等問題,即法律上是可行的。綜上所述,開發(fā)一個(gè)文章管理系統(tǒng)與原有的文章管理方式相比具有速度更快,操作更準(zhǔn)確,節(jié)省開支等有利之處,因此,建立一個(gè)文章管理系統(tǒng)是必要可行的。2.3系統(tǒng)用戶用例圖2.3.1管理員用例圖管理員是系統(tǒng)的核心用戶,涉及到四大功能模塊,管理員對系統(tǒng)的所有用戶有著操作的權(quán)限。圖2.1管理員用例圖2.3.2普通用戶用例圖普通用戶對自己發(fā)布的文章有著操作權(quán)限。圖2.2普通用戶用例圖2.4功能模塊需求分析本系統(tǒng)最大的特點(diǎn)是使用操作簡單、友好的提示信息。本系統(tǒng)將實(shí)現(xiàn)以下基本功能:(1)系統(tǒng)具有簡潔大方的頁面,使用簡便,友好的錯(cuò)誤操作提示(2)管理員用戶具有部門信息管理、用戶信息管理、文章分類管理、文章審核等功能(3)普通用戶具有文章管理及已刪除文章恢復(fù)功能(4)具有較強(qiáng)的安全性,避免用戶的惡意操作管理員功能模塊圖說明:(1)部門信息管理模塊:在該模塊中定義了部門信息的管理,其功能包括部門信息的錄入、查詢、修改、刪除等操作。(2)用戶信息管理模塊:在該模塊中定義了用戶信息的管理,其功能包括用戶信息的錄入、查詢、修改、刪除等操作。(3)分類信息管理模塊:在該模塊中定義了文章分類信息的管理,其功能包括分類信息的錄入、查詢、修改、刪除等操作。(4)文章審核模塊:在該模塊中定義了文章審核的管理,其功能包括文章信息的瀏覽、審核等操作。圖2.3管理員用戶功能模塊圖員工功能模塊圖說明:。(1)個(gè)人資料查看模塊:用戶通過該模塊查看個(gè)人資料。(2)文章管理模塊:在該模塊中定義了對文章信息的管理,其功能包括文章信息錄入、查詢、修改、刪除等操作。(3)回收箱管理模塊:在該模塊中定義了對已刪除文章的管理,其功能包括已刪除文章的瀏覽、恢復(fù)。圖2.4員工用戶功能模塊圖2.5設(shè)計(jì)的基本思想設(shè)計(jì)思想遵循以下幾點(diǎn):1.采用B/S模式進(jìn)行開發(fā),其優(yōu)點(diǎn)是后臺與前臺處理層次分明,而且符合眾多已經(jīng)習(xí)慣網(wǎng)頁方式的用戶。2.采用面向?qū)ο蟮拈_發(fā)與設(shè)計(jì)理念。運(yùn)用面向?qū)ο蠹夹g(shù)的前提是對整體系統(tǒng)的高度和準(zhǔn)確抽象,通過它可以保證系統(tǒng)良好的框架,進(jìn)而帶來產(chǎn)品較強(qiáng)的穩(wěn)定性和運(yùn)行效率。3.采用模塊化設(shè)計(jì)。模塊化設(shè)計(jì)要求將整個(gè)系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡化設(shè)計(jì)和實(shí)現(xiàn)過程。4.簡單方便的系統(tǒng)界面。設(shè)計(jì)簡單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。5.速度優(yōu)先原則。由于此工具最重要的評測標(biāo)準(zhǔn)就是速度,因此在設(shè)計(jì)過程中,具體過程盡量做到資源占用少,速度快。6.設(shè)計(jì)既要突出重點(diǎn),又要細(xì)致周到。要符合設(shè)計(jì)需求,在有可能改進(jìn)的地方進(jìn)行擴(kuò)充,使系統(tǒng)更適應(yīng)用戶的需要。2.6性能需求2.6.1系統(tǒng)的安全性文章管理系統(tǒng)在管理權(quán)限上要嚴(yán)格進(jìn)行控制,具體要求如下:想登錄文章管理系統(tǒng)進(jìn)行操作,必須有操作權(quán)限,沒有權(quán)限的用戶不能通過任何方式登錄系統(tǒng)查看系統(tǒng)的任何信息和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。2.6.2數(shù)據(jù)的完整性1.各種記錄信息的完整性,信息記錄內(nèi)容不能為空2.各種數(shù)據(jù)間相互聯(lián)系的正確性3.相同數(shù)據(jù)在不同記錄中的一致性2.7界面需求界面設(shè)計(jì)目前已經(jīng)成為評價(jià)軟件質(zhì)量的一條重要指標(biāo),一個(gè)好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,JSP技術(shù)是用JAVA語言作為腳本語言的,JSP網(wǎng)頁為整個(gè)服務(wù)器端的JAVA庫單元提供了一個(gè)接口來服務(wù)于HTTP的應(yīng)用程序。創(chuàng)建動(dòng)態(tài)頁面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機(jī)對話的界面格式等。1.輸出設(shè)計(jì)輸出是由計(jì)算機(jī)對輸入的原始信息進(jìn)行加工處理,形成高質(zhì)量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設(shè)計(jì)的主要職責(zé)和目標(biāo)。系統(tǒng)設(shè)計(jì)的過程正好和實(shí)施過程相反,并不是從輸入設(shè)計(jì)到輸出設(shè)計(jì),而是從輸出設(shè)計(jì)到輸入設(shè)計(jì),這是因?yàn)檩敵霰砀裰苯优c使用者相聯(lián)系,設(shè)計(jì)的出發(fā)點(diǎn)應(yīng)當(dāng)是保證輸出表格方便地為使用者服務(wù),正確及時(shí)反映和組成用于各部門的有用信息。輸出設(shè)計(jì)的原則是考慮既要全面反映不同管理層的各項(xiàng)需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。2.輸入設(shè)計(jì)輸入數(shù)據(jù)的收集和錄入是比較費(fèi)事的,需要大量的人力和一定設(shè)備,并且容易出錯(cuò)。如果輸入系統(tǒng)的數(shù)據(jù)有錯(cuò)誤,則處理后的輸出將擴(kuò)大這些錯(cuò)誤,因此輸入數(shù)據(jù)的正確性對于整個(gè)系統(tǒng)質(zhì)量的好壞是具有決定性意義的。輸入設(shè)計(jì)的原則有如下幾點(diǎn):1)輸入量應(yīng)保持在能滿足處理要求的最低限度。設(shè)計(jì)中可采用設(shè)置字段初值,下拉式數(shù)據(jù)窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯(cuò)誤率就越少,數(shù)據(jù)準(zhǔn)備時(shí)間也減少。2)輸入的準(zhǔn)備及輸入過程應(yīng)盡量容易進(jìn)行,從而減少錯(cuò)誤的發(fā)生。3)應(yīng)盡量早對輸入數(shù)據(jù)進(jìn)行檢查(盡量接近原數(shù)據(jù)發(fā)生點(diǎn)),以便使錯(cuò)誤及時(shí)得到更正。4)輸入數(shù)據(jù)盡早地用其處理所需的形式被記錄,以避免數(shù)據(jù)由一種介質(zhì)轉(zhuǎn)移到另一種介質(zhì)時(shí)需要轉(zhuǎn)錄而可能發(fā)生的錯(cuò)誤第三章系統(tǒng)分析與設(shè)計(jì)3.1數(shù)據(jù)庫的分析與設(shè)計(jì)計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫為核心,在數(shù)據(jù)庫管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。數(shù)據(jù)庫已經(jīng)成為現(xiàn)在信息系統(tǒng)等計(jì)算機(jī)系統(tǒng)的基礎(chǔ)與核心部分。數(shù)據(jù)庫設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的質(zhì)量和效率。數(shù)據(jù)庫的設(shè)計(jì)一般經(jīng)過規(guī)劃。需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)5個(gè)步驟。3.1.1數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)概念設(shè)計(jì)是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個(gè)系統(tǒng)的數(shù)據(jù)庫概念結(jié)構(gòu),從用戶的角度進(jìn)行視圖設(shè)計(jì),然后將視圖集成,最后對集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)采用實(shí)體—聯(lián)系(E-R)模型設(shè)計(jì)方法。E-R模型法的組成元素有:實(shí)體、屬性、聯(lián)系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對實(shí)體特性的描述。概念設(shè)計(jì)的目標(biāo)是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式是獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨(dú)立于支持?jǐn)?shù)據(jù)庫的DBMS,不依賴于計(jì)算機(jī)系統(tǒng)的,根據(jù)以上對數(shù)據(jù)庫的需求分析,并結(jié)合系統(tǒng)概念模型的特點(diǎn)及建立方法,建立E-R模型圖。實(shí)體間關(guān)系屬性實(shí)體實(shí)體間關(guān)系屬性實(shí)體(1)部門信息實(shí)體E-R圖如圖3.1所示:圖3.1部門信息實(shí)體E-R圖(2)員工信息實(shí)體E-R圖如圖3.2所示:圖3.2員工信息實(shí)體E-R圖(3)分類信息實(shí)體E-R圖如圖3.3所示圖3.3分類信息實(shí)體E-R圖(4)文章信息E-R圖如圖3.4所示圖3.4文章信息實(shí)體E-R圖(5)管理員信息E-R圖如圖3.5所示圖3.5管理員信息實(shí)體E-R圖3.1.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)我們知道,數(shù)據(jù)庫概念模型獨(dú)立于任何特定的數(shù)據(jù)庫管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫模型轉(zhuǎn)換應(yīng)遵循下列原則:*每一個(gè)實(shí)體要轉(zhuǎn)換成一個(gè)關(guān)系*所有的主鍵必須定義非空(NOTNULL)*對于二元聯(lián)系應(yīng)按照一對多、弱對實(shí)、一對一、多對多等聯(lián)系來定義外鍵。根據(jù)E-R模型,文章管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說明。(1)部門信息表主要是記錄了部門的基本信息,表結(jié)構(gòu)如圖3.1所示。表3.1部門表(t_organization)列名數(shù)據(jù)類型長度允許空是否主鍵說明idint4否是部門IDnamevarchar50否否部門名稱descriptionvarchar50否否部門描述p_idInt5否否父部門ID(2)員工信息表主要是記錄了員工基本信息。表結(jié)構(gòu)如表3.2所示。表3.2員工信息表(t_user)列名數(shù)據(jù)類型長度允許空是否主鍵說明idint4否是編號org_idint4否是所屬部門namevarchar50否否姓名loginnamevarchar50否否登錄名loginpwvarchar50否否登錄密碼(3)分類信息表主要是記錄了文章分類的基本信息,表結(jié)構(gòu)如圖3.3所示。表3.3分類信息表(t_fenlei)列名數(shù)據(jù)類型長度允許空是否主鍵說明idint4否是編號mingchengvarchar50否否分類名稱(4)文章信息表主要是記錄了文章的基本信息,表結(jié)構(gòu)如圖3.4所示。表3.4文章信息表(t_wenzhang)列名數(shù)據(jù)類型長度允許空是否主鍵說明idint4否是編號user_idint4否否所屬用戶fenlei_idint4否否所屬分類biaotivarchar50否否標(biāo)題neirongvarchar50否否內(nèi)容guanjianzivarchar50否否關(guān)鍵字yijianvarchar50否否審核意見ztint4否否當(dāng)前狀態(tài)(5)管理員信息表主要記錄的管理員的賬號信息,包括用戶名和密碼,表結(jié)構(gòu)如表3.5所示。表3.5管理員信息表(t_admin)列名數(shù)據(jù)類型長度允許空是否主鍵說明userIdint4否是編號userNamevarchar50否否用戶名userPwvarchar50否否密碼3.1.3數(shù)據(jù)庫的連接原理采用JDBC連接數(shù)據(jù)庫的方式,只需在工程中導(dǎo)入對應(yīng)數(shù)據(jù)庫的jar包,就可以方便的對數(shù)據(jù)庫進(jìn)行連接,在程序中,用Class.forName()方法來加載驅(qū)動(dòng)程序,在用DriverManager的getConnection()方法就可以創(chuàng)建一個(gè)數(shù)據(jù)庫連接。程序采用的是DAO模式來操作數(shù)據(jù)庫,DAO(DataAccessObject,數(shù)據(jù)訪問對象),是Java編程中的一種經(jīng)典模式,已被廣泛應(yīng)用,也是J2EE架構(gòu)中持久層框架的基礎(chǔ)知識,基于分層次式的軟件架構(gòu)來實(shí)現(xiàn)對數(shù)據(jù)庫的訪問操作。DAO模式的主要思想就是從抽象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的含義就是編寫應(yīng)用程序的程序員不必關(guān)心數(shù)據(jù)庫的物理位置,已經(jīng)是何種數(shù)據(jù)庫,只需使用封裝數(shù)據(jù)庫中表示記錄的數(shù)據(jù)對象即可。其思想如圖3.10所示:封裝使用封裝使用DataSourceDataAccessObjectBusinessObjectDataSourceDataAccessObjectBusinessObject創(chuàng)建/使用獲取/修改創(chuàng)建/使用獲取/修改DataTransferObjectDataTransferObject圖3.10DAO模式類圖圖中BussinessObject是業(yè)務(wù)對象,是使用DAO模式的客戶端;DataTransferObject數(shù)據(jù)傳輸對象,在應(yīng)用程序不同層次之間傳輸對象,在一個(gè)分布式應(yīng)用程序中,通??梢蕴岣哒淼男阅埽籇ataObjectAcces數(shù)據(jù)輸入/輸出對象封裝了對數(shù)據(jù)源的一些基本操作;DataSource指的是數(shù)據(jù)源??梢詮膱D中看出,DAO模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)羅即將,是的編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫的操作,主要使用DBContent的對象來接一個(gè)數(shù)據(jù)庫(建立一個(gè)類DBContent),代碼如下:publicDBContent(){ StringCLASSFORNAME="com.SqlServer.jdbc.Driver";//連接數(shù)據(jù)庫的驅(qū)動(dòng) Stringurl="jdbc:SqlServer://localhost:3306/gy1"; Stringuser="root";//連接數(shù)據(jù)庫的用戶名 Stringpassword="root";//連接數(shù)據(jù)庫的密碼 try{ Class.forName(CLASSFORNAME); con=DriverManager.getConnection(url,user,password);//加載數(shù)據(jù)庫的驅(qū)動(dòng) stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); } catch(Exceptionex){ ex.printStackTrace(); } } 在程序需要連接數(shù)據(jù)庫的地方,只需要生成一個(gè)DBConnet的對象,就可以對數(shù)據(jù)庫進(jìn)行連接并操作。3.2中文亂碼問題處理在程序中經(jīng)常會(huì)遇到中文亂碼的情況,如果手動(dòng)的在servlet和jsp頁面進(jìn)行設(shè)置,相當(dāng)麻煩。因此,在程序的開始就寫了一個(gè)過濾器SetCharacterEncodingFilter。在web.xml中配置:<filter><filter-name>SetCharacterEncodingFilter</filter-name><filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter><filter-mapping><filter-name>SetCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//*表示工程下所有的頁面都會(huì)有此過濾器的處理</filter-mapping>對應(yīng)的SetCharacterEncodingFilter.java文件中的重要代碼,在初始化init()方法中定義:publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}在工具包util包中同樣定義了DataFormate類來處理字符轉(zhuǎn)換:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串轉(zhuǎn)換成uincode編碼*/if(gbStr==null){gbStr="";}try{byte[]tempByte=gbStr.getBytes("GB2312");uniStr=newString(tempByte,"ISO8859_1");}catch(Exceptionex){}returnuniStr;}/*把字符串轉(zhuǎn)換成Utf8編碼*/publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(c>=0&&c<=255){sb.append(c);}else{byte[]b;try{b=Character.toString(c).getBytes("utf-8");}catch(Exceptionex){System.out.println(ex);b=newbyte[0];}for(intj=0;j<b.length;j++){intk=b[j];if(k<0){k+=256;}sb.append("%"+Integer.toHexString(k).toUpperCase());}} returnsb.toString();}
第四章系統(tǒng)功能實(shí)現(xiàn)在管理信息系統(tǒng)的生命周期中,經(jīng)過了需求分析、系統(tǒng)設(shè)計(jì)等階段之后,便開始了系統(tǒng)實(shí)施階段。在系統(tǒng)分析和設(shè)計(jì)階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計(jì)上,系統(tǒng)實(shí)施階段要繼承此前面各個(gè)階段的工作成果,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)現(xiàn),因此系統(tǒng)實(shí)施的成果是系統(tǒng)分析和設(shè)計(jì)階段的結(jié)晶。4.1系統(tǒng)登陸頁面實(shí)現(xiàn)1.描述:為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中,用戶需要正確的賬號和密碼登錄本系統(tǒng)。2.程序運(yùn)行效果圖如圖4.1所示:圖4.1系統(tǒng)登陸頁面設(shè)計(jì)3.在登陸頁面輸入用戶名和密碼以,點(diǎn)擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會(huì)對用戶名,密碼,驗(yàn)證碼進(jìn)行判斷,驗(yàn)證通過進(jìn)入對應(yīng)的頁面,loginservice關(guān)鍵代碼: publicStringlogin(StringuserName,StringuserPw,intuserType) { Stringresult="no"; if(userType==0)//系統(tǒng)管理員登陸 { Stringsql="select*fromt_adminwhereuserName=?anduserPw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); try { ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdminadmin=newTAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",0); session.setAttribute("admin",admin); } rs.close(); } catch(SQLExceptione) { System.out.println("登錄失??!"); e.printStackTrace(); } finally { mydb.closed(); } } if(userType==1) { Stringsql="select*fromt_userwheredel='no'andloginname=?andloginpw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); try { ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TUseruser=newTUser(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setLoginname(rs.getString("loginname")); user.setLoginpw(rs.getString("loginpw")); user.setOrg_id(rs.getInt("org_id")); user.setOrganization(liuService.getOrg(rs.getInt("org_id"))); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",1); session.setAttribute("user",user); } rs.close(); } catch(SQLExceptione) { System.out.println("登錄失??!"); e.printStackTrace(); } finally { mydb.closed(); } } returnresult; } 4.2管理員功能模塊1.描述:系統(tǒng)主頁面:左方頁面展示了管理員可操作的四大功能,進(jìn)入相關(guān)的管理頁面可以鏈接到子菜單,并且高亮顯示,每個(gè)管理模塊下面都有相應(yīng)的子菜單。2.程序運(yùn)行效果圖如圖4.2所示:圖4.2管理員主頁面在每個(gè)jsp頁面將會(huì)對相關(guān)用戶進(jìn)行攔截操作,這樣可以提高安全性,防止用戶不經(jīng)過登陸頁面而進(jìn)入任何子菜單頁面:if(session.getAttribute("user")==null){out.print("<script>alert('請先登錄!');window.open('../index.jsp','_self')</script>"); }4.2.1部門信息管理部門信息錄入1.描述:管理員輸入部門相關(guān)正確信息后點(diǎn)擊錄入按鈕,如果是沒有輸入完整的部門經(jīng)理信息,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗(yàn)輸入數(shù)據(jù)的方式。2.程序效果圖如下圖4.3所示:圖4.3部門信息錄入部門信息管理1.描述:管理員點(diǎn)擊左側(cè)的菜單“部門管理”,頁面跳轉(zhuǎn)到部門管理界面,調(diào)用后臺的servlet類查詢所有部門信息。2.程序效果圖如下圖4.4所示圖4.4部門信息管理部門管理關(guān)鍵代碼: publicvoidtoOrgEdit(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { TOrganizationorganization=newTOrganization(); intid=Integer.parseInt(req.getParameter("orgId")); Stringsql="select*fromt_organizationwhereid=?"; Object[]params={id}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { organization.setId(rs.getInt("id")); organization.setName(rs.getString("name")); organization.setDescription(rs.getString("description")); organization.setP_id(rs.getInt("p_id")); organization.setDel(rs.getString("del")); organization.setParenOrganization(liuService.getOrg(rs.getInt("p_id"))); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("org",organization); req.getRequestDispatcher("admin/org/editOrg.jsp").forward(req,res); } publicvoidorgAdd(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { Stringname=req.getParameter("name"); Stringdescription=req.getParameter("description"); intp_id=Integer.parseInt(req.getParameter("p_id")); Stringdel="no"; Stringsql="insertintot_organizationvalues(?,?,?,?)"; Object[]params={name,description,p_id,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功"); req.getRequestDispatcher("common/msg.jsp").forward(req,res); } publicvoidorgMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListorgList=newArrayList(); Stringsql="select*fromt_organizationwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TOrganizationorganization=newTOrganization(); organization.setId(rs.getInt("id")); organization.setName(rs.getString("name")); organization.setDescription(rs.getString("description")); organization.setP_id(rs.getInt("p_id")); organization.setDel(rs.getString("del")); organization.setParenOrganization(liuService.getOrg(rs.getInt("p_id"))); orgList.add(organization); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("orgList",orgList); req.getRequestDispatcher("admin/org/orgMana.jsp").forward(req,res); } publicvoidorgEdit(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { intid=Integer.parseInt(req.getParameter("id")); Stringname=req.getParameter("name"); Stringdescription=req.getParameter("description"); Stringsql="updatet_organizationsetname=?,description=?whereid=?"; Object[]params={name,description,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功"); req.getRequestDispatcher("common/msg.jsp").forward(req,res); } publicvoidorgDel(HttpServletRequestreq,HttpServletResponseres) { intorgId=Integer.parseInt(req.getParameter("orgId")); Stringsql="updatet_organizationsetdel='yes'whereid="+orgId; Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","org?type=orgMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }部門信息修改1.描述:先是點(diǎn)擊部門管理,頁面跳轉(zhuǎn)到部門管理界面,瀏覽所有的部門信息,點(diǎn)擊要修改的部門,彈出的部門修改對話框,修改部門信息。2.程序效果圖如下圖4.5所示圖4.5部門信息刪除部門信息刪除1.描述:先是點(diǎn)擊部門管理,頁面跳轉(zhuǎn)到部門管理界面,瀏覽所有的部門信息,點(diǎn)擊要?jiǎng)h除的部門,彈出的確定對話框,即可刪除該部門信息。2.程序效果圖如下圖4.6所示圖4.6部門信息刪除4.2.2用戶信息管理用戶信息錄入1.描述:管理員輸入用戶相關(guān)正確信息后點(diǎn)擊錄入按鈕,如果是沒有輸入完整的用戶信息,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗(yàn)輸入數(shù)據(jù)的方式。2.程序效果圖如下圖4.7所示:圖4.7用戶信息錄入用戶信息管理1.描述:管理員點(diǎn)擊左側(cè)的菜單“用戶信息管理”,頁面跳轉(zhuǎn)到學(xué)生信息管理界面,調(diào)用后臺的action類查詢出所有的用戶信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出用戶信息。2.程序效果圖如下圖4.8所示圖4.8用戶信息管理頁面用戶信息管理關(guān)鍵代碼: publicvoiduserAdd(HttpServletRequestreq,HttpServletResponseres) { intorg_id=Integer.parseInt(req.getParameter("org_id")); Stringname=req.getParameter("name"); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringdel="no"; Stringsql="insertintot_uservalues(?,?,?,?,?)"; Object[]params={org_id,name,loginname,loginpw,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","user?type=userMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoiduserDel(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringdel="yes"; Stringsql="updatet_usersetdel=?whereid=?"; Object[]params={del,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","user?type=userMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoiduserMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListuserList=newArrayList(); Stringsql="select*fromt_userwheredel='no'orderbyorg_iddesc"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TUseruser=newTUser(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setLoginname(rs.getString("loginname")); user.setLoginpw(rs.getString("loginpw")); user.setOrg_id(rs.getInt("org_id")); user.setOrganization(liuService.getOrg(rs.getInt("org_id"))); userList.add(user); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("userList",userList); req.getRequestDispatcher("admin/user/userMana.jsp").forward(req,res); } publicvoiduserEdit(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); intorg_id=Integer.parseInt(req.getParameter("org_id")); Stringname=req.getParameter("name"); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringsql="updatet_usersetorg_id=?,name=?,loginname=?,loginpw=?whereid=?"; Object[]params={org_id,name,loginname,loginpw,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","user?type=userMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }用戶信息修改1.描述:先是點(diǎn)擊用戶信息管理,頁面跳轉(zhuǎn)到用戶信息管理界面,瀏覽所有的用戶信息,點(diǎn)擊要修改的用戶信息,彈出修改界面,即可修改該用戶信息。2.程序效果圖如下圖4.9所示圖4.9用戶信息修改頁面用戶信息刪除1.描述:先是點(diǎn)擊用戶信息管理,頁面跳轉(zhuǎn)到用戶信息管理界面,瀏覽所有的用戶信息,點(diǎn)擊要?jiǎng)h除的用戶信息,點(diǎn)擊彈出的確定對話框,即可刪除該用戶信息。2.程序效果圖如下圖4.10所示圖4.10用戶信息刪除頁面4.2.3分類信息管理分類信息錄入1.描述:管理員輸入分類相關(guān)正確信息后點(diǎn)擊錄入按鈕,如果是沒有輸入完整的分類信息,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗(yàn)輸入數(shù)據(jù)的方式。2.程序效果圖如下圖4.11所示:圖4.11分類信息錄入分類信息管理1.描述:管理員點(diǎn)擊左側(cè)的菜單“分類信息管理”,頁面跳轉(zhuǎn)到分類信息管理界面,調(diào)用后臺的action類查詢出所有的分類信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出分類信息。2.程序效果圖如下圖4.12所示圖4.12分類信息管理頁面分類信息管理關(guān)鍵代碼: publicvoidfenleiMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListfenleiList=newArrayList(); Stringsql="selectid,mingchengfromt_fenleiwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TFenleifenlei=newTFenlei(); fenlei.setId(rs.getInt("id")); fenlei.setMingcheng(rs.getString("mingcheng")); fenleiList.add(fenlei); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("fenleiList",fenleiList); req.getRequestDispatcher("/admin/fenlei/fenleiMana.jsp").forward(req,res); } publicvoidfenleiAdd(HttpServletRequestreq,HttpServletResponseres) { Stringmingcheng=req.getParameter("mingcheng"); Stringdel="no"; Stringsql="insertintot_fenleivalues(?,?,?)"; Object[]params={mingcheng,0,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","fenlei?type=fenleiMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidfenleiEdit(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringmingcheng=req.getParameter("mingcheng"); Stringsql="updatet_fenleisetmingcheng=?whereid=?"; Object[]params={mingcheng,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","fenlei?type=fenleiMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidfenleiDel(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringsql="updatet_fenleisetdel='yes'whereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","fenlei?type=fenleiMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }分類信息修改1.描述:先是點(diǎn)擊分類信息管理,頁面跳轉(zhuǎn)到分類信息管理界面,瀏覽所有的分類信息,點(diǎn)擊要修改的分類信息,點(diǎn)擊彈出修改界面,即可修改該分類信息。2.程序效果圖如下圖4.13所示圖4.13分類信息修改頁面分類信息刪除1.描述:先是點(diǎn)擊分類信息管理,頁面跳轉(zhuǎn)到分類信息管理界面,瀏覽所有的分類信息,點(diǎn)擊要?jiǎng)h除的分類信息,點(diǎn)擊彈出的確定對話框,即可刪除該分類信息。2.程序效果圖如下圖4.14所示圖4.14分類信息刪除頁面4.2.4文章審核管理1.描述:管理員點(diǎn)擊左側(cè)的菜單“文章審核管理”,頁面跳轉(zhuǎn)到文章審核管理界面,調(diào)用后臺的action類查詢出所有的待審核的文章信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的jsp,顯示待審核的文章信息。點(diǎn)擊要審核的文章信息,點(diǎn)擊彈出審核界面,填寫審核意見,完成文章審核操作。2.程序效果圖如下圖4.15、4.16所示圖4.15待審核文章瀏覽頁面圖4.16文章審核頁面文章審核管理關(guān)鍵代碼: publicvoidshenheList(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListwenzhangList=newArrayList(); Stringsql="selectta.*,tb.mingcheng,fromt_wenzhangta,t_fenleitb,t_usertc"+ "whereta.fenlei_id=tb.idandta.user_id=tc.idandta.del='no'andta.zt=0"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TWenzhangwenzhang=newTWenzhang(); wenzhang.setId(rs.getInt("id")); wenzhang.setFenlei_id(rs.getInt("fenlei_id")); wenzhang.setBiaoti(rs.getString("biaoti")); wenzhang.setGuanjianzi(rs.getString("guanjianzi")); wenzhang.setNeirong(rs.getString("neirong")); wenzhang.setFlmc(rs.getString("mingcheng")); wenzhang.setYhxm(rs.getString("name")); wenzhangList.add(wenzhang); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("wenzhangList",wenzhangList); req.getRequestDispatcher("admin/wenzhang/shenheMana.jsp").forward(req,res); } publicvoidshenheUpd(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); intzt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版九年級數(shù)學(xué)上冊21.3.1《一元二次方程的根與系數(shù)的關(guān)系》聽評課記錄
- 2025年便攜式X?zé)晒夤庾V分析儀合作協(xié)議書
- 七年級第二學(xué)期工作總結(jié)
- 蘇科版數(shù)學(xué)七年級下冊8.1.1《同底數(shù)冪的乘法》聽評課記錄
- 公司職工食堂承包協(xié)議書范本
- 裝飾裝修勞務(wù)分包合同范本
- 2025年度新能源電站租賃誠意金合同
- 2025年度裝修施工現(xiàn)場安全監(jiān)督合同
- 二零二五年度航空航天設(shè)備采購合同知識產(chǎn)權(quán)保護(hù)及實(shí)施約定
- 2025年度航空航天零部件購買協(xié)議范文匯編
- 2024-2025學(xué)年第二學(xué)期學(xué)校全面工作計(jì)劃
- 2025年護(hù)士資格考試必考基礎(chǔ)知識復(fù)習(xí)題庫及答案(共250題)
- 2025年人教版PEP二年級英語上冊階段測試試卷
- 煙草業(yè)產(chǎn)業(yè)鏈協(xié)同創(chuàng)新模式-洞察分析
- 施工現(xiàn)場臨時(shí)水電布置操作手冊(永臨結(jié)合做法示意圖)
- 2024年廣西事業(yè)單位D類招聘考試真題
- 公文寫作與常見病例分析
- 2025年國家電投集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年中國南方航空招聘筆試參考題庫含答案解析
- 經(jīng)濟(jì)學(xué)基礎(chǔ)試題及答案 (二)
- 2024-2030年中國蠔肉市場發(fā)展前景調(diào)研及投資戰(zhàn)略分析報(bào)告
評論
0/150
提交評論