版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
企業(yè)信息發(fā)布管理系統(tǒng)─用戶信息發(fā)布管理功能實(shí)現(xiàn)摘要:公司信息發(fā)布管理是公司管理的一項(xiàng)重要內(nèi)容。隨著公司員工數(shù)量增加和企業(yè)規(guī)模的不斷加大。信息發(fā)布系統(tǒng)既涉及到企業(yè)的人事管理, 同時也是企業(yè)其他部門的重要組成部分。信息發(fā)布系統(tǒng)是一個企業(yè)通訊管道, 更是企業(yè)發(fā)展壯大的關(guān)鍵。 早期的信息統(tǒng)計和發(fā)放都是使用人工方式處理紙質(zhì)材料, 既花費(fèi)大量時間和人力又不易保存和查詢。 而隨著社會經(jīng)濟(jì)的發(fā)展和計算機(jī)技術(shù)的發(fā)展。 此系統(tǒng)分為 Web前端服務(wù)和后臺管理模塊, 普通用戶可進(jìn)行發(fā)布信息和留言,而管理員可以進(jìn)行對欄目管理和用戶管理和發(fā)布管理等進(jìn)行增刪改。關(guān)鍵字:信息發(fā)布;數(shù)據(jù)庫;個人信息管理;留言管理Abstract: Information management is an important content of companymanagement.Withtheincreaseinthenumberofstaff andenterprisescaleincreasing,enterprise information releasework becamemore and more complicated.Informationpublishingsysteminvolvesthepersonnelmanagementoftheenterprise,butalsothekeyofenterprisedevelopment.Earlyinformationstatisticsandissuingofallistheuseartificialwayprocessingpapermaterialorthroughthecommunicationtools,istospendalotoftimeandmanpowerandnoteasytosaveandquery.Butwiththedevelopmentofsocialeconomyandthedevelopmentofcomputertechnology.ThissystemisdividedintoWebfront-endserviceandbackgroundmanagementmodule,ordinaryuserscanpublishinformationandmessage,andadministratorscanmaketheprogrammanagementandusermanagementandreleasemanagementtoincreaseauthorization.Keywords:informationpublish;database;Personalinformationmanagement;gbook緒論1.1 項(xiàng)目背景由于企業(yè)規(guī)模的進(jìn)一步擴(kuò)大,企業(yè)信息的管理也變得越來越復(fù)雜。為此,切第1頁(50頁)實(shí)有效的把企業(yè)信息管理系統(tǒng)引入企業(yè)管理領(lǐng)域中, 對于促進(jìn)企業(yè)管理制度和提高企業(yè)質(zhì)量有著顯著的意義。Internet 的發(fā)展使我們的企業(yè)管越來越現(xiàn)代化, 現(xiàn)在網(wǎng)上企業(yè)信息傳播只在一指之間。目前國家的企業(yè)管理制度也正處在不斷改革、 創(chuàng)新的階段,我國很多企業(yè)都充分吸收國外優(yōu)秀的管理模式, 逐步探索出適合中國特色的企業(yè)管理形式。因此,企業(yè)管理信息發(fā)布管理軟件充分依托企業(yè)自身信息, 實(shí)現(xiàn)企業(yè)信息的集中管理、分散操作、信息共享、使傳統(tǒng)的管理朝數(shù)字化無紙化、智能化、綜合化的方向發(fā)展、并進(jìn)一步完善的信息發(fā)布系統(tǒng)打下良好的基礎(chǔ) [1]。由于Internet 具有影響范圍廣,能夠方便快捷的傳遞信息, 具有近乎實(shí)時的交互性,本身又是一個巨大無比的信息庫等諸多優(yōu)點(diǎn)。本企業(yè)信息發(fā)布系統(tǒng) [4],可以提高企業(yè)信息管理的效率。我們的目標(biāo)是用本企業(yè)信息發(fā)布系統(tǒng)實(shí)現(xiàn)最快對企業(yè)信息的綜合管理。在這里,運(yùn)用計算機(jī)輔助管理,即能實(shí)時的對大量信息數(shù)據(jù)進(jìn)行檢驗(yàn)和統(tǒng)計, 十分方便的輸出管理結(jié)果,同時也避免人工處理時容易產(chǎn)生的錯誤。1.2 系統(tǒng)開發(fā)目標(biāo)根據(jù)本系統(tǒng)任務(wù)的具體要求,近階段查閱了與本課題內(nèi)容相關(guān)的資料以及學(xué)習(xí)了實(shí)現(xiàn)本系統(tǒng)所需的相關(guān)技術(shù),對系統(tǒng)進(jìn)行了相應(yīng)的整體分析。系統(tǒng)主要實(shí)現(xiàn)以下目標(biāo):界面友好,采用人機(jī)對話方式,操作簡單。信息查詢靈活、快捷、數(shù)據(jù)庫儲存安全。實(shí)現(xiàn)更重記錄的添加、修改、刪除、查詢功能。對用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢查,盡可能排除人為錯誤。合理的分配權(quán)限,保證了系統(tǒng)的安全性。系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。第1頁(50頁)1.3 項(xiàng)目開發(fā)環(huán)境1.3.1 硬件環(huán)境本系統(tǒng)的硬件環(huán)境如下:客戶機(jī):普通PCCPU:P41.8GHz內(nèi)存:256MB以上分辨率:推薦使用 1024*768像素WEB服務(wù)器CPU:P41.8GHz內(nèi)存:256MB以上數(shù)據(jù)庫服務(wù)器CPU:P41.8GHz內(nèi)存:256MB以上MySQl1.3.2 軟件環(huán)境本系統(tǒng)軟件環(huán)境如下:操作系統(tǒng):windows7開發(fā)工具:MyEclipse8.6Web服務(wù)器:ApacheTomcat數(shù)據(jù)庫:mysql-5.5.28-win32+SQLyog-8.7.1 破解版軟件包:jstl-1.2.jar連接數(shù)據(jù)庫軟件包:mysql-connector-java-5.0.5-bin.jar相關(guān)技術(shù)第1頁(50頁)2.1 系統(tǒng)所涉及到的技術(shù)2.1.1JSPJSP(JavaServerPages )是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。 JSP技術(shù)有點(diǎn)類似ASP技術(shù),它在傳統(tǒng)的網(wǎng)頁HTML文件插入Java程序段和JSP標(biāo)記,從而形成JSP文件。用JSP開發(fā)的Web應(yīng)用是跨平臺的。JSP技術(shù)有以下優(yōu)勢[6]:一次編寫,到處運(yùn)行。在這一點(diǎn)上 Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。強(qiáng)大的可伸縮性。從只有一個小的 Jar文件就可以運(yùn)行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺 Application 進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器, Java顯示了一個巨大的生命力。多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺之下。JSP的劣勢與ASP一樣,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。Java的運(yùn)行速度是用 class常駐內(nèi)存來完成的,所以它在一些情第1頁(50頁)況下所使用的內(nèi)存比起用戶數(shù)量來說確實(shí)是“最低性能價格比”了。從另一方面,它還需要硬盤空間來儲存一系列的。java文件和。class文件,以及對應(yīng)的版本文件。2.2 開發(fā)工具2.2.1MyEclipseMyEclipse 企業(yè)級工作平臺( MyEclipseEnterpriseWorkbench ,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它可以在數(shù)據(jù)庫和 J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。 它是功能豐富的 J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持 HTML,Struts,JSF,CSS,Javascript ,SQL,Hibernate。系統(tǒng)分析3.1 需求概述隨著科學(xué)技術(shù)的不斷發(fā)展,管理和辦公活動的重要性日漸突出,引起了管理者以及科技人員的普遍重視, 尤其是20世紀(jì)60年代以來,在通信技術(shù)迅速發(fā)展的推動下,辦公室也開始了向自動化為重要內(nèi)容的“辦公室革命” 。企業(yè)根據(jù)自己的需求,建立了網(wǎng)上辦公自動化管理系統(tǒng) [5]。盡可能地利用信息資源,向多級辦公人員及時提供所需信息,提高了工作效率和質(zhì)量。不久的將來網(wǎng)上辦公自動化管理系統(tǒng)將成為企業(yè)的首選管理方式。本系統(tǒng)的實(shí)現(xiàn)的主要功能有 [1]:對發(fā)布的信息進(jìn)行評論。用戶登錄進(jìn)去后,如果多所發(fā)信息有什么想法的都可以進(jìn)行評論,發(fā)表自己的看法??梢粤粞浴H绻惺裁捶桨富蛳敕ǘ伎蛇M(jìn)行留言到時候企業(yè)會對其第1頁(50頁)留言進(jìn)行篩選有用的進(jìn)行采納。這樣更能得到好的建議。對信息進(jìn)行增刪改。對信息評論的管理。審批信息。可以保證信息健康積極向上。減少不必要的信息出現(xiàn)。用戶個人信息的查詢,修改與管理??梢赃M(jìn)行搜索信息,減少查看信息的時間。3.2 需求分析3.2.1 分析需求我國不少企業(yè)都實(shí)現(xiàn)了企業(yè)信息發(fā)布管理系統(tǒng),即把信息得到的自主權(quán)交給了員工。在這里,員工可以得到信息時的制約條件因素比較復(fù)雜,工作量也很大,而且有些信息往往在較短的時間內(nèi)失效。運(yùn)用計算機(jī)輔助管理,開發(fā)自主信息資源,即能實(shí)現(xiàn)的對大量信息數(shù)據(jù)進(jìn)行檢驗(yàn)和統(tǒng)計,十分方便的輸出結(jié)果。同時也避免了人工處理時產(chǎn)生的錯誤??梢蕴岣吖芾砉ぷ鞯男?、提高信息的開放性、改善員工對其最新信息查詢的準(zhǔn)確性[7]。通過對系統(tǒng)需求分析,我們確定系統(tǒng)中的二類用戶:普通用戶、管理員。各類用戶具體描述如下:管理員:管理員維護(hù)整個系統(tǒng),包括涉資自身和員工的信息以及相應(yīng)的企業(yè)信息的管理和審核。普通用戶:普通員工負(fù)責(zé)查詢相應(yīng)的信息,以及自身的基本信息管理。3.2.2 可行性分析現(xiàn)在許多中小型企業(yè)用的都是紙和筆的人工管理方式, 這樣的管理既困難又浪費(fèi)時間和成本,還容易出錯。所以應(yīng)該掌握大型企業(yè)先進(jìn)的管理方式, 從而提高企業(yè)的效率和降低成本。辦公自動化管理系統(tǒng)主要有以下優(yōu)勢 [9]:① 經(jīng)濟(jì)可行性第1頁(50頁)通過網(wǎng)站對企業(yè)內(nèi)部信息進(jìn)行全面的自動化管理, 大大提高企業(yè)的辦公效率。通過系統(tǒng)對企業(yè)生產(chǎn)經(jīng)營過程中的數(shù)據(jù)進(jìn)行全面的管理和統(tǒng)計, 避免人為處理各類數(shù)據(jù)時所產(chǎn)生的各種問題,提高了企業(yè)的經(jīng)濟(jì)效益,為企業(yè)決策提供了大量的、權(quán)威的數(shù)據(jù),使企業(yè)的管理進(jìn)入到科學(xué)化、系統(tǒng)化的范疇。② 技術(shù)可行性本系統(tǒng)主要用到了目前比較流行的 Struts和Hibernate技術(shù),Struts是構(gòu)造基于Java和Web應(yīng)用的首先技術(shù)。Hibernate已經(jīng)越來越多的Java開發(fā)人員作為企業(yè)應(yīng)用和關(guān)系數(shù)據(jù)庫之間的中間件,這兩項(xiàng)技術(shù)的應(yīng)用方便了網(wǎng)站日后的維護(hù)。③ 運(yùn)行可行性不同的企業(yè)正在迅猛發(fā)展,而且在企業(yè)中各個公司的員工流動性越來越大,所以信息發(fā)布系統(tǒng)在公司起到了極其重要的作用。隨著計算機(jī)硬件的快速發(fā)展,計算機(jī)的價格在不斷地降低,信息發(fā)布系統(tǒng)對客戶端要求極低, 只需要有一個瀏覽器能上網(wǎng)就能進(jìn)行信息的查詢。 網(wǎng)絡(luò)的越來越普及,人們都喜歡上網(wǎng)查詢信息既方便又快捷。因此系統(tǒng)在實(shí)踐上具備了可行性。該系統(tǒng)操作方便、簡單。由此可知,信息發(fā)布系統(tǒng)在市場上具有可行性。3.3 系統(tǒng)功能結(jié)構(gòu)圖針對實(shí)際生活中信息發(fā)布的需要,我們組的公司信息發(fā)布系統(tǒng)能夠?qū)崿F(xiàn)的主要功能模塊如下:發(fā)布模塊:最新發(fā)布、人們發(fā)布、分類發(fā)布、搜索信息。留言模塊:發(fā)布留言、留言管理。用戶模塊:登錄和注冊、取回密碼、發(fā)布信息。欄目管理:總欄目管理、類別管理。用戶管理:用戶信息管理、管理員信息管理。發(fā)布管理:發(fā)布信息、審批信息、、發(fā)布管理、消息評論管理。信息發(fā)布系統(tǒng)的組成及系統(tǒng)功能結(jié)構(gòu)圖,如圖 3-3所示第1頁(50頁)3-3 結(jié)構(gòu)圖數(shù)據(jù)庫設(shè)計4.1 數(shù)據(jù)字典設(shè)計對數(shù)據(jù)庫設(shè)計中涉及到的各種項(xiàng)目,如數(shù)據(jù)項(xiàng)、記錄、系、文卷、模式、子模式等一般要建立起數(shù)據(jù)字典, 以說明它們的標(biāo)識符、同義名及有關(guān)信息。如表4-1所示:表4-1 數(shù)據(jù)字典數(shù)據(jù)項(xiàng) 數(shù)據(jù)類型 數(shù)據(jù)名稱 數(shù)據(jù)用途第1頁(50頁)userNamevarchar(20)用戶名記錄用戶的姓名passWdvarchar(20)密碼記錄用戶的密碼sexint(11)性別記錄用戶的性別questionvarchar(255)提示問題記錄用戶提問的問題answervarchar(255)答案記錄問題的答案qqvarchar(10)QQ記錄用戶的qqhttpvarchar(10)來源記錄用戶的來源regTimevarchar(20)創(chuàng)建時間記錄用戶創(chuàng)建的時間purviewint(11)權(quán)限記錄用戶的權(quán)限lastLoginvarchar(20)登錄時間記錄用戶登錄時間lastLoginIpvarchar(20)登錄IP記錄用戶登錄IPclassIdint(11)消息分類記錄消息發(fā)布分類contentvarchar(20)分類標(biāo)題記錄信息分類標(biāo)題kindIdint(11)消息類別記錄消息發(fā)布類別gradeIdint(11)消息級別記錄消息發(fā)布的級別myOtherint(11)其他記錄關(guān)于其他內(nèi)容headTitlevarchar(255)標(biāo)題記錄消息的標(biāo)題editorvarchar(20)編輯人記錄消息的編輯人newsFromvarchar(40)制作記錄消息制作topint(11)分類記錄消息的分類tagint(11)標(biāo)識記錄消息的標(biāo)識stateint(11)審批狀態(tài)記錄消息的審批狀態(tài)newsTimevarchar(20)發(fā)布時間記錄消息的發(fā)布時間counterint(11)留言id記錄用戶留言idreplyIdint(11)產(chǎn)生日期記錄留言產(chǎn)生日期replyTimevarchar(20)備注記錄留言的備注adminNamechar(20)留言管理員記錄留言管理員adminPasswdchar(20)留言管理員密碼記錄留言管理員密碼imagetext圖片記錄信息發(fā)布上傳的圖片4.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計這一設(shè)計階段是在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。第1頁(50頁)圖4-2 數(shù)據(jù)E-R圖4.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計根據(jù)數(shù)據(jù)庫的需求分析,建立如下幾個數(shù)據(jù)表:用戶表(newsusr)第1頁(50頁)消息表(news)消息留言表(newsreply)消息評論表(noteguest)第1頁(50頁)4.4 數(shù)據(jù)庫關(guān)系圖圖4-4 數(shù)據(jù)庫關(guān)系圖概要設(shè)計5.1 基本設(shè)計概念和處理流程針對以上系統(tǒng)的需求分析, 為了更好地對系統(tǒng)的總體要求及個權(quán)限用戶的更加明確的方向,如圖5-1所示:第1頁(50頁)圖5-2 結(jié)構(gòu)E-R圖圖5-3 結(jié)構(gòu)處理第1頁(50頁)5.2 功能需求與程序的關(guān)系本條用一張如下的矩陣圖說明各項(xiàng)功能需求的實(shí)現(xiàn)同各塊程序的分配關(guān)系:表5-2 功能需求與程序的關(guān)系表程序1 程序2 程序3 程序4 程序4 程序5 程序6修改個人信息 √查看公告 √提交工作報告 √留言 √公告信息報告管理 √提交報告管理 √用戶信息管理 √管理員信息管理 √留言管理 √詳細(xì)設(shè)計6.1用戶模塊第1頁(50頁)6.1.1 首頁頁面圖6-1-1 首頁面圖6.1.2 功能功能需求一般情況下,企業(yè)的信息涉及到企業(yè)的機(jī)密,在企業(yè)信息利用網(wǎng)絡(luò)傳遞信息過程中,首先應(yīng)確保整個交流過程的安全性, 即需要一個專門的驗(yàn)證用戶的合法性, 防止非法信息法用戶侵入,實(shí)行權(quán)限控制、存儲和傳輸加密以及電子簽名, 這樣來保證信息的安全性。安全性控制這個先決定性條件后,企業(yè)對內(nèi)、 外的信息傳遞才能更好的實(shí)現(xiàn)。比如:公告發(fā)布和提交工作報告。對呀公告發(fā)布企業(yè)管理人員能及時向外部發(fā)布產(chǎn)品,人才供求信息,以取得更多的商機(jī)和更多的優(yōu)秀人才, 實(shí)現(xiàn)網(wǎng)絡(luò)信息服務(wù)的遠(yuǎn)程交流 [2],并在企業(yè)內(nèi)部對各級部門職工發(fā)布管理信息及近期部門的工作安排, 重大會議及活動。實(shí)現(xiàn)系統(tǒng)管理員分配系統(tǒng)帳號和權(quán)限,系統(tǒng)帳號權(quán)限、登錄、用戶信息管理、公告信息、公告表、留言信息管理、留言信息表、用戶修改信息、用戶信息表、姓名密碼、查詢、用戶信息。實(shí)現(xiàn)信息資料互通,第1頁(50頁)在不同的地方把企業(yè)需要的通知、公告、 文件、檔案等資料同時上傳的文件進(jìn)行下載,對企業(yè)內(nèi)遠(yuǎn)程工作來說只要處理好的文檔資料, 通過WEB服務(wù)器實(shí)現(xiàn)及時上傳, 也同樣可以共享信息資料,了解企業(yè)內(nèi)部當(dāng)前的工作進(jìn)度與狀況。圖6-1-2 功能模塊圖圖6-1-2 注冊信息添加圖6-1-3 信息類別第1頁(50頁)修改個人信息修改申請 添加修改申請單刪除圖6-1-4 個人信息修改 E-R圖6.1.3 輸入項(xiàng)(給出對每一個輸入項(xiàng)的特性,包括名稱、標(biāo)識、數(shù)據(jù)的類型和格式、數(shù)據(jù)值的有效范圍、輸入的方式、數(shù)量和頻度、輸入媒體、輸入數(shù)據(jù)的來源和安全保密條件等等。)對應(yīng)操作的數(shù)據(jù)庫表:用戶表(newsusr)CreateTableCREATETABLE`newsusr` (第1頁(50頁)`userName` varchar(20) NOTNULLDEFAULT'' COMMENT'用戶名',`passWd`varchar(20)NOTNULLDEFAULT''COMMENT'密碼',`sex`int(11)DEFAULTNULLCOMMENT'性別',`question`varchar(255)DEFAULTNULLCOMMENT'提示問題',`answer`varchar(255)DEFAULTNULLCOMMENT'答案',`emailAddr`varchar(50)DEFAULTNULLCOMMENT'郵箱',`qq`varchar(10)DEFAULTNULLCOMMENT'QQ',`http`varchar(30)DEFAULTNULLCOMMENT'來源',`purview`int(11)DEFAULT'1'COMMENT'權(quán)限',`regTime`varchar(20)DEFAULTNULLCOMMENT'創(chuàng)建時間',PRIMARYKEY(`userName`)) ENGINE=MyISAMDEFAULTCHARSET=gb23126.1.4 輸出項(xiàng)(給出對每一個輸出項(xiàng)的特性,包括名稱、標(biāo)識、數(shù)據(jù)的類型和格式、數(shù)據(jù)值的有效范圍、輸出的形式、數(shù)量和頻度、輸出媒體、對輸出圖形及符號的說明、安全保密條件等等。)根據(jù)權(quán)限不同用戶進(jìn)入不同界面,擁有不同功能。第1頁(50頁)圖6-1-5 注冊頁面圖6-1-6 發(fā)布信息頁面第1頁(50頁)6.1.5 算法詳細(xì)說明本程序所選用的算法,具體的計算公式和計算步驟。/package mon;public class MD5{privatelongstate[];//審批狀態(tài)privatelongcount[];//數(shù)量privatebytebuffer[];//緩沖publicStringdigestHexStr;//摘要內(nèi)容privatebytedigest[];//摘要publicStringgetMD5ofStr(Stringinbuf){md5Init();md5Update(inbuf.getBytes(),inbuf.length());md5Final();digestHexStr = "";for (int i=0;i<16;i++)digestHexStr += byteHEX (digest [i]);return digestHexStr ;}public MD5(){state = new long [4];count = new long [2];第1頁(50頁)buffer=newbyte[64];digest=newbyte[16];md5Init();}private void md5Init(){count[0]=0L;count[1]=0L;state[0]=1732584193L;state[1]=4023233417L;state[2]=2562383102L;state[3]=271733878L;}private long F( long x, long y, long z){return x&y|~x&z;}private long G(long x, long y, long z){return x&z|y&~z;}private long H(long x, long y, long z){return x^y^z;}private long I( long x, long y, long z)第1頁(50頁){return y^(x|~z);}private long FF( long a, long b, long c, long d, long x, long s, longac){a+=F(b,c,d)+x+ac;a=( int )a<<( int )s|( int )a>>>( int )(32L-s);a+=b;return a;}private long GG(long a, long b, long c, long d, long x, long s, longac){a+=G(b,c,d)+x+ac;a=( int )a<<( int )s|( int )a>>>( int )(32L-s);a+=b;return a;}private long HH(long a, long b, long c, long d, long x, long s, longac){a+=H(b,c,d)+x+ac;a=( int )a<<( int )s|( int )a>>>( int )(32L-s);a+=b;return a;第1頁(50頁)}private long II( long a, long b, long c, long d, long x, long s, longac){a+=I(b,c,d)+x+ac;a=( int )a<<( int )s|( int )a>>>( int )(32L-s);a+=b;return a;}private void md5Update( byte inbuf[], int inputLen){byteblock[]=newbyte[64];intindex=(int)(count[0]>>>3)&63;if((count[0]+=inputLen<<3)<(long)(inputLen<<3))count[1]++;count[1]+=inputLen>>>29;intpartLen=64-index;inti;if(inputLen>=partLen){md5Memcpy( buffer ,inbuf,index,0,partLen);md5Transform( buffer );for (i=partLen;i+63<inputLen;i+=64){md5Memcpy(block,inbuf,0,i,64);md5Transform(block);第1頁(50頁)}index=0;} else{i=0;}md5Memcpy( buffer ,inbuf,index,i,inputLen-i);}private void md5Final(){byte bits[]= new byte [8];Encode(bits, count ,8);int index=( int )(count [0]>>>3)&63;int padLen=index>=56?120-index:56-index;md5Update( PADDING,padLen);md5Update(bits,8);Encode( digest , state ,16);}private void md5Memcpy( byte output[], byte input[], int outpos, intinpos, int len){for (int i=0;i<len;i++)output[outpos+i]=input[inpos+i];第1頁(50頁)}private void md5Transform( byte block[]){longa=state[0];longb=state[1];longc=state[2];longd=state[3];longx[]=newlong[16];Decode(x,block,64);a=FF(a,b,c,d,x[0],7L,3614090360L);d=FF(d,a,b,c,x[1],12L,3905402710L);c=FF(c,d,a,b,x[2],17L,606105819L);b=FF(b,c,d,a,x[3],22L,3250441966L);a=FF(a,b,c,d,x[4],7L,4118548399L);d=FF(d,a,b,c,x[5],12L,1200080426L);c=FF(c,d,a,b,x[6],17L,2821735955L);b=FF(b,c,d,a,x[7],22L,4249261313L);a=FF(a,b,c,d,x[8],7L,1770035416L);d=FF(d,a,b,c,x[9],12L,2336552879L);c=FF(c,d,a,b,x[10],17L,4294925233L);b=FF(b,c,d,a,x[11],22L,2304563134L);a=FF(a,b,c,d,x[12],7L,1804603682L);d=FF(d,a,b,c,x[13],12L,4254626195L);c=FF(c,d,a,b,x[14],17L,2792965006L);b=FF(b,c,d,a,x[15],22L,1236535329L);第1頁(50頁)a=GG(a,b,c,d,x[1],5L,4129170786L);d=GG(d,a,b,c,x[6],9L,3225465664L);c=GG(c,d,a,b,x[11],14L,643717713L);b=GG(b,c,d,a,x[0],20L,3921069994L);a=GG(a,b,c,d,x[5],5L,3593408605L);d=GG(d,a,b,c,x[10],9L,38016083L);c=GG(c,d,a,b,x[15],14L,3634488961L);b=GG(b,c,d,a,x[4],20L,3889429448L);a=GG(a,b,c,d,x[9],5L,568446438L);d=GG(d,a,b,c,x[14],9L,3275163606L);c=GG(c,d,a,b,x[3],14L,4107603335L);b=GG(b,c,d,a,x[8],20L,1163531501L);a=GG(a,b,c,d,x[13],5L,2850285829L);d=GG(d,a,b,c,x[2],9L,4243563512L);c=GG(c,d,a,b,x[7],14L,1735328473L);b=GG(b,c,d,a,x[12],20L,2368359562L);a=HH(a,b,c,d,x[5],4L,4294588738L);d=HH(d,a,b,c,x[8],11L,2272392833L);c=HH(c,d,a,b,x[11],16L,1839030562L);b=HH(b,c,d,a,x[14],23L,4259657740L);a=HH(a,b,c,d,x[1],4L,2763975236L);d=HH(d,a,b,c,x[4],11L,1272893353L);c=HH(c,d,a,b,x[7],16L,4139469664L);b=HH(b,c,d,a,x[10],23L,3200236656L);a=HH(a,b,c,d,x[13],4L,681279174L);d=HH(d,a,b,c,x[0],11L,3936430074L);第1頁(50頁)c=HH(c,d,a,b,x[3],16L,3572445317L);b=HH(b,c,d,a,x[6],23L,76029189L);a=HH(a,b,c,d,x[9],4L,3654602809L);d=HH(d,a,b,c,x[12],11L,3873151461L);c=HH(c,d,a,b,x[15],16L,530742520L);b=HH(b,c,d,a,x[2],23L,3299628645L);a=II(a,b,c,d,x[0],6L,4096336452L);d=II(d,a,b,c,x[7],10L,1126891415L);c=II(c,d,a,b,x[14],15L,2878612391L);b=II(b,c,d,a,x[5],21L,4237533241L);a=II(a,b,c,d,x[12],6L,1700485571L);d=II(d,a,b,c,x[3],10L,2399980690L);c=II(c,d,a,b,x[10],15L,4293915773L);b=II(b,c,d,a,x[1],21L,2240044497L);a=II(a,b,c,d,x[8],6L,1873313359L);d=II(d,a,b,c,x[15],10L,4264355552L);c=II(c,d,a,b,x[6],15L,2734768916L);b=II(b,c,d,a,x[13],21L,1309151649L);a=II(a,b,c,d,x[4],6L,4149444226L);d=II(d,a,b,c,x[11],10L,3174756917L);c=II(c,d,a,b,x[2],15L,718787259L);b=II(b,c,d,a,x[9],21L,3951481745L);state [0]+=a;state [1]+=b;state [2]+=c;state [3]+=d;第1頁(50頁)}private void Encode( byte output[], long input[], int len){int i=0;for (int j=0;j<len;j+=4){output[j]=(byte)(int)(input[i]&255L);output[j+1]=(byte)(int)(input[i]>>>8&255L);output[j+2]=(byte)(int)(input[i]>>>16&255L);output[j+3]=(byte)(int)(input[i]>>>24&255L);i++;}}private void Decode( long output[], byte input[], int len){int i=0;for (int j=0;j<len;j+=4){output[i]= b2iu (input[j])| b2iu (input[j+1])<<8|b2iu (input[j+2])<<16| b2iu (input[j+3])<<24;i++;}第1頁(50頁)}public static long b2iu( byte b){return b>=0?b:b&255;}public static StringbyteHEX( byte ib){char Digit[]={'0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ,'A' , 'B' , 'C' , 'D' , 'E' , 'F'};char ob[]= new char [2];ob[0]=Digit[ib>>>4&15];ob[1]=Digit[ib&15];Strings= newString(ob);return s;}public static StringtoMD5(Stringsource){MD5md5= newMD5();return md5.getMD5ofStr(source);}第1頁(50頁)staticfinalintS11=7;staticfinalintS12=12;staticfinalintS13=17;staticfinalintS14=22;staticfinalintS21=5;staticfinalintS22=9;staticfinalintS23=14;staticfinalintS24=20;staticfinalintS31=4;staticfinalintS32=11;staticfinalintS33=16;staticfinalintS34=23;staticfinalintS41=6;staticfinalintS42=10;staticfinalintS43=15;staticfinalintS44=21;staticfinalbytePADDING[]={-128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};}第1頁(50頁)6.1.6 流程邏輯流程邏輯用圖表(例如流程流程圖、判定表等)輔以必要的說明來表示本程序的邏輯流程圖6-1-7 個人信息管理6.1.7 接口用圖的形式說明本程序所隸屬的上一層模塊及隸屬于本程序的下一層模塊、子程序,說明參數(shù)賦值和調(diào)用方式, 說明與本程序相直接關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu) (數(shù)據(jù)庫、數(shù)據(jù)文卷)。packagecom.cs.database;importjava.sql.Connection;importjava.sql.ResultSet;publicabstractclassDBOperator{publicDBOperator(){}publicabstractvoidClose();publicabstractvoidprepareStatement(Strings);第1頁(50頁)publicabstractvoidexecuteUpdate();publicabstractResultSetexecuteQuery();publicabstractvoidexecuteUpdate(Strings);publicabstractResultSetexecuteQuery(Strings);publicabstractConnectiongetConnection();}/*DECOMPILATIONREPORTDecompiledfrom:D:\old\javaprj\JavaPrj_14\WebRoot\WEB-INF\lib\sanqing.jarTotaltime:265msJadreportedmessages/errors:Exitstatus:0Caughtexceptions:*/6.1.11 測試計劃(說明對本程序進(jìn)行單體測試的計劃,包括對測試的技術(shù)要求、輸入數(shù)據(jù)、預(yù)期結(jié)果、進(jìn)度安排、人員職責(zé)、設(shè)備條件驅(qū)動程序及樁模塊等的規(guī)定。 )importjavax.annotation.Resource;importorg.springframework.context.ApplicationContext;第1頁(50頁)importorg.springframework.context.support.FileSystemXmlApplicationContext;importcs.xj.service.GroupService;importjunit.framework.TestCase;publicclassGroupServiceTestextendsTestCase{@Resource(name="groupService")privateGroupServicegroupService;protectedvoidsetUp()throwsException{ApplicationContext cxt = newFileSystemXmlApplicationContext("/WebRoot/WEB-INF/applicationContext.xml");groupService=(GroupService)cxt.getBean("groupService");}publicvoidtestFind(){groupService.find(0,Integer.MAX_VALUE);}}測試結(jié)果:成功 !6.1.12 尚未解決的問題有時候不能返回登錄界面。第1頁(50頁)6.2 留言模塊發(fā)布留言留言模塊留言管理圖6-2-1 留言模塊結(jié)構(gòu)圖6.2.1 程序描述留言模塊分為發(fā)布留言和留言管理。為底層員工提供一個很好的展現(xiàn)平臺。只要有好的觀點(diǎn)就可在里面留言,這樣公司也避免了一些不公平的抉擇和片面的看法。6.2.2 功能圖6-2-2 信息留言模塊的 E-R圖6.2.3 輸入項(xiàng)第1頁(50頁)消息留言表(newsreply)CreateTableCREATETABLE`newsreply` (`replyId` int(11) NOTNULLAUTO_INCREMENTCOMMENT'留言id',`newsId` int(11) NOTNULLDEFAULT'0' COMMENT'消息表id',`user` varchar(20) DEFAULTNULLCOMMENT'用戶',`content` varchar(100) DEFAULTNULLCOMMENT'內(nèi)容',`replyTime` varchar(20) DEFAULTNULLCOMMENT'留言時間',PRIMARYKEY(`replyId`)) ENGINE=MyISAMDEFAULTCHARSET=gb2312留言管理員(noteadmin)CreateTableCREATETABLE`noteadmin` (`adminName` char(20) NOTNULLDEFAULT'' COMMENT'留言管理第1頁(50頁)員',`adminPasswd` char(20) NOTNULLDEFAULT'' COMMENT'留言管理員密碼',PRIMARYKEY(`adminName`)) ENGINE=MyISAMDEFAULTCHARSET=gb23126.2.4 輸出項(xiàng)圖6-2-4 信息留言第1頁(50頁)圖6-2-5 留言管理6.2.4 算法詳細(xì)說明本程序所選用的算法,具體的計算公式和計算步驟。)密碼修改和驗(yàn)證@InputConfig(resultName="passwordInput")publicStringupdatePassword()throwsException{Useruser=(User)session.get("login");user.setPassword(password);userService.saveOrUpdate(user);session.put("login",user);session.put("notice"," 密碼修改成功");return"password";}publicvoidvalidateUpdatePassword(){if(isNull(password)){addFieldError("password"," 密碼不能為空");}}第1頁(50頁)添加修申請單@InputConfig(resultName="saveInput")publicStringsave()throwsException{change=newChange();change.setName(name);change.setContent(content);changeService.saveOrUpdate(change,((User)session.get("login")).getPerson().getId());session.put("notice"," 添加修申請單成功");return"save";}publicvoidvalidateSave(){if(isNull(name)){addFieldError("name"," 申請單名稱不能為空");}}3)實(shí)現(xiàn)操作數(shù)據(jù)庫修改申請表的業(yè)務(wù) Dao里的重要算法。修改或保存申請publicvoidsaveOrUpdate(Changechange,IntegerpersonId){Personperson=(Person)getHibernateTemplate().get(Person.class,personId);change.setPerson(person);change.setStatus(Status.NEW);第1頁(50頁)change.setCreateTime(newDate());getHibernateTemplate().saveOrUpdate(change);}分頁查看@SuppressWarnings("unchecked")public PagerModel<Change>find(String[] propertyName, Object[]value,intfirstResult,intmaxResult){DetachedCriteria criteriaResult =DetachedCriteria.forClass(Change.class);DetachedCriteria criteriaTotal =DetachedCriteria.forClass(Change.class);for(int i=0;i<propertyName.length &&propertyName[0] !=null;i++){if(value[i]!=null){criteriaResult.add(Restrictions.eq(propertyName[i],value[i]));criteriaTotal.add(Restrictions.eq(propertyName[i],value[i]));}}//循環(huán)獲取返回信息criteriaTotal.setProjection(Projections.rowCount());List<Change>datas=((List<Change>)getHibernateTemplate().findByCriteria(criteriaResult,firstResult,maxResult));int total =第1頁(50頁)((List<Integer>)getHibernateTemplate().findByCriteria(criteriaTotal)).get(0);PagerModel<Change>pagerModel =newPagerModel<Change>(total,datas);returnpagerModel;}6.2.5 流程邏輯圖6-2-5 查看留言 E-R單圖6.2.6 接口用圖的形式說明本程序所隸屬的上一層模塊及隸屬于本程序的下一層模塊、 子程序,說明參數(shù)賦值和調(diào)用方式,說明與本程序相直接關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)庫、數(shù)據(jù)文卷)。實(shí)現(xiàn)連接數(shù)據(jù)庫接口*/packagecom.cs.database;importmon.Debug;第1頁(50頁)importcom.cs.pool.DBConnectionManager;importjava.sql.*;//Referencedclassesofpackagecom.cs.database:// DBOperatorpublicclassSQLDBOperatorextendsDBOperator{privateSQLDBOperator(StringstrKey){prepstmt=null;poolName=strKey;conManager=DBConnectionManager.getInstance();conn=conManager.getConnection(strKey);}publicvoidClose(){try{conManager.freeConnection(poolName,conn);}catch(Exceptione){第1頁(50頁)e.printStackTrace(System.out);}}publicvoidexecuteUpdate(StringstrSql){try{Statementstmt=conn.createStatement();stmt.executeUpdate(strSql);}catch(Exceptione){e.printStackTrace(System.out);Debug.writeLog("In executeUpdate(String), ExceptionOccured!Info:" +e.getLocalizedMessage());}}publicResultSetexecuteQuery(StringstrSql){ResultSetrs=null;try{Statementstmt=conn.createStatement();rs=stmt.executeQuery(strSql);第1頁(50頁)}catch(Exceptione){e.printStackTrace(System.out);Debug.writeLog("In executeQuery(String), ExceptionOccured ! Info :" +e.getLocalizedMessage());}returnrs;}publicvoidprepareStatement(StringstrSql){try{prepstmt=conn.prepareStatement(strSql);}catch(Exceptione){e.printStackTrace(System.out);Debug.writeLog("In prepareStatement(String strSql),Exception Occured!Info:"+e.getLocalizedMessage());}}publicvoidsetString(intindex,Stringvalue){第1頁(50頁)try{prepstmt.setString(index,value);}catch(Exceptione){e.printStackTrace(System.out);Debug.writeLog("In setString(int index,String value),Exception Occured!Info:"+e.getLocalizedMessage());}}publicvoidsetInt(intindex,intvalue){try{prepstmt.setInt(index,value);}catch(Exceptione){e.printStackTrace(System.out);Debug.writeLog("InsetInt(i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州鐵路職業(yè)技術(shù)學(xué)院《攝影攝像》2023-2024學(xué)年第一學(xué)期期末試卷
- 長春醫(yī)學(xué)高等??茖W(xué)?!段⑸镔Y源保護(hù)與利用》2023-2024學(xué)年第一學(xué)期期末試卷
- 玉溪農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《程序設(shè)計技術(shù)(C語言)》2023-2024學(xué)年第一學(xué)期期末試卷
- 物聯(lián)網(wǎng)設(shè)備電源功耗降低
- IT項(xiàng)目季報告模板
- 實(shí)習(xí)機(jī)會獲取指導(dǎo)
- 初一軍訓(xùn)學(xué)生發(fā)言稿
- 村容村情調(diào)研報告
- 統(tǒng)編版六年級語文上冊寒假作業(yè)(九)(有答案)
- 二零二五版房屋租賃合同附押金退還條款2篇
- 綠色供應(yīng)鏈管理制度內(nèi)容
- 心理學(xué)基礎(chǔ)知識考試參考題庫500題(含答案)
- 電力智慧檢修安全運(yùn)行三維可視化管理平臺建設(shè)方案
- 一年級數(shù)學(xué)(上)計算題專項(xiàng)練習(xí)集錦
- 消防安全應(yīng)急預(yù)案下載
- 《北航空氣動力學(xué)》課件
- 附件:財政業(yè)務(wù)基礎(chǔ)數(shù)據(jù)規(guī)范(3.0版)
- 電商公司售后服務(wù)管理制度
- 火災(zāi)應(yīng)急處理課件
- 創(chuàng)新者的逆襲3:新質(zhì)生產(chǎn)力的十八堂案例課-記錄
- 2024年河南省公務(wù)員考試《行測》真題及答案解析
評論
0/150
提交評論