版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 設計題目:基于J2EE的簡歷投遞管理系統(tǒng)的</p><p> 設計與實現(xiàn) </p><p> 學 院:_計算機與信息學院 _</p><p> 專業(yè)年級:_ _</p><p> 學 號:_
2、 _</p><p> 學生姓名:_ ____ __ _ _____</p><p> 指導教師、職稱:__xx 副教授 __</p><p><b> 2012年5月</b></p><p> Resume delivery&mana
3、gement system</p><p> based on J2EE</p><p> College: Fujian Agriculture and Forestry University </p><p> Specialty and Grade:Software Engineering 2008
4、</p><p> Number: </p><p> Name: </p><p> Advisor: </p><p> S
5、ubmitted time: 2012.4.23 </p><p><b> 目 錄</b></p><p><b> 摘要1</b></p><p> Abstract2</p><p><b> 第一章 引
6、言3</b></p><p> 1.1 開發(fā)背景3</p><p> 1.11電子簡歷系統(tǒng)的發(fā)展歷史3</p><p> 1.2 課題研究的目的與意義4</p><p> 第二章:系統(tǒng)需求分析4</p><p> 2.1 需求概述4</p><p> 2.1.
7、1 系統(tǒng)設計目標4</p><p> 2.2 需求描述5</p><p> 2.2.1 系統(tǒng)的總需求目標5</p><p> 2.2.2 數(shù)據(jù)需求5</p><p> 2.2.3 功能性需求概述6</p><p> 2.2.4 約束6</p><p> 2.2.5 系統(tǒng)模
8、型6</p><p> 第三章:系統(tǒng)設計9</p><p> 3.1 概要設計9</p><p> 3.1.1 頁面遷移圖9</p><p> 3.2 數(shù)據(jù)庫設計10</p><p> 3.2.1 數(shù)據(jù)流程10</p><p> 3.2.2 數(shù)據(jù)表說明11</p&
9、gt;<p> 3.3 詳細設計11</p><p> 3.3.1 單一的Servlet編寫11</p><p> 3.3.2 系統(tǒng)詳細設計14</p><p> (1) 需求概述14</p><p> (2) 程序設計15</p><p> (3) 頁面控制模塊設計思路16<
10、;/p><p> (4) 數(shù)據(jù)訪問模塊設計思路17</p><p> (5) 輔助用戶輸入:自動格式化日期功能的實現(xiàn)17</p><p><b> 第四章 結論18</b></p><p> 致謝、參考文獻18</p><p><b> 摘要</b></p
11、><p> 本系統(tǒng)試圖建立一種電子簡歷的收集、處理和查詢的方式,用數(shù)據(jù)庫的方式代替?zhèn)鹘y(tǒng)的文本方式。為簡歷投遞者提供了在線填寫簡歷的機會,更重要的是它為人力資源工作者提供了對簡歷的操作平臺,他們可以查看已經登陸的簡歷,處理或者刪除簡歷,并且設置簡歷的過期時間等。采用JSP+SERVLET開發(fā)。</p><p> 為了區(qū)分普通用戶和后臺管理員,首先要做一個首頁,包含兩個鏈接,一個是求職者登錄簡
12、歷的鏈接,另一個是工作人員登陸系統(tǒng)的鏈接。對于工作人員來說,進入系統(tǒng)進行操作之前,必須首先登陸。登陸頁面包括一個用戶名和一個密碼的輸入框。一旦登陸成功,進入系統(tǒng),則應該看到一個有頁面導航系統(tǒng)的頁面。</p><p> 擬解決的關鍵問題: </p><p> 在不使用現(xiàn)成框架的情況下,嘗試用一個統(tǒng)一的Servlet來處理頁面的請求,然后根據(jù)頁面提交數(shù)據(jù)的不同來決定調用哪些業(yè)務模塊;<
13、;/p><p> 如何根據(jù)頁面提交表單中的數(shù)據(jù),將其轉接到對應的業(yè)務處理模塊;</p><p> 嘗試通過JavaScript自動轉換日期格式。</p><p> 關鍵詞:電子簡歷;JSP;SERVLET</p><p><b> Abstract</b></p><p> The syst
14、em attempts to establish an online resume collection, processing and query system, database way to replace the traditional text. To resume delivery to provide online resume writing opportunities, it is more important for
15、 human resource professionals to resume operation platform, they can view a entered resume, or delete a resume, resume and set expiration time. Using the JSP+SERVLET technic.</p><p> In order to distinguish
16、 between ordinary users and administrators, first of all to make a home page, contains two links, a job seekers log CV link, another is the work of personnel landing system link. For the staff, to enter the system operat
17、ion before, must first landing. Landing page includes a username and a password input box. Once logged in, enter the system, should see a page of page navigation system.</p><p> The key problems to solve:&l
18、t;/p><p> Without the use of readily available case frame, try to use a unified Servlet to handle the page request, then according to the page to submit data to the different decides to call what business modu
19、le;</p><p> According to the page to submit the data in the form, its transfer to the corresponding service processing module;</p><p> Using JavaScript automatic conversion to format date.<
20、/p><p> Key words: online resume system; JSP; SERVLET</p><p><b> 1 引言</b></p><p><b> 1.1 開發(fā)背景</b></p><p> 在求職和招聘的過程中,唯一的交流工具就是簡歷。求職者拿著打印好的簡歷,滿懷
21、期待的在一家家公司之間來回奔波,而招聘方則面對著一堆堆的簡歷發(fā)愁不知道如何從堆積如山的簡歷中找到適合的簡歷,而且在瀏覽簡歷的過程中,往往因為簡歷的數(shù)量、簡歷的格式導致耗費了大量時間或者錯過了合適的簡歷,這對于求職者和招聘方來說都是一種損失。</p><p> 正是基于這種需求,我們可以建立一種電子簡歷的收集、處理和查詢方式,用數(shù)據(jù)庫的方式代替?zhèn)鹘y(tǒng)的文本方式。主要面向企業(yè)的人力資源部,它為簡歷投遞者提供了在線填寫
22、簡歷的機會,更重要的是它為人力資源工作者提供了對簡歷的操作平臺,他們可以查看已經登陸的簡歷,處理或者刪除簡歷,并且設置簡歷的過期時間等。</p><p> 1.11電子簡歷系統(tǒng)的發(fā)展歷史</p><p> 信息作為生產力中最活躍的因素,很早就在人類經濟生活中發(fā)揮著不可替代的作用,但把信息納入企業(yè)經營管理系統(tǒng)中高效處理和應用是在計算機發(fā)明以后的50年代末。</p><
23、p> 目前人們所提到的信息管理系統(tǒng),通常是指以計算機為工具,對管理信息進行收集、存貯、檢索、加工和傳遞,使其應用于組織機構及企業(yè)管理領域的“人-機系統(tǒng)”,該系統(tǒng)是70年代初“后工業(yè)經濟”時代的產物,在企業(yè)管理信息系統(tǒng)在其發(fā)展的初期,是單一的人—機系統(tǒng),系統(tǒng)功能簡單,效率低,對管理的作用有限。</p><p> 進入20世紀80年代末,隨著計算機網絡和通信技術的大力發(fā)展,企業(yè)進入網絡化、信息化的高速發(fā)展時
24、期。世界發(fā)達國家已建立起了完善的先進的管理信息系統(tǒng)體系,在其社會經濟發(fā)展領域中發(fā)揮著巨大的作用。</p><p> 90年代初期,簡歷信息主要還是以紙質簡歷的方式進行投遞。紙質簡歷雖說是一種傳統(tǒng)的方式,比較直接了當,然而有其三大弱點。其一,不易保存,紙質簡歷容易丟失,而且紙質不一,有大有小,對其進行歸檔、統(tǒng)一儲存很不方便;其二,信息雜亂,不同人所寫簡歷包含字段不一致,字段先后順序也不一致,沒有統(tǒng)一的規(guī)格,給閱讀
25、者帶來不必要的困擾;其三,投遞效率低,傳遞紙質簡歷所耗費的人力物力,有時候甚至要當成機會成本來考慮:投個簡歷這么麻煩,還不一定有面試機會,投還是不投呢?</p><p> 到21世紀初,逐漸出現(xiàn)了線上投遞簡歷系統(tǒng),主要是一些企業(yè)的網站上出現(xiàn)了人才招聘的欄目,其中包含簡歷編纂,在線投遞等功能。給求職者帶來了極大的便利,同時也使企業(yè)招聘體系的運作效率得到極大的提升。電子簡歷框架統(tǒng)一,求職者往往可以按照頁面的提示,往
26、空白處填入簡歷內容即可,因此電子簡歷系統(tǒng)受到很好的評價。從那時起,電子簡歷系統(tǒng)成為很多企業(yè)選擇的一種工具。也開始成為應聘者與企業(yè)傳遞信息的首要選擇。</p><p> 1.2 課題研究的目的與意義</p><p> 信息社會的高科技,商品經濟化的高效益,使計算機的應用已普及到經濟和社會生活的各個領域。計算機雖然與人類的關系愈來愈密切,還有人由于計算機操作不方便繼續(xù)用手工勞動。為了適應現(xiàn)
27、代社會人們高度強烈的時間觀念,傳統(tǒng)管理系統(tǒng)軟件為管理人員帶來了極大的方便。</p><p> 本文基于mysql數(shù)據(jù)庫和JAVA語言,開發(fā)了企業(yè)簡歷管理系統(tǒng),該系統(tǒng)界面簡潔友好,操作簡單,可以大大的提高人事管理的效率,減少企業(yè)在簡歷整理和管理上花費的人力和財力。本系統(tǒng)可供企業(yè)管理人員查詢,修改企業(yè)的人才庫信息。企業(yè)新聘人員,搜索人才庫信息,只需及時登陸系統(tǒng)進行查看、審批,即可以達到企業(yè)的目的。</p>
28、;<p> 同時,本文使用Myeclipse9.0開發(fā)此簡歷投遞管理系統(tǒng)系統(tǒng),使得企業(yè)的簡歷管理工作更加系統(tǒng)化、規(guī)范化、自動化,從而達到提高企業(yè)簡歷管理的效率。企業(yè)簡歷管理系統(tǒng)能夠對普通用戶簡歷登陸、工作人員登陸、后臺簡歷登陸、簡歷整理、過期簡歷、簡歷查詢、系統(tǒng)設置、幫助等功能。人事及簡歷信息的變更,必須需要管理人員已管理員身份登錄,保證了系統(tǒng)的安全性。系統(tǒng)的總體任務是使企業(yè)管理人員可以輕松快捷地完成對企業(yè)簡歷審閱和管理
29、的任務。</p><p> 初步實驗表明,本系統(tǒng)可基本滿足小中型企業(yè)的部分需求,并切實提高企業(yè)的人才簡歷庫管理效率,節(jié)省了企業(yè)的管理支出,從而具有一定的經濟效益。</p><p><b> 2 系統(tǒng)需求分析</b></p><p><b> 2.1 需求概述</b></p><p> 2.1
30、.1 系統(tǒng)設計目標</p><p><b> 人事管理系統(tǒng)</b></p><p> 表 21 需求列表</p><p> 綜上所述,本系統(tǒng)試圖建立一種電子簡歷的收集、處理和查詢的方式,用數(shù)據(jù)庫的方式代替?zhèn)鹘y(tǒng)的文本方式。為簡歷投遞者提供了在線填寫簡歷的機會,更重要的是它為人力資源工作者提供了對簡歷的操作平臺,他們可以查看已經登陸的簡歷,
31、處理或者刪除簡歷,并且設置簡歷的過期時間等。采用JSP+SERVLET的MVC模式開發(fā)。</p><p> 通過以上分析,可以看出,從功能上來說,簡歷資源中心系統(tǒng)大概分成如下幾個模塊。</p><p><b> 普通用戶簡歷登陸;</b></p><p><b> 工作人員登陸;</b></p><
32、;p><b> 后臺簡歷登陸;</b></p><p><b> 簡歷整理;</b></p><p><b> 過期簡歷;</b></p><p><b> 簡歷查詢;</b></p><p><b> 系統(tǒng)設置;</b&g
33、t;</p><p><b> 退出、幫助。</b></p><p><b> 2.2 需求描述</b></p><p> 2.2.1 系統(tǒng)的總需求目標</p><p> 在計算機網絡,數(shù)據(jù)庫和先進的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個具有開放體系結構的、易擴充的、易維護的、
34、具有良好人機交互界面的管理系統(tǒng),實現(xiàn)高效的計算機信息管理系統(tǒng)。</p><p> 2.2.2 數(shù)據(jù)需求</p><p> (1) 數(shù)據(jù)錄入和處理的準確性和實時性</p><p> 數(shù)據(jù)的輸入是否準確,是數(shù)據(jù)處理的前提,錯誤的輸入會導致系統(tǒng)異常甚至崩潰,從而使系統(tǒng)失去工作的意義。數(shù)據(jù)的輸入來源是手工輸入。手工輸入要通過系統(tǒng)界面上的安排系統(tǒng)具有容錯性,并且對操作人
35、員要進行系統(tǒng)的培訓。在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的,因此系統(tǒng)要有一定的處理能力,以保證迅速的處理數(shù)據(jù)。</p><p> (2) 數(shù)據(jù)的安全性</p><p> 本系統(tǒng)為企業(yè)人力資源部門設計,是企業(yè)收集來的人力資源信息,因此只有特定的管理者才能進入后臺管理從而對數(shù)據(jù)實現(xiàn)增、刪、改、查等操作。未獲授權人員不能進入該系統(tǒng)。而匿名用戶只能夠登陸簡歷,功能有限。</p><
36、;p><b> (3) 數(shù)據(jù)的備份</b></p><p> 投入使用后,本系統(tǒng)需要定期對數(shù)據(jù)庫中的數(shù)據(jù),進行全部或新增部分的備份工作,以保證在硬件出現(xiàn)故障,或人為原因導致無法運行時是可以快速及時的還原到原來的正常狀態(tài)。</p><p> 2.2.3 功能性需求概述</p><p> (1)普通用戶簡歷登陸</p>
37、<p><b> (2)工作人員登陸</b></p><p><b> (3)后臺簡歷登陸</b></p><p> (4)簡歷整理以及過期簡歷設置</p><p><b> (5)簡歷查詢</b></p><p><b> (6)系統(tǒng)設置<
38、/b></p><p><b> (7)退出、幫助</b></p><p><b> 2.2.4 約束</b></p><p> 操作系統(tǒng): Windows xp/windows 7/Linux </p><p> 數(shù)據(jù)庫系統(tǒng): MySql Server 5.5</p
39、><p> 2.2.5 系統(tǒng)模型</p><p><b> (1) 用例模型</b></p><p><b> (2) 參與者匯總</b></p><p> 求職者;人力資源工作人員</p><p><b> (3) 用例匯總</b></p&
40、gt;<p> 登陸;簡歷登錄;簡歷整理;過期簡歷;簡歷查詢;系統(tǒng)設置</p><p><b> (4) 頂層用例圖</b></p><p> 圖 2-1 頂層用例圖</p><p><b> (5) 用例描述</b></p><p> 表 22 用例列表1</p&g
41、t;<p> 表 23 用例列表2</p><p> 表 24 用例列表3</p><p> 表 25 用例列表4</p><p> 表 26 用例列表5</p><p> 表 27 用例列表6</p><p><b> 3 系統(tǒng)設計</b></p>
42、<p><b> 3.1 概要設計</b></p><p> 3.1.1 頁面遷移圖</p><p> 根據(jù)用例圖,本系統(tǒng)具有兩種用戶,一個是應聘者,另一個是人力資源工作人員,下面針對這兩種用戶設想一下使用這個系統(tǒng)的過程。</p><p> 應聘者進入首頁,單擊“簡歷登錄”鏈接,進入用戶登錄頁面,輸入用戶名和密碼,進入系統(tǒng)
43、。</p><p> 工作人員進入首頁,單擊“管理入口”鏈接,進入用戶登錄頁面,輸入用戶名和密碼,進入系統(tǒng)。</p><p> 工作人員進入系統(tǒng)后將面對5個功能模塊,不過這5個模塊之間沒有直接聯(lián)系。</p><p> 單擊“簡歷登錄”導航,進入簡歷登錄模塊。輸入簡歷信息,單擊“登錄”按鈕,簡歷輸入數(shù)據(jù)庫。</p><p> 單擊“簡歷
44、整理”導航,進入簡歷整理模塊。頁面顯示出所有需要整理的簡歷,用戶單擊頁面跳轉按鈕可以在一覽頁面之間的多頁之間跳轉,在一覽表格中單擊對應簡歷,頁面遷移到簡歷詳細頁面,可以對該簡歷進行相關操作。</p><p> 單擊“過期簡歷”導航,進入過期簡歷模塊。頁面顯示出所有過期的簡歷,用戶同樣可以在一覽頁面的多頁之間跳轉,在一覽表格中單擊對應簡歷,頁面遷移到過期簡歷的詳細信息頁面,可以進行相關操作。</p>
45、<p> 單擊“簡歷查詢”導航,進入簡歷查詢模塊。首先是查詢條件輸入頁面,輸入查詢條件以后單擊“查詢”按鈕,可以進入查詢結果一覽頁面,在查詢結果一覽頁面同樣可以在多頁之間跳轉,在一覽表格中單擊對應簡歷,頁面遷移到對應的簡歷詳細信息頁面。</p><p> 單擊“系統(tǒng)設置”導航,進入系統(tǒng)設置模塊。在這個模塊中只有一個頁面,可以進行相關設置的查看和修改。</p><p> 由
46、此,可以畫出對應的頁面遷移圖,如圖3-1所示:</p><p> 圖3-1 頁面遷移圖</p><p><b> 3.2 數(shù)據(jù)庫設計</b></p><p> 3.2.1 數(shù)據(jù)流程</p><p> 數(shù)據(jù)庫設計是應用系統(tǒng)開發(fā)的一個重要環(huán)節(jié),數(shù)據(jù)庫結構的好壞將直接對應用系統(tǒng)的效率及實現(xiàn)結果產生重要影響。在數(shù)據(jù)庫設計
47、的開始階段應盡量全面考慮用戶的各種需求,收集基礎數(shù)據(jù)、數(shù)據(jù)結構及數(shù)據(jù)處理流程。根據(jù)需求分析,簡歷管理系統(tǒng)的數(shù)據(jù)流程圖如圖3-2所示: 圖3-2 數(shù)據(jù)流圖 </p><p> 3.2.2 數(shù)據(jù)表說明</p><p> 表3.3 用戶表結構(USER表)</p><p> 表3.4 簡歷表結構(RESUME表)</p><p&g
48、t; 表3.5 用戶系統(tǒng)設置表(SETTING表)</p><p><b> 3.3 詳細設計</b></p><p> 3.3.1 單一的Servlet編寫</p><p> 如果采用單一的共同Servlet,最重要的一點就是如何根據(jù)頁面提交表單中的數(shù)據(jù),將其轉接到對應的業(yè)務處理模塊。</p><p> 考慮
49、到系統(tǒng)有許多頁面,而每個頁面都可能有多種操作,例如在一覽頁面單擊翻頁的時候和單擊一覽眾對應的簡歷的時候的動作應該是不一樣的,所以為了區(qū)分不同的動作,每個頁面和表單在提交時候,必須說明是在什么頁面,提交了什么動作。在這里用兩個表單變量來表示這部分信息,其中pageId標識當前是哪個頁面,actionId標識當前執(zhí)行的是哪個動作。</p><p> 有了用戶動作信息,在Servlet中需要將對應的表單信息傳遞給對應
50、的處理模塊。考慮到每個頁面?zhèn)鬟f的變量不同,為了統(tǒng)一處理,Servlet將HttpServletRequest和HttpServletResponse的doGet或者doPost方法中,根據(jù)傳遞過來的pageId和actionId獲得類名和方法名,然后實例化對應的類,并調用對應方法。這些操作可以不通過實例化具體類的方式進行,極大的提高了代碼的靈活性。在這里實例化類是通過如下的語句進行的。</p><p> Cla
51、ss invokeClass = Class.forName( sClassName ); </p><p> Object invokeObject = invokeClass.newInstance(); </p><p> 通過這種方式,類名是通過字符串的方式進行處理的,避免了在代碼中直接書寫“obj=new ***.****.*****”的形式,提高
52、了代碼的靈活性。</p><p> 共通Servlet作為控制器,不僅需要轉達用戶提交的數(shù)據(jù),還需要作出頁面遷移的動作處理,所以需要在Controller層對應接口返回下一個要去的頁面,由共通Servlet進行遷移處理。</p><p> 這個共通Servlet命名為CommonServlet,初步完整的代碼如下:</p><p> Ch06.servlet.
53、CommonServlet.java</p><p> public class CommonServlet extends HttpServlet {</p><p> // 保存各頁面Id對應的Controller類</p><p> public Hashtable hPageHandler = null;</p><p> /
54、/ 保存各頁actionId對應的Controller類的方法名</p><p> public Hashtable hActionHandler = null;</p><p> public void init() {</p><p> // 各頁面對應的類名</p><p> hPageHandler = new Hashtab
55、le();</p><p> hPageHandler.put("S000", "ch06.controller.CGuestRegister");</p><p> hPageHandler.put("S001", "ch06.controller.CLogin");</p><p&g
56、t; hPageHandler.put("S002", "ch06.controller.CMenu");</p><p> hPageHandler.put("S011", "ch06.controller.CRegister");</p><p> hPageHandler.put("S02
57、1", "ch06.controller.CProcessList");</p><p> hPageHandler.put("S022", "ch06.controller.CProcessDetail");</p><p> hPageHandler.put("S031", "ch0
58、6.controller.CExpireList");</p><p> hPageHandler.put("S032", "ch06.controller.CExpireDetail");</p><p> hPageHandler.put("S041", "ch06.controller.CViewSe
59、arch");</p><p> hPageHandler.put("S042", "ch06.controller.CViewList");</p><p> hPageHandler.put("S043", "ch06.controller.CViewDetail");</p>
60、<p> hPageHandler.put("S051", "ch06.controller.CSetting");</p><p> // 各頁面對應動作的方法名</p><p> hActionHandler = new Hashtable();</p><p> hActionHandler.put(&
61、quot;S000register", "registerResume");</p><p> hActionHandler.put("S001login", "login");</p><p> hActionHandler.put("S002register", "registerR
62、esume");</p><p> hActionHandler.put("S002process", "processResume");</p><p> hActionHandler.put("S002expire", "expireResume");</p><p>
63、 hActionHandler.put("S002view", "viewResume");</p><p> hActionHandler.put("S002setting", "setting");</p><p> hActionHandler.put("S011register"
64、;, "registerResume");</p><p> hActionHandler.put("S021goto", "gotoPage");</p><p> hActionHandler.put("S021resume", "viewResume");</p>&
65、lt;p> hActionHandler.put("S022process", "processResume");</p><p> hActionHandler.put("S022delete", "deleteResume");</p><p> hActionHandler.put("
66、;S031goto", "gotoPage");</p><p> hActionHandler.put("S031resume", "viewResume");</p><p> hActionHandler.put("S032expire", "expireResume")
67、;</p><p> hActionHandler.put("S032delete", "deleteResume");</p><p> hActionHandler.put("S041search", "searchResume");</p><p> hActionHandl
68、er.put("S042goto", "gotoPage");</p><p> hActionHandler.put("S042resume", "viewResume");</p><p> hActionHandler.put("S043delete", "deleteR
69、esume");</p><p> hActionHandler.put("S043return", "returnList");</p><p> hActionHandler.put("S051register", "setting");</p><p><b&g
70、t; }</b></p><p> public void doGet(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> // 設置提交表單的中文編碼</p>
71、;<p> request.setCharacterEncoding("GBK");</p><p> HttpSession mySession = request.getSession(true);</p><p><b> // 清空錯誤消息</b></p><p> mySession.setA
72、ttribute("errMsg", "");</p><p> // 得到用戶輸入信息</p><p> String sPageId = request.getParameter("pageId");</p><p> String sActionId = request.getParameter
73、("actionId");</p><p> if (sPageId == null || sPageId.equals("") || sActionId == null</p><p> || sActionId.equals("")) {</p><p> // 非法進入頁面,跳轉到首頁</
74、p><p> mySession.invalidate();</p><p> response.sendRedirect("../index.htm");</p><p><b> return;</b></p><p><b> }</b></p><
75、p> // 如果非法進入頁面</p><p> if (!sPageId.equals("S000") && !sPageId.equals("S001")</p><p> && mySession.getAttribute("username") == null) {</p&g
76、t;<p> // 非法進入頁面,跳轉到首頁</p><p> mySession.invalidate();</p><p> response.sendRedirect("../index.htm");</p><p><b> return;</b></p><p><
77、;b> }</b></p><p> // 根據(jù)pageId和actionId獲得要調用的方法</p><p> String sClassName = (String) hPageHandler.get(sPageId);</p><p> String sMethodName = (String) hActionHandler.get(
78、sPageId + sActionId);</p><p> if (sClassName == null || sClassName.equals("") || sMethodName == null</p><p> || sMethodName.equals("")) {</p><p> // 頁面?zhèn)鬟f的page
79、Id等不對,跳轉到首頁</p><p> mySession.invalidate();</p><p> response.sendRedirect("../index.htm");</p><p><b> return;</b></p><p><b> }</b>
80、</p><p><b> try {</b></p><p> // 利用反射調用對應的方法</p><p> Class invokeClass = Class.forName(sClassName);</p><p> Object invokeObject = invokeClass.newInstanc
81、e();</p><p> Class[] paraType = {</p><p> Class.forName("javax.servlet.http.HttpServletRequest"),</p><p> Class.forName("javax.servlet.http.HttpServletResponse&quo
82、t;) };</p><p> Object[] paraObj = { request, response };</p><p> Method invokeMethod = invokeClass.getMethod(sMethodName, paraType);</p><p> String sNextPage = (String) invokeMet
83、hod.invoke(invokeObject,</p><p><b> paraObj);</b></p><p> if (sNextPage != null && !sNextPage.equals("")) {</p><p> response.sendRedirect("../&
84、quot; + sNextPage);</p><p><b> return;</b></p><p><b> }</b></p><p> } catch (Exception e) {</p><p> // 頁面處理出錯,跳轉到首頁</p><p> my
85、Session.invalidate();</p><p> response.sendRedirect("../index.htm");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }<
86、;/b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> doGet(request, response);</
87、p><p><b> }</b></p><p><b> }</b></p><p> 3.3.2 系統(tǒng)詳細設計</p><p><b> (1) 需求概述</b></p><p> 從功能上來說,簡歷資源中心系統(tǒng)大概分成如下幾個模塊。普通用戶簡
88、歷登陸;工作人員登陸;后臺簡歷登陸;簡歷整理;過期簡歷;簡歷查詢;系統(tǒng)設置;退出、幫助。</p><p> 為了區(qū)分普通用戶和后臺管理員,首先要做一個首頁,包含兩個鏈接,一個是求職者登錄簡歷的鏈接,另一個是工作人員登陸系統(tǒng)的鏈接。對于工作人員來說,進入系統(tǒng)進行操作之前,必須首先登陸。登陸頁面包括一個用戶名和一個密碼的輸入框。一旦登陸成功,進入系統(tǒng),則應該看到一個有頁面導航系統(tǒng)的頁面。</p>&l
89、t;p><b> (2) 程序設計</b></p><p> 表 312 項目主要資源名定義表</p><p> (3) 頁面控制模塊設計思路</p><p> 頁面控制模塊主要的功能是接受客戶端提交的表單,從中提取出有用的信息,然后調用業(yè)務邏輯模塊進行處理,并根據(jù)業(yè)務模塊的處理結果決定接下來的遷移頁面,并返回給共同Servle
90、t進行頁面跳轉。</p><p> 頁面控制模塊的類文件應該由一系列的方法組成,為了讓共同Servlet能夠順利使用反射機制調用,需要給這些方法添加如下限制:</p><p> 所有方法的參數(shù)必須有且只有兩個參數(shù),第一個參數(shù)類型是HttpServletRequest,第二個參數(shù)類型是HttpServletResponse;</p><p> 所有方法的返回值都
91、是String類型,表示下一個要去的頁面。</p><p><b> 示例代碼如下:</b></p><p> public class CLogin</p><p><b> {</b></p><p> public String login ( HttpServletRequest r
92、equest, </p><p> HttpServletResponse response )</p><p> throws Exception</p><p><b> {</b></p><p> //獲得session對象</p><p> HttpSession mySess
93、ion = request.getSession(true);</p><p> //設置session中的頁面值域</p><p> mySession.setAttribute(CommonConst.VIEWID_LOGIN, new Hashtable() );</p><p> String sUsername = request.getParame
94、ter("username");</p><p> String sPassword = request.getParameter("password");</p><p> //校驗用戶輸入信息</p><p> MLogin mLogin = new MLogin();</p><p> b
95、oolean bCheckResult = mLogin.getUserInfo( mySession, sUsername, sPassword );</p><p> if ( bCheckResult )</p><p><b> {</b></p><p> return "menu.jsp";</p&g
96、t;<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> return "login.jsp";</p><p><b> }</b>&
97、lt;/p><p><b> }</b></p><p><b> }</b></p><p> (4) 數(shù)據(jù)訪問模塊設計思路</p><p> 在業(yè)務模塊中,最主要的功能是和數(shù)據(jù)庫打交道,所以也可以成為數(shù)據(jù)訪問模塊。在一般的Module層中,為每一個頁面都分配了一個Module進行處理,這樣實
98、際上就有點浪費。所以有一種設想,是否可以按照數(shù)據(jù)對象來設計數(shù)據(jù)訪問模塊呢?對于一個數(shù)據(jù)對象來講,原始操作不外乎增、刪、改、查。一個Module類對一個數(shù)據(jù)庫表應該能夠完成基本的功能,如果處于業(yè)務邏輯的需要,在適當添加一些邏輯。這樣設計能夠使得數(shù)據(jù)操作更加集中。</p><p> 基于這種考慮,決定為所有的數(shù)據(jù)訪問模塊類設置一個弗雷,所有的Module類都從一個叫做MCommon的類繼承,在MCommon的類中,
99、實現(xiàn)了一個獲取數(shù)據(jù)庫連接的方法,這樣所有的子類都可以調用這個方法來獲得數(shù)據(jù)庫連接。</p><p><b> 示例代碼如下:</b></p><p> public class MCommon</p><p><b> {</b></p><p> public Connection get
100、DBConnection( HttpSession mySession )</p><p><b> {</b></p><p><b> //嘗試連接數(shù)據(jù)庫</b></p><p><b> try</b></p><p><b> {</b>&
101、lt;/p><p> //載入MySQL的JDBC驅動類</p><p> Class.forName(CommonConst.DB_DRIVER_CLASSNAME);</p><p><b> //獲得數(shù)據(jù)庫連接</b></p><p> Connection conn = DriverManager.getCo
102、nnection( CommonConst.DB_CONN_STRING );</p><p> return conn;</p><p><b> }</b></p><p> catch(Exception ex)</p><p><b> {</b></p><p&
103、gt; ex.printStackTrace();</p><p> mySession.setAttribute("errMsg","獲得數(shù)據(jù)庫連接時出現(xiàn)錯誤!請聯(lián)系技術人員。");</p><p> return null;</p><p><b> }</b></p><
104、p><b> }</b></p><p><b> }</b></p><p> (5) 輔助用戶輸入:自動格式化日期功能的實現(xiàn)</p><p> 本系統(tǒng)中,工作人員需要頻繁輸入日期,不管是在簡歷錄入、整理建立還是在過期簡歷處理中,都需要頻繁輸入日期。本章一開始的設計中,日期的格式是9999/99/99的形式
105、,但是對于一個錄入人員來說,手指在鍵盤上的數(shù)字和“/”之間的切換是不方便的而且是令人厭煩的,尤其在和中文錄入一起進行的時候,所以要找到一種方法能夠節(jié)省用戶的時間,允許用戶直接錄入8位日期,然后自動轉換為9999/99/99的格式。</p><p> 我考慮調用JavaScript腳本的方式完成日期格式的自動轉換。同時,考慮到日期輸入域分布在各個頁面,所以這個日期處理方法就不應該放在各自的.js文件中實現(xiàn),而是應
106、該放在共同的cmnScript.js文件中實現(xiàn),因為每個頁面都引用了這個共同.js文件,所以可以很方便地調用該方法。</p><p><b> 代碼如下:</b></p><p><b> //自動轉換日期</b></p><p> function dateFormat( inputObj )</p>
107、<p><b> {</b></p><p> var inputDate = inputObj.value;</p><p> var outputDate = "";</p><p> if ( inputDate.length == 8 )</p><p><b>
108、 {</b></p><p> outputDate = inputDate.substring(0,4) + "/" +inputDate.substring(4,6) + "/" + inputDate.substring(6,8);</p><p> inputObj.value = outputDate;</p>
109、<p><b> }</b></p><p><b> }</b></p><p><b> 第四章 結論</b></p><p> 在本次畢業(yè)論文設計初期,我尋找了相關資料,閱讀了相關專業(yè)書籍,但由于實踐經驗不夠,還不熟悉一些開發(fā)工具,編程能力有限,前期上手十分緩慢。經過一段時
110、間的請教老師,同學,熟悉開發(fā)工具和進行實踐以后,終于找到了切入點。</p><p> 中期,因為編程能力不夠也出現(xiàn)了一些困難,后來在老師和同學的幫助下,論文才能得以進行。通過完成這次畢業(yè)設計,使我逐步加深了對數(shù)據(jù)庫知識的了解,清楚一個管理軟件的設計過程,進一步全面認識和深刻體會了數(shù)據(jù)庫技術的發(fā)展過程以及數(shù)據(jù)庫技術在實際工作中的應用。同時編程能力也得到了一定的提高。為了完成設計任務,我們深入調查,掌握畢業(yè)設計課程
111、的具體流程、方法以及有關實例的原始數(shù)據(jù)資料,更加熟練掌握MyEclipse,tomcat等軟件的使用,從理論到實踐,又從實踐回到理論,進一步加深了對計算機開發(fā)技術和數(shù)據(jù)庫技術的理解,為我們今后更進一步的掌握與運用數(shù)據(jù)庫技術打下堅實的基礎,同時也認識到自己所學的不足,有待今后的進一步努力,不斷提高。</p><p><b> 致謝</b></p><p> 在論文完
112、成之際,首先我要感謝一直指導我直至論文完成的指導老師,在老師細致的指導下,這篇論文才得以完成!</p><p> 我還要感謝學院的所有老師。作為一名學生,我有機會得到老師們的教導,學習軟件工程知識,這是我大學階段一段難忘的經歷。學院老師們淵博的專業(yè)知識,嚴謹?shù)闹螌W態(tài)度給我留下了深刻的影響。</p><p> 同時也要感謝我的同學,在這次論文完成中,他們給予了我極大的幫助和鼓勵,在開始寫
113、論文時,我曾因為對一些開發(fā)工具不熟而一度上手緩慢,他們給予了我鼓勵并幫助我快速熟悉開發(fā)工具,這次論文才得以順利完成。</p><p><b> 參考文獻</b></p><p> [1] 薩師煊、 王珊 數(shù)據(jù)庫系統(tǒng)概論 2000年 第三版 高等教育出版社</p><p> [2] 張海藩 軟件工程導論 人民郵電出版社 2002年3月&l
114、t;/p><p> [3] Watts S.Humphrey 著 韓丹等譯 小組軟件開發(fā)過程 人民郵電出版社 2001年10月</p><p> [4] Mary Campione,Kathy Walrath,Alison Huml著 馬朝暉,陳美紅譯 Java語言學導論第三版 機械工業(yè)出版社 2003年1月</p><p> [5] Thomas M.Co
115、nnolly,Carolyn E.Begg著 何玉潔 梁琦 等譯 數(shù)據(jù)庫設計教程 機械工業(yè)出版社 2003年8月</p><p> [6] J.弗林,B.克拉克 著 希望圖書創(chuàng)作室譯 Visual J++ Java Programming程序設計 宇航出版社 1998年7月</p><p> [7] Abraham Silberschatz, Henry F.Korth, S.Sud
116、arshan DATEBASE SYSTEM CONCEPTS McGraw-Hill</p><p> [8][美]Rogers Cadenhead. Java編程入門經典.梅興文譯.第4版.北京:人民郵電出版社,2007</p><p> [9][美]Bruce Eckel. Thinking In Java.英文第4版.北京:機械工業(yè)出版社,2007</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--基于j2ee的在線簡歷投遞系統(tǒng)的設計與實現(xiàn)
- 基于j2ee的家庭財務系統(tǒng)畢業(yè)設計
- 基于j2ee的網絡物流系統(tǒng)畢業(yè)設計
- 物流倉儲管理系統(tǒng)畢業(yè)設計----基于j2ee的網絡物流系統(tǒng)
- 基于j2ee的企業(yè)人事信息管理系統(tǒng)畢業(yè)設計
- 基于j2ee框架的元器件管理系統(tǒng)畢業(yè)設計論文
- 基于j2ee的問卷調查系統(tǒng)的畢業(yè)設計
- 畢業(yè)設計---j2ee的教學評估系統(tǒng)
- 畢業(yè)設計論文 基于j2ee的網絡在線考試系統(tǒng)設計
- 畢業(yè)設計----基于j2ee的博客系統(tǒng)的設計與實現(xiàn)
- 畢業(yè)設計基于j2ee的博客系統(tǒng)的設計與實現(xiàn)
- 基于j2ee框架的個人博客系統(tǒng)項目畢業(yè)設計
- 基于j2ee的停車場管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計
- 畢業(yè)設計論文---基于j2ee架構的在線招聘系統(tǒng)
- 基于j2ee架構的電子商務系統(tǒng)畢業(yè)設計
- 基于j2ee框架的個人博客系統(tǒng)項目畢業(yè)設計論文 (2)
- 基于j2ee酒店管理系統(tǒng)設計與實現(xiàn)
- 基于J2EE的畢業(yè)設計指導系統(tǒng)的設計與實現(xiàn).pdf
- 基于J2EE的IT培訓管理系統(tǒng).pdf
- 基于j2ee框架的個人博客系統(tǒng)項目畢業(yè)設計論文
評論
0/150
提交評論