畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng) 畢業(yè)設(shè)計(jì)

畢 業(yè) 設(shè) 計(jì)(論文)課題名稱 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng) 系 別 計(jì)算機(jī)技術(shù)與工程系 專 業(yè) 軟件技術(shù) 班 級(jí) 2008級(jí)2班 姓 名 王凱 學(xué)號(hào) 108101020143 指導(dǎo)老師 劉冠梅 畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)系 計(jì)算機(jī)技術(shù)與工程系 專業(yè) 軟件技術(shù) 年級(jí) 2008 班級(jí) 08軟件2班 姓名 起止日期 2010-11-01 設(shè)計(jì)題目 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng) 1.畢業(yè)設(shè)計(jì)(論文)任務(wù)及要求(包括設(shè)計(jì)或論文的主要內(nèi)容、主要技術(shù)指標(biāo),并根據(jù)題目性質(zhì)對(duì)學(xué)生提出具體要求)2.畢業(yè)設(shè)計(jì)(論文)的原始資料及依據(jù)(包括設(shè)計(jì)或論文的工作基礎(chǔ)、研究條件、應(yīng)用環(huán)境等)3.主要參考資料、文獻(xiàn)指導(dǎo)教師評(píng)語(yǔ)建議成績(jī):優(yōu) 良 中 及格 不及格 指導(dǎo)教師簽字 年 月 日最終評(píng)定成績(jī):優(yōu) 良 中 及格 不及格系主任簽字 年 月 日目 錄前 言 5第一章 緒 論 6§ 1.1 課題背景和意義 6§ 1.2 目前國(guó)內(nèi)就業(yè)網(wǎng)站的現(xiàn)狀 6§ 1.3 系統(tǒng)總體要求 6§ 1.4 開(kāi)發(fā)工具介紹 7§ 1.4.1 JSP 7§ 1.4.2 Dreamweaver 7§ 1.4.3 Microsoft SQL Server 2000 8§ 1.4.4 Tomcat 8第二章 系統(tǒng)需求分析 8§ 2.1 目的和背景 8§ 2.1.1目的 8§ 2.1.2 開(kāi)發(fā)背景 8§ 2.2 系統(tǒng)概述 9§ 2.3 系統(tǒng)的功能性需求 9§ 2.3.1系統(tǒng)總體流程圖 9§ 2.3.2 招聘信息的發(fā)布與管理系統(tǒng)功能需求 10§ 2.3.3 數(shù)據(jù)描述 11§ 2.3.4 系統(tǒng)的準(zhǔn)確性和及時(shí)性 11§ 2.4 系統(tǒng)的非功能性需求 11§ 2.4.1 用戶界面需求 11§ 2.4.2 運(yùn)行需求 11第三章 系統(tǒng)方案設(shè)計(jì) 13§ 3.1 系統(tǒng)總體設(shè)計(jì) 13§ 3.2 系統(tǒng)模塊 13§ 3.2.1 系統(tǒng)模塊劃分 13§ 3.2.2 功能模塊描述 13§ 3.3 系統(tǒng)方案論證 14§ 3.3.1 技術(shù)分析 14§ 3.3.2 功能分析 14§ 3.3.3 經(jīng)濟(jì)分析 15第四章 系統(tǒng)實(shí)現(xiàn) 16§ 4.1 概論 16§ 4.2 首頁(yè)的設(shè)計(jì) 16§ 4.3 企業(yè)注冊(cè)登陸的實(shí)現(xiàn) 17§ 4.3.1 實(shí)現(xiàn)注冊(cè) 17§ 4.3.2 實(shí)現(xiàn)登陸 19§ 4.4 管理基本信息的實(shí)現(xiàn) 20§ 4.5管理招聘信息的實(shí)現(xiàn) 22§ 4.5.1 實(shí)現(xiàn)發(fā)布招聘信息 22§ 4.5.2 實(shí)現(xiàn)修改招聘信息 23§ 4.5.3 實(shí)現(xiàn)刪除招聘 25§ 4.6 管理郵件的實(shí)現(xiàn) 26§ 4.6.1 實(shí)現(xiàn)發(fā)送郵件 26§ 4.6.2 實(shí)現(xiàn)讀取、回復(fù)、刪除郵件 27§ 4.7 管理人才信息的實(shí)現(xiàn) 29§ 4.7.1 實(shí)現(xiàn)查詢?nèi)瞬判畔?30§ 4.7.2 實(shí)現(xiàn)管理收藏夾 30§ 4.8 管理員管理會(huì)員信息的實(shí)現(xiàn) 32第五章 系統(tǒng)的測(cè)試 33§ 5.1 測(cè)試的目的 33§ 5.2 測(cè)試的環(huán)境 33§ 5.3 測(cè)試的內(nèi)容 33§ 5.3.1 對(duì)企業(yè)注冊(cè)登陸功能的測(cè)試 33§ 5.3.2 對(duì)管理基本信息功能的測(cè)試 35§ 5.3.3 對(duì)管理招聘信息功能的測(cè)試 35§ 5.3.4 對(duì)管理郵件功能的測(cè)試 35§ 5.3.5 對(duì)管理人才信息功能的測(cè)試 36§ 5.3.6 對(duì)管理員管理會(huì)員信息功能的測(cè)試 37§ 5.4 測(cè)試總結(jié) 37參考文獻(xiàn) 38附錄 39前 言當(dāng)今,人類社會(huì)已經(jīng)進(jìn)入信息全球化和全球信息化、網(wǎng)絡(luò)化的高速發(fā)展階段。
豐富的網(wǎng)絡(luò)信息已經(jīng)成為人們工作、生活、學(xué)習(xí)中不可缺少的一部分人們正在逐步適應(yīng)和習(xí)慣于網(wǎng)上貿(mào)易、網(wǎng)上購(gòu)物、網(wǎng)上支付、網(wǎng)上服務(wù)和網(wǎng)上娛樂(lè)等活動(dòng),人類的許多社會(huì)活動(dòng)正在向網(wǎng)絡(luò)化發(fā)展招聘和求職是一項(xiàng)對(duì)信息的需求量比較大的活動(dòng),傳統(tǒng)的招聘求職方式已經(jīng)越來(lái)越不能滿足人們的要求,網(wǎng)上招聘和求職已經(jīng)越來(lái)越為人們所熟悉建設(shè)一個(gè)招聘網(wǎng)站也必然得到廣大招聘單位和求職者的強(qiáng)烈支持傳統(tǒng)的招聘方式是,招聘單位參加由人才中心(或人才市場(chǎng))組織的招聘會(huì),或者是招聘單位到高校進(jìn)行專場(chǎng)招聘,或者是招聘單位通過(guò)媒體發(fā)布招聘廣告這些招聘方式都有一些弊端,那就是招聘單位的招聘信息發(fā)布范圍被限制,招聘信息只被一定區(qū)域的求職者所得知,供招聘單位比較選擇的人才也有限,這在一定程度上就阻礙了招聘單位招聘到更符合自己要求的人才而網(wǎng)上招聘就不同了,它可以通過(guò)互聯(lián)網(wǎng)把招聘單位大招聘信息發(fā)布到全國(guó)各地,這樣就會(huì)有更多的求職者接收到招聘信息,就會(huì)有更多的人才供招聘單位選擇,招聘單位也就有機(jī)會(huì)選拔到最符合自己要求的人才[1]本文則介紹了建設(shè)大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)的完整過(guò)程其中分別從需求分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)等幾方面介紹了怎樣實(shí)現(xiàn)企業(yè)在大學(xué)畢業(yè)生就業(yè)信息網(wǎng)中進(jìn)行注冊(cè)、發(fā)布和管理招聘信息、查詢和收藏人才信息以及向人才發(fā)送招聘信等。
隨著網(wǎng)絡(luò)技術(shù)尤其是基于瀏覽器的 WEB技術(shù)的迅速發(fā)展,人們?cè)絹?lái)越多的通過(guò)WEB進(jìn)行各種各樣的活動(dòng),從電子商務(wù)到各種公共信息服務(wù)等等這種基于Browser/Server結(jié)構(gòu)的系統(tǒng)提供的服務(wù)方便、快捷,是人們快速獲得各種服務(wù)的理想途徑大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)正是在這種背景下應(yīng)運(yùn)而生 本系統(tǒng)開(kāi)發(fā)是以Dreamweaver為開(kāi)發(fā)工具進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì),系統(tǒng)中的所有模塊均利用 JSP技術(shù)和先進(jìn)的數(shù)據(jù)庫(kù)連接池技術(shù)進(jìn)行開(kāi)發(fā)本文首先對(duì)系統(tǒng)開(kāi)發(fā)目標(biāo)和用戶需求進(jìn)行了分析,然后給出系統(tǒng)的總體設(shè)計(jì)方案系統(tǒng)主要包含的模塊是:企業(yè)注冊(cè)登陸、管理基本信息、管理招聘信息、管理郵件、管理人才信息等各個(gè)模塊都分前端網(wǎng)頁(yè)設(shè)計(jì)和后臺(tái)數(shù)據(jù)庫(kù)管理,在以JSP技術(shù)設(shè)計(jì)好前端網(wǎng)頁(yè)的基礎(chǔ)上,利用ODBC-JDBC橋訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)進(jìn)行查詢、修改、刪除等操作第1章 緒 論§ 1.1 課題背景和意義全國(guó)普通高校的擴(kuò)招從1999年開(kāi)始,四年之后的2003年高校擴(kuò)招還在繼續(xù),增長(zhǎng)數(shù)量和種類也在擴(kuò)大,大批的大學(xué)畢業(yè)生面臨找工作難的問(wèn)題這一問(wèn)題在大學(xué)也不例外,大量的畢業(yè)生的求職信息不能及時(shí)的被招聘單位所得知,畢業(yè)生也沒(méi)有辦法知道更多的招聘信息。
這一問(wèn)題的其它原因還有:許多招聘會(huì)都在大城市集中舉行,大學(xué)生不可能到達(dá)每一個(gè)招聘會(huì)現(xiàn)場(chǎng)另一方面,許多招聘單位需要招聘員工,但是出于一些原因的考慮,也不可能到每個(gè)招聘會(huì)現(xiàn)場(chǎng)甚至每所高校去進(jìn)行招聘所以形成這樣一種現(xiàn)狀:一方面,許多大學(xué)畢業(yè)生找不到工作;另一方面,許多招聘單位招聘不到自己需要的人才招聘和求職已經(jīng)成為當(dāng)今社會(huì)一大重要問(wèn)題因此,這就需要一種既方便學(xué)生求職,又方便企業(yè)招聘的平臺(tái),即招聘網(wǎng)站大學(xué)畢業(yè)生人才信息網(wǎng)則完全是為了方便學(xué)生求職和企業(yè)招聘在該網(wǎng)站中,學(xué)生和企業(yè)可以花最小的代價(jià),在最短的時(shí)間內(nèi)查詢最多的招聘和求職信息,完成求職與招聘因此,該網(wǎng)站的建設(shè)勢(shì)必得到廣大大學(xué)生和企業(yè)的支持§ 1.2 目前國(guó)內(nèi)就業(yè)網(wǎng)站的現(xiàn)狀目前,國(guó)內(nèi)的幾大網(wǎng)站都提供了就業(yè)方面的網(wǎng)頁(yè),國(guó)內(nèi)也有專門(mén)的就業(yè)網(wǎng)站,但是這些網(wǎng)站的側(cè)重點(diǎn)不是僅為畢業(yè)生服務(wù)的,而是提供了廣泛的就業(yè)導(dǎo)航,針對(duì)性較弱 § 1.3 系統(tǒng)總體要求此次設(shè)計(jì)的大學(xué)畢業(yè)生人才信息網(wǎng)是在計(jì)算機(jī)網(wǎng)絡(luò)上,利用數(shù)據(jù)庫(kù)和先進(jìn)的開(kāi)發(fā)平臺(tái),配置一定的軟件和硬件,開(kāi)發(fā)的一個(gè)網(wǎng)上招聘和求職系統(tǒng)該系統(tǒng)具有開(kāi)放的體系結(jié)構(gòu)、易擴(kuò)充、易維護(hù)、具有良好人機(jī)交互界面的特點(diǎn)它主要分為三個(gè)模塊:個(gè)人簡(jiǎn)歷生成與管理子系統(tǒng)、求職信息的發(fā)布與管理子系統(tǒng)、招聘信息的發(fā)布與管理子系統(tǒng)。
其主要功能是包括:用戶在線注冊(cè),生成個(gè)人簡(jiǎn)歷,發(fā)布招聘信息和發(fā)布求職信息本文作者負(fù)責(zé)的是招聘信息的發(fā)布與管理子系統(tǒng)的設(shè)計(jì)設(shè)計(jì)的主要內(nèi)容是:通過(guò)網(wǎng)上調(diào)研了解一個(gè)人才信息網(wǎng)的運(yùn)作過(guò)程;實(shí)現(xiàn)對(duì)招聘單位的基本信息進(jìn)行注冊(cè)和管理;實(shí)現(xiàn)招聘單位發(fā)布招聘信息和管理招聘信息;實(shí)現(xiàn)招聘單位在站內(nèi)收發(fā)郵件;實(shí)現(xiàn)招聘單位對(duì)學(xué)生信息的查詢和收藏;實(shí)現(xiàn)管理員對(duì)站內(nèi)會(huì)員信息的管理§ 1.4 開(kāi)發(fā)工具介紹本次設(shè)計(jì)的實(shí)現(xiàn)主要需要JSP和Dreamweaver以及Microsoft SQL Server 2000等相關(guān)技術(shù)和工具的支持§ 1.4.1 JSPJavaServer?Pages (JSP)?技術(shù)提供了一種簡(jiǎn)單快速的方法來(lái)創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的?Web?頁(yè)面由業(yè)界處于領(lǐng)先地位的?Sun?公司制定了相關(guān)的?JSP?技術(shù)規(guī)范,該規(guī)范定義了如何在服務(wù)器和?JSP?頁(yè)面間進(jìn)行交互,還描述了頁(yè)面的格式和語(yǔ)法JSP?技術(shù)的工作原理:JSP?頁(yè)面使用?XML?標(biāo)簽和?scriptlets(一種使用?Java?語(yǔ)言編寫(xiě)的腳本代碼),封裝了生成頁(yè)面內(nèi)容的邏輯它將各種格式的標(biāo)簽(HTML?或者?XML)直接傳遞回響應(yīng)頁(yè)面通過(guò)這種方式,JSP?頁(yè)面實(shí)現(xiàn)了頁(yè)面邏輯與其設(shè)計(jì)和顯示的分離。
JSP? 技術(shù)是?Java?系列技術(shù)的一部分JSP?頁(yè)面被編譯成?servlets,并可能調(diào)用?JavaBeans?組件(beans)?或 ?Enterprise?JavaBeans?組件(企業(yè)?beans),以便在服務(wù)器端處理[2]JSP?頁(yè)面是?web?開(kāi)發(fā)人員使用?JSP?內(nèi)置標(biāo)簽和自定義標(biāo)簽,結(jié)合其他靜態(tài)標(biāo)簽(HTML?或?XML?標(biāo)簽)生成的頁(yè)面JSP?頁(yè)面的擴(kuò)展名為 ?.jsp?或.jspx,web?服務(wù)器通過(guò)此擴(kuò)展名通知?JSP?引擎處理該頁(yè)面中的元素通過(guò)部署描述文件?web.xml,也可使用其他擴(kuò)展名和 ?JSP?引擎聯(lián)系通過(guò) ?JSP?引擎解釋?JSP?頁(yè)面中的標(biāo)簽,生成所需內(nèi)容JSP?頁(yè)面通常被編譯成?Java?平臺(tái)?servlet?類因此,JSP?頁(yè)面的運(yùn)行需要有能支持?Java?平臺(tái)?servlet?規(guī)范的?Java?虛擬機(jī)JSP?頁(yè)面實(shí)際上只是在第一次被調(diào)用的時(shí)候被編譯一次頁(yè)面被編譯成?Java?Servlet?類?,并駐留在服務(wù)器內(nèi)存中,這樣以后調(diào)用該頁(yè)面時(shí)將很快[3]JSP的優(yōu)點(diǎn)是:可移植性,支持多種平臺(tái),可以使用多種WEB服務(wù)器(Apache,IIS,PWS);使用JAVA腳本語(yǔ)言,面向?qū)ο蟮木幊趟枷?;JSP組件是跨平臺(tái)可重用的;可伸縮性好,可由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡、事務(wù)處理及消息處理;多種功能強(qiáng)大的開(kāi)發(fā)工具。
因此,JSP?技術(shù)在構(gòu)建可升級(jí)的基于?web?的應(yīng)用程序時(shí)扮演了重要角色[4]§ 1.4.2 DreamweaverDream weaver是Macromedia公司出產(chǎn)的一套專業(yè)級(jí)的網(wǎng)頁(yè)編輯軟件,它使用圖形用戶接口,能輕而易舉地以所見(jiàn)即所得的方式編輯網(wǎng)頁(yè),具有即時(shí)編輯HTML源代碼、制作Dynamic HTML的源代碼、層疊式樣式表(Cascading Style Sheet,CSS)、Layer、Timeline(時(shí)間軸)、Library(共享庫(kù))、Template(模板)、網(wǎng)站管理功能,它是一套脫離一般風(fēng)頁(yè)編輯器框架的億秀網(wǎng)頁(yè)管理與制作工具,能夠最大限度減輕網(wǎng)站管理員的負(fù)荷Dreamweaver具有強(qiáng)大的網(wǎng)頁(yè)編輯功能,它集成了完善的文字編輯窗口,方便用戶編輯網(wǎng)頁(yè)源代碼,并能方便地對(duì)JavaScript進(jìn)行編輯、修改等操作同步化的網(wǎng)頁(yè)設(shè)計(jì)與HTML源代碼的查看功能,增加了用戶操作的易用性、全新的版面配置設(shè)計(jì)、對(duì)象自動(dòng)分類管理、與Fireworks4的充分結(jié)合、提供內(nèi)置的Flash文字與按鈕等功能,更加強(qiáng)化了Dreamweaver的實(shí)用性與可操作性[5]§ 1.4.3 Microsoft SQL Server 2000SQL Server 2000是Microsoft公司推出的大型數(shù)據(jù)庫(kù)管理系統(tǒng),它建立在成熟而強(qiáng)大的關(guān)系型基礎(chǔ)上,可以很好的支持客戶機(jī)/服務(wù)器網(wǎng)絡(luò)模式,能夠滿足各種類型的企事業(yè)單位對(duì)構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的需求。
它具有易用性、可擴(kuò)展性、可靠性等特點(diǎn),是目前使用最為廣泛、普及率最高的數(shù)據(jù)庫(kù)管理系統(tǒng)之一[6]§ 1.4.4 TomcatTomcat是一個(gè)免費(fèi)的開(kāi)源的Serlvet容器在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,只需將WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓在瀏覽器中訪問(wèn)這個(gè)應(yīng)用的Jsp時(shí),通常第一次會(huì)很慢,因?yàn)門(mén)omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯編譯以后,訪問(wèn)將會(huì)很快Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能[7]第2章 系統(tǒng)需求分析§ 2.1 目的和背景§ 2.1.1目的定義總體要求,作為用戶和開(kāi)發(fā)人員之間相互了解的基礎(chǔ);提供性能要求、初步設(shè)計(jì)和對(duì)用戶影響的信息,作為開(kāi)發(fā)人員進(jìn)行設(shè)計(jì)和實(shí)施的基礎(chǔ);作為總體驗(yàn)證和確認(rèn)的依據(jù)系統(tǒng)介紹,系統(tǒng)的功能性需求,系統(tǒng)的非功能性需求§ 2.1.2 開(kāi)發(fā)背景招聘和求職已經(jīng)成為當(dāng)今社會(huì)一大重要問(wèn)題大學(xué)每年都有數(shù)千畢業(yè)生走出學(xué)校,面臨求職,而每年也有許多企業(yè)需要招聘大量的人才開(kāi)發(fā)此系統(tǒng)就是為了方便企業(yè)和個(gè)人更好的在網(wǎng)上進(jìn)行招聘和求職活動(dòng)§ 2.2 系統(tǒng)概述大學(xué)畢業(yè)生人才信息網(wǎng)主要分為三個(gè)模塊:個(gè)人簡(jiǎn)歷生成與管理子系統(tǒng)、求職信息的發(fā)布與管理子系統(tǒng)、招聘信息的發(fā)布與管理子系統(tǒng)。
其主要功能是包括:用戶在線注冊(cè),生成個(gè)人簡(jiǎn)歷,發(fā)布招聘信息和發(fā)布求職信息本文作者主要負(fù)責(zé)的是招聘信息的發(fā)布與管理子系統(tǒng)§ 2.3 系統(tǒng)的功能性需求§ 2.3.1系統(tǒng)總體流程圖大學(xué)畢業(yè)生人才信息網(wǎng)系統(tǒng)的用戶分為學(xué)生用戶和企業(yè)用戶,用戶注冊(cè)登陸以后,可以分別進(jìn)行創(chuàng)建簡(jiǎn)歷、發(fā)布和管理求職信息、查詢企業(yè)及其招聘信息、發(fā)布和管理招聘信息、查詢學(xué)生及其求職信息系統(tǒng)的總體工作流程如圖2.1所示:企業(yè)用戶1.1身份驗(yàn)證2.1注冊(cè)2.2登陸2.3管理信息3.1注冊(cè)3.2登陸3.3管理信息學(xué)生D1 系統(tǒng)信息記錄企業(yè)信息學(xué)生信息圖2.1 系統(tǒng)總體流程圖§ 2.3.2 招聘信息的發(fā)布與管理系統(tǒng)功能需求招聘信息的發(fā)布與管理子系統(tǒng)的系統(tǒng)流程圖如圖2.2所示,功能實(shí)現(xiàn)如下:企業(yè)首先進(jìn)入大學(xué)畢業(yè)生人才信息網(wǎng),如果企業(yè)還不是該網(wǎng)站的會(huì)員,就先注冊(cè)然后登陸,如果企業(yè)已是會(huì)員則直接登陸企業(yè)注冊(cè)時(shí),要登記自己企業(yè)的基本信息,經(jīng)管理員核實(shí)無(wú)誤后注冊(cè)成功基本信息中除了會(huì)員賬號(hào)、密碼外,其他信息都可以被其他用戶查看企業(yè)登陸后,可以進(jìn)行職位管理,即可以根據(jù)需要,新增職位信息;可以對(duì)已發(fā)布的職位信息進(jìn)行修改、刪除等操作企業(yè)還可以進(jìn)行人才查詢,在查詢?nèi)瞬艜r(shí),可以直接在網(wǎng)頁(yè)上根據(jù)專業(yè)、姓名等條件查詢自己需要的人才,還可以收藏人才信息,同時(shí)還可以向人才發(fā)送郵件。
企業(yè)信息記錄”主要記錄企業(yè)的基本信息學(xué)生信息記錄”主要記錄學(xué)生的基本信息學(xué)生信息會(huì)員D2 學(xué)生信息記錄企業(yè)1.1驗(yàn)證身份非會(huì)員1.2注冊(cè)1.3登陸D1 企業(yè)信息記錄1.4發(fā)布招聘信息1.5發(fā)布招聘信息1.6查詢?nèi)瞬艌D2.2 招聘信息的發(fā)布與管理系統(tǒng)流程圖§ 2.3.3 數(shù)據(jù)描述在招聘信息的發(fā)布與管理系統(tǒng)中,主要要用到以下幾個(gè)表所記錄的數(shù)據(jù)信息:企業(yè)信息表(結(jié)構(gòu)見(jiàn)附錄),主要記錄企業(yè)的基本信息,主要包括:企業(yè)ID、密碼、企業(yè)名稱、聯(lián)系人、聯(lián)系電話、E-mail、企業(yè)地址、所在城市、企業(yè)規(guī)模、經(jīng)營(yíng)性質(zhì)、所屬行業(yè)、企業(yè)簡(jiǎn)介;職位表(結(jié)構(gòu)見(jiàn)附錄),主要記錄企業(yè)發(fā)布的招聘信息,主要包括:職位名稱、企業(yè)名稱、工作地點(diǎn)、招聘人數(shù)、招聘要求、發(fā)布日期、截止日期、月薪;收藏夾表(結(jié)構(gòu)見(jiàn)附錄),主要記錄企業(yè)收藏的人才信息,主要包括:學(xué)生ID、姓名、性別、年齡、專業(yè)、學(xué)歷、企業(yè)ID;信件表(結(jié)構(gòu)見(jiàn)附錄),主要記錄學(xué)生和企業(yè)發(fā)送的站內(nèi)信件信息,主要包括:收信人、發(fā)信人、標(biāo)題、發(fā)信時(shí)間、內(nèi)容、編號(hào),企業(yè)可以從中收到學(xué)生發(fā)給自己的站內(nèi)信件§ 2.3.4 系統(tǒng)的準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。
在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,要充分考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足用戶對(duì)信息處理的需求系統(tǒng)的查詢功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重企業(yè)和學(xué)生都希望從該網(wǎng)站上查詢到自己需要的信息,其查詢結(jié)果的準(zhǔn)確性在很大程度上決定了招聘和求職活動(dòng)的成敗§ 2.4 系統(tǒng)的非功能性需求§ 2.4.1 用戶界面需求對(duì)用戶友好,且對(duì)鼠標(biāo)鍵盤(pán)提供支持,保持一致性,設(shè)計(jì)完整的對(duì)話過(guò)程,提供簡(jiǎn)單的操作過(guò)程和錯(cuò)誤處理機(jī)制§ 2.4.2 運(yùn)行需求操作系統(tǒng):Windows NT/2000/XP/2003/98/95數(shù)據(jù)庫(kù)管理系統(tǒng):SQL Server硬件要求:CPU P3, 64M以上 RAM第3章 系統(tǒng)方案設(shè)計(jì)§ 3.1 系統(tǒng)總體設(shè)計(jì)根據(jù)需求分析,大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)可以分解為前端網(wǎng)頁(yè)和后臺(tái)數(shù)據(jù)庫(kù)兩大部分采用的數(shù)據(jù)庫(kù)是Microsoft SQL Server 2000,建立JOB.MDF數(shù)據(jù)庫(kù)文件網(wǎng)頁(yè)的制作采用JSP技術(shù),以Dreamweaver為開(kāi)發(fā)工具,并使用先進(jìn)的數(shù)據(jù)庫(kù)連接池技術(shù)JDBC對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)§ 3.2 系統(tǒng)模塊§ 3.2.1 系統(tǒng)模塊劃分根據(jù)系統(tǒng)的功能,可以將系統(tǒng)劃分如圖3.1所示。
企業(yè)信息管理基本信息管理招聘信息管理郵件管理人才信息管理修改注冊(cè)信息發(fā)布招聘信息修改招聘信息刪除招聘信息發(fā)送信件收取信件查詢?nèi)瞬判畔⑹詹厝瞬判畔D3.1 模塊劃分圖§ 3.2.2 功能模塊描述對(duì)于圖3.1中的各個(gè)功能模塊具體描述如下:基本信息管理:企業(yè)注冊(cè)登陸后,即可以對(duì)自己的注冊(cè)信息進(jìn)行修改招聘信息管理:企業(yè)登陸以后,即可發(fā)布、修改、刪除自己的招聘信息郵件管理:企業(yè)登陸以后,即可向自己感興趣的人才發(fā)送招聘信件,同時(shí)還可以收取其他人發(fā)給自己的信件,或者回復(fù),或者刪除人才信息管理:企業(yè)登陸以后,即可根據(jù)自己的要求查詢?nèi)瞬判畔ⅲ瑢?duì)于感興趣的人才,還可以將其收藏到人才收藏夾中,當(dāng)然,企業(yè)也可以把收藏夾中的任意一條人才信息刪除掉以上所有功能都是對(duì)會(huì)員企業(yè)即已注冊(cè)的會(huì)員而言,對(duì)于還沒(méi)有注冊(cè)的企業(yè),他們就不能享有這些權(quán)限,他們只能查看基本的學(xué)生求職信息和網(wǎng)站中公布的消息§ 3.3 系統(tǒng)方案論證§ 3.3.1 技術(shù)分析數(shù)據(jù)庫(kù)Microsoft SQL Server 2000提供了各種各樣的特性來(lái)管理數(shù)據(jù),它是真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu),它提供圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫(kù)管理更加直觀、簡(jiǎn)單,為JSP提供了專門(mén)的連接數(shù)據(jù)庫(kù)的ODBC-JDBC驅(qū)動(dòng)程序[8]。
JSP的優(yōu)點(diǎn)是可移植性,支持多種平臺(tái),可以使用多種WEB服務(wù)器(Apache,IIS,PWS),JSP組件是跨平臺(tái)可重用的,可伸縮性好JSP?技術(shù)由于使用可重用的組件和標(biāo)簽取代了對(duì)頁(yè)面本身腳本語(yǔ)言的嚴(yán)重依賴,JSP?技術(shù)大大加快了開(kāi)發(fā)的速度,減少了系統(tǒng)開(kāi)發(fā)的工作量 [9]Tomcat服務(wù)器支持全部JSP以及Servel規(guī)范,是免費(fèi)的Web服務(wù)器,它不僅提供了靜態(tài)的HTML網(wǎng)頁(yè),它也可以運(yùn)行程序來(lái)響應(yīng)用戶的請(qǐng)求,并將動(dòng)態(tài)產(chǎn)生的結(jié)果傳回到用戶的瀏覽器因此將Tomcat當(dāng)作Web服務(wù)器是很好的選擇§ 3.3.2 功能分析此次開(kāi)發(fā)的大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)具有企業(yè)注冊(cè)、登陸、管理基本信息、管理招聘信息、管理郵件、管理人才信息和管理員管理會(huì)員信息等功能其中除了管理郵件以外的其他功能與目前社會(huì)上的其它招聘網(wǎng)站都是大相徑庭管理郵件功能的特別之處在于,在本系統(tǒng)中,企業(yè)和人才之間發(fā)送的都是站內(nèi)郵件,而并沒(méi)有使用郵件服務(wù)器,這就大大減小了系統(tǒng)的運(yùn)行負(fù)擔(dān),同時(shí)還加快了系統(tǒng)的響應(yīng)時(shí)間另外,這還大大方便了用戶因?yàn)樵谄渌衅妇W(wǎng)站中,用戶雖然可以在本站中發(fā)送E-mail,但是收取E-mail時(shí)就得到其它E-mail網(wǎng)站去讀取。
在本網(wǎng)站中,用戶在站內(nèi)就可以完成發(fā)送和收取E-mail動(dòng)作另外,本系統(tǒng)對(duì)用戶友好,且對(duì)鼠標(biāo)鍵盤(pán)提供支持,保持一致性,設(shè)計(jì)了完整的對(duì)話過(guò)程,提供了簡(jiǎn)單的操作過(guò)程和錯(cuò)誤處理機(jī)制所有用戶都可以在提示下輕松的完成所有的操作過(guò)程§ 3.3.3 經(jīng)濟(jì)分析與傳統(tǒng)的招聘方式相比,本系統(tǒng)在擴(kuò)大了企業(yè)招聘信息的發(fā)布范圍,增大了企業(yè)選擇人才的機(jī)會(huì)的同時(shí),還縮短了企業(yè)招聘的周期,簡(jiǎn)化了企業(yè)招聘的過(guò)程,更是減少了企業(yè)在招聘中的開(kāi)銷(xiāo)它是方便企業(yè)進(jìn)行招聘的良好平臺(tái)另外,系統(tǒng)運(yùn)行所需要的硬件條件在今天是很容易得到滿足的作為其開(kāi)發(fā)和運(yùn)行的軟件工具也是再普遍不過(guò)了的因此,此系統(tǒng)在經(jīng)濟(jì)上是完全可行的 因此,從以上的分析可以看出,數(shù)據(jù)庫(kù)采用Microsoft SQL Server 2000,網(wǎng)頁(yè)設(shè)計(jì)采用JSP技術(shù),以Tomcat為Web服務(wù)器,采用B/S體系結(jié)構(gòu)設(shè)計(jì)本系統(tǒng),無(wú)論是在功能上、技術(shù)上還是在經(jīng)濟(jì)上都是不錯(cuò)的設(shè)計(jì)方案第4章 系統(tǒng)實(shí)現(xiàn)§ 4.1 概論本系統(tǒng)從功能設(shè)計(jì)上大概可以分為以下幾個(gè)模塊:企業(yè)注冊(cè)登陸、管理基本信息、管理招聘信息、管理郵件、管理人才信息、管理員管理會(huì)員信息和首頁(yè)等§ 4.2 首頁(yè)的設(shè)計(jì)在系統(tǒng)的首頁(yè)中,企業(yè)可以看到部分求職招聘信息和站內(nèi)消息。
首頁(yè)包括登陸窗口、信息窗口等實(shí)現(xiàn)的方法是,利用JSP技術(shù),以Dreamweaver為開(kāi)發(fā)工具進(jìn)行網(wǎng)頁(yè)設(shè)計(jì)設(shè)計(jì)好的部分界面效果如圖4.1所示圖4.1 首頁(yè)效果圖其中,“企業(yè)招聘”和“人才求職”所顯示的信息是直接從數(shù)據(jù)庫(kù)中讀取的讀取的方法是利用JDBC-ODBC橋訪問(wèn)SQL數(shù)據(jù)庫(kù)[10],從JOB數(shù)據(jù)庫(kù)的“職位”表的最后一條記錄開(kāi)始,連續(xù)向前讀出十條記錄顯示在網(wǎng)頁(yè)上JDBC驅(qū)動(dòng)程序是:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);顯示企業(yè)招聘信息的關(guān)鍵代碼如下: try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串 conn=DriverManager.getConnection("jdbc:odbc:job"); stmt=conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,//指定ResultSet對(duì)象是可滾動(dòng)的 //指定ResultSet對(duì)象不能修改數(shù)據(jù)庫(kù)ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery("SELECT*FROM 職位");//數(shù)據(jù)查詢 //設(shè)置輸出的表格邊框?qū)挾葹?,即在網(wǎng)頁(yè)上不顯示表格out.print("
"+rs.getString("職位名稱")+" | "); out.print(""+rs.getString("企業(yè)名稱")+" |
實(shí)現(xiàn)顯示人才求職信息的代碼與上面的相似§ 4.3 企業(yè)注冊(cè)登陸的實(shí)現(xiàn)由于在本系統(tǒng)中考慮到會(huì)員與非會(huì)員之間權(quán)限不同的問(wèn)題,企業(yè)要在本系統(tǒng)中完成招聘活動(dòng),就必須注冊(cè)為會(huì)員并登陸 § 4.3.1 實(shí)現(xiàn)注冊(cè)新到的非會(huì)員企業(yè)進(jìn)入首頁(yè)以后,選擇“新用戶注冊(cè)”,即進(jìn)入了注冊(cè)界面注冊(cè)界面如圖4.2所示企業(yè)將自己的注冊(cè)信息一一填寫(xiě)在該頁(yè)面中,為了防止企業(yè)在填寫(xiě)注冊(cè)信息時(shí)漏填信息,特編寫(xiě)了check()函數(shù),函數(shù)代碼如下:圖4.2 注冊(cè)界面注冊(cè)實(shí)現(xiàn)方法是,利用request.getParameter(“”)方法把企業(yè)填入注冊(cè)界面的信息一一讀取下來(lái),并把值一一賦給定義好的自變量(如:qiyeid1,qiyepassword1,qiyename1等)。
然后通過(guò)下面的程序把這些值寫(xiě)入JOB數(shù)據(jù)庫(kù)的“企業(yè)注冊(cè)”表里實(shí)現(xiàn)注冊(cè)的關(guān)鍵代碼如下:<% //定義一系列自變量 try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串 conn = DriverManager.getConnection("jdbc:odbc:job"); //結(jié)果集類型和結(jié)果集并發(fā)性為默認(rèn)值 stmt=conn.createStatement(); //檢測(cè)企業(yè)注冊(cè)的會(huì)員號(hào)是否已存在rs=stmt.executeQuery("SELECT * FROM 企業(yè)注冊(cè) where 會(huì)員ID ='"+qiyeid1+"'"); while(rs.next()){ count++; } if(count>0){ //如果企業(yè)注冊(cè)的會(huì)員號(hào)已存在,則轉(zhuǎn)如企業(yè)注冊(cè)失敗界面,并提示企業(yè) response.sendRedirect("zhuceshibai1.htm"); } //實(shí)現(xiàn)注冊(cè),注冊(cè)信息寫(xiě)入數(shù)據(jù)庫(kù)pst = conn.prepareStatement("INSERT INTO 企業(yè)注冊(cè)(會(huì)員ID, 密碼, 企業(yè)名稱, 聯(lián)系人, 聯(lián)系電話, [E-mail], 企業(yè)地址, 所在城市, 企業(yè)規(guī)模, 經(jīng)營(yíng)性質(zhì), 所屬行業(yè), 企業(yè)簡(jiǎn)介)"+ "VALUES('"+qiyeid1+"','"+qiyepassword1+"','"+qiyename1+"','"+lianxiren1+"','"+lianxiphone1+"','"+qiyeyouxiang1+"','"+qiyeaddress1+"','"+qiyechengshi1+"','"+qiyeguimo1+"','"+qiyexingzhi1+"','"+qiyehangye1+"','"+qiyejianjie1+"')"); pst.executeUpdate(); //提示企業(yè)注冊(cè)成功 response.sendRedirect("zhuceok1.htm"); }…… %>§ 4.3.2 實(shí)現(xiàn)登陸會(huì)員企業(yè)進(jìn)入首頁(yè)后,在登陸窗口中填寫(xiě)好用戶名和密碼,選擇“單位/企業(yè)”,然后登陸。
實(shí)現(xiàn)的方法是利用request.getParameter(“”)方法把企業(yè)填入登陸框的用戶名和密碼讀取下來(lái),并把值賦給定義好的自變量myuserid和myuserpass,然后到JOB數(shù)據(jù)庫(kù)的“企業(yè)注冊(cè)”表中查詢是否存在用戶名和密碼與企業(yè)輸入的相同的記錄,如果有(即rs.next()值為真)的話,則登陸成功,否則登陸失敗實(shí)現(xiàn)登陸的關(guān)鍵代碼如下:<% //提示企業(yè)要選擇登陸類型,否則登陸失敗if(type.equals("選擇登陸類型")) { response.sendRedirect("denglushibai1.htm");} if(type.equals("單位/企業(yè)")) { try{ … //獲得企業(yè)從界面中輸入的用戶名和密碼 myuserid=request.getParameter("userid"); myuserpass=request.getParameter("userpassword"); if(myuserid==null) myuserid=""; //SQL查詢語(yǔ)句 mySQL = "SELECT * FROM 企業(yè)注冊(cè)where 會(huì)員ID ='"+myuserid+"'"; mySQL = mySQL + "and 密碼 ='"+myuserpass+"'"; try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串 conn=DriverManager.getConnection("jdbc:odbc:job"); //結(jié)果集類型和結(jié)果集并發(fā)性為默認(rèn)值 stmt=conn.createStatement(); rs=stmt.executeQuery(mySQL);//數(shù)據(jù)查詢 // rs.next()方法是移動(dòng)到結(jié)果集的下一行,如果結(jié)果集沒(méi)有下//一行返回false,否則返回true while(rs.next()) { count++;} //登陸成功,進(jìn)入企業(yè)信息管理,同時(shí)將企業(yè)用戶名保存在//session對(duì)象中 if(count>0) { session.setAttribute("name1",myuserid); response.sendRedirect("qiyeguanli.jsp"); } //登陸失敗,提示用戶名或密碼不正確 else response.sendRedirect("denglushibai2.htm"); } § 4.4 管理基本信息的實(shí)現(xiàn)企業(yè)登陸以后,即進(jìn)入了企業(yè)信息管理控制臺(tái)。
當(dāng)企業(yè)需要修改自己的注冊(cè)信息的時(shí)候,可以選擇“修改注冊(cè)信息”企業(yè)即進(jìn)入修改注冊(cè)信息的界面,界面如圖4.3所示在這個(gè)頁(yè)面里,利用JDBC-ODBC橋訪問(wèn)SQL數(shù)據(jù)庫(kù),從JOB數(shù)據(jù)庫(kù)的“企業(yè)注冊(cè)”表里,利用SQL語(yǔ)句SELECT * FROM 企業(yè)注冊(cè)where 會(huì)員ID ='"+myuserid+"'把該企業(yè)舊的信息記錄全部讀出來(lái)顯示在界面里其中從表中讀出數(shù)據(jù)的語(yǔ)句是rs.getString(),另外myuserid的值等于企業(yè)登陸是保存在session對(duì)象中的值,實(shí)現(xiàn)的語(yǔ)句是myuserid=(String)session.getAttribute("name1") 圖4.3 修改注冊(cè)信息界面企業(yè)可以根據(jù)需要修改界面中的某一些信息,實(shí)現(xiàn)修改注冊(cè)信息的方法是利用request.getParameter(“”)方法把修改注冊(cè)信息界面的信息一一讀取下來(lái),并把值一一賦給定義好的自變量(如:qiyepassword2,qiyename1等),然后利用JDBC-ODBC橋連接SQL數(shù)據(jù)庫(kù),更新“企業(yè)注冊(cè)”表中會(huì)員ID等于str的這條記錄其中str=(String)session.getAttribute("name1")。
更新時(shí),要首先檢測(cè)用戶輸入的舊密碼是否與原來(lái)的密碼一致,只有當(dāng)密碼一致的時(shí)候,才能執(zhí)行修改,否則修改失敗實(shí)現(xiàn)的關(guān)鍵代碼如下:<% …… try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串 conn = DriverManager.getConnection("jdbc:odbc:job"); //得到當(dāng)前事務(wù)設(shè)定的值 defaultCommit=conn.getAutoCommit(); //將自動(dòng)事務(wù)設(shè)置為false conn.setAutoCommit(false); stmt=conn.createStatement(); //檢測(cè)輸入的舊密碼是否正確,若不正確,修改失敗 rs=stmt.executeQuery("SELECT*FROM 企業(yè)注冊(cè) where 會(huì)員ID ='"+str+"'and 密碼='"+qiyepassword2+"'" ); if(!rs.next()){ response.sendRedirect("xiugaishibai.htm");} //數(shù)據(jù)操作,更新“企業(yè)注冊(cè)”表中的記錄stmt.executeUpdate("UPDATE 企業(yè)注冊(cè) SET 密碼='"+qiyepassword3+"',企業(yè)名稱='"+qiyename1+"',聯(lián)系人='"+lianxiren1+"',聯(lián)系電話='"+lianxiphone1+"',[E-mail]='"+qiyeyouxiang1+"',企業(yè)地址='"+qiyeaddress1+"',所在城市='"+qiyechengshi1+"',企業(yè)規(guī)模='"+qiyeguimo1+"',經(jīng)營(yíng)性質(zhì)='"+qiyexingzhi1+"',所屬行業(yè)='"+qiyehangye1+"',企業(yè)簡(jiǎn)介='"+qiyejianjie1+"'WHERE 會(huì)員ID='"+str+"'"); mit(); response.sendRedirect("xiugaiok1.htm");} catch(Exception e){ //如果發(fā)生異常,實(shí)現(xiàn)回滾 conn.rollback(); e.printStackTrace(); } %>§ 4.5管理招聘信息的實(shí)現(xiàn)企業(yè)進(jìn)入信息管理控制臺(tái)后,可以發(fā)布、修改、刪除招聘信息。
§ 4.5.1 實(shí)現(xiàn)發(fā)布招聘信息企業(yè)根據(jù)頁(yè)面提示填寫(xiě)招聘信息(職位名稱、企業(yè)名稱、工作地點(diǎn)、招聘人數(shù)、招聘要求、發(fā)布日期、截止日期),其中職位名稱為下拉菜單,規(guī)范了企業(yè)填寫(xiě)的職位名稱填寫(xiě)的招聘信息通過(guò)企業(yè)點(diǎn)擊“發(fā)布”而保存到數(shù)據(jù)庫(kù)中頁(yè)面如圖4.4所示圖4.4 發(fā)布招聘信息界面實(shí)現(xiàn)的方法是利用request.getParameter(“”)方法把發(fā)布招聘信息界面的信息一一讀取下來(lái),并把值一一賦給定義好的自變量(如: zhiweiname1,qiyename1,gongzuodidian1等),然后利用JDBC-ODBC橋連接SQL數(shù)據(jù)庫(kù),把數(shù)據(jù)插入到“職位”表中關(guān)鍵代碼如下:try{ … //檢測(cè)企業(yè)是否以自己的名義發(fā)布招聘信息rs=stmt.executeQuery("SELECT * FROM企業(yè)注冊(cè)where 企業(yè)名稱 ='"+qiyename1+"'");// rs.next()方法是移動(dòng)到結(jié)果集的下一行,如果結(jié)果集沒(méi)有下//一行返回false,否則返回truewhile(rs.next()){ count++; } // rs.next()方法返回了false,企業(yè)沒(méi)有以自己的名義發(fā)布招聘信息,所//以不能發(fā)布招聘信息 if(count==0){ response.sendRedirect("fabushibai1.htm"); } // rs.next()方法返回了true,將數(shù)據(jù)插入到數(shù)據(jù)庫(kù),企業(yè)成功發(fā)布招聘信//息 pst = conn.prepareStatement("INSERT INTO 職位(職位名稱,企業(yè)名稱,工作地點(diǎn),招聘人數(shù),招聘要求,發(fā)布日期,截止日期)"+"VALUES (?,?,?,?,?,?,?)"); pst.setString(1, zhiweiname1); …//其余代碼類似 pst.executeUpdate(); response.sendRedirect("fabuok1.htm");} catch(SQLException e){ System.out.println(e.getMessage());}§ 4.5.2 實(shí)現(xiàn)修改招聘信息企業(yè)修改招聘信息時(shí),首先進(jìn)入如圖4.5所示的界面。
在該頁(yè)面中,利用JDBC-ODBC橋訪問(wèn)SQL數(shù)據(jù)庫(kù),從JOB數(shù)據(jù)庫(kù)的“職位”表中讀出所有企業(yè)名稱為該企業(yè)名稱的記錄,并把這些記錄顯示在頁(yè)面中在每一條記錄后面都設(shè)置一個(gè)單選按鈕,設(shè)置單選按鈕的程序是:當(dāng)企業(yè)選擇修改某條招聘信息時(shí),則從JOB數(shù)據(jù)庫(kù)的“職位”表中根據(jù)招聘職位和企業(yè)名稱讀出該條招聘信息的詳細(xì)信息顯示在網(wǎng)頁(yè)中,由企業(yè)決定修改其中的某些信息讀出某條招聘信息記錄的SQL語(yǔ)句是String str=(String)session.getAttribute("name2") String zhiweiname = request.getParameter("zhiweiname")SELECT*FROM 職位 WHERE 職位名稱='"+zhiweiname+"'and 企業(yè)名稱='"+str+"'圖4.5 修改招聘信息界面實(shí)現(xiàn)企業(yè)修改招聘信息的方法是,利用request.getParameter(“”)方法把企業(yè)修改后的招聘信息從頁(yè)面中一一讀取下來(lái),并把值一一賦給定義好的自變量(如: zhiwei1,qiyename1,didian1等),然后利用JDBC-ODBC橋連接SQL數(shù)據(jù)庫(kù),更新“職位”表中職位名稱等于zhiwei1企業(yè)名稱等于str的這條記錄,其中str=(String)session.getAttribute("name2")。
實(shí)現(xiàn)修改功能的關(guān)鍵代碼為: //SQL語(yǔ)句mySQL="UPDATE 職位 SET 職位名稱='"+zhiwei1+"',企業(yè)名稱='"+qiyename1+"',工作地點(diǎn)='"+didian1+"',招聘人數(shù)='"+renshu1+"',招聘要求='"+yaoqiu1+"',發(fā)布日期='"+faburiqi1+"',截止日期='"+jiezhiriqi1+"'WHERE 職位名稱='"+zhiwei1+"'"; mySQL=mySQL+"and 企業(yè)名稱='"+str+"'"; try{ … try{//相應(yīng)JDBC驅(qū)動(dòng)程序的連接串 conn = DriverManager.getConnection("jdbc:odbc:job");//得到當(dāng)前事務(wù)設(shè)定的值 defaultCommit=conn.getAutoCommit();//將自動(dòng)事務(wù)設(shè)置為false conn.setAutoCommit(false); stmt=conn.createStatement(); stmt.executeUpdate(mySQL); //數(shù)據(jù)操作,更新“職位”表中的記錄 mit(); response.sendRedirect("xiugaizhaopinok1.htm");} catch(Exception e){ conn.rollback();//如果發(fā)生異常,實(shí)現(xiàn)回滾 e.printStackTrace();}§ 4.5.3 實(shí)現(xiàn)刪除招聘企業(yè)刪除招聘信息時(shí),首先進(jìn)入如圖4.6所示的界面。
在該頁(yè)面中,利用JDBC-ODBC橋訪問(wèn)SQL數(shù)據(jù)庫(kù),從JOB數(shù)據(jù)庫(kù)的“職位”表中讀出所有企業(yè)名稱為該企業(yè)名稱的記錄,并把這些記錄顯示在頁(yè)面中在每一條記錄后面都設(shè)置一個(gè)復(fù)選按鈕,設(shè)置復(fù)選按鈕的程序是:企業(yè)可以選中其中一條或多條記錄,將其刪除圖4.6刪除招聘信息界面實(shí)現(xiàn)刪除招聘信息功能的方法是,當(dāng)企業(yè)選中某些記錄并確定刪除時(shí),后臺(tái)程序通過(guò)企業(yè)的操作,得到這幾條記錄的關(guān)鍵信息職位名稱,實(shí)現(xiàn)這一功能的語(yǔ)句是:for(int i=0;i<100;i++){ if(request.getParameter("inputs"+i)!= null){ zhiweiname[cnt] = request.getParameter("inputs"+i); cnt++;}}得到這一信息后,就可以根據(jù)職位名稱和企業(yè)名稱從JOB數(shù)據(jù)庫(kù)的“職位”表中刪除這些招聘記錄其中企業(yè)名稱是通過(guò)str=(String)session.getAttribute("name2")得到的。
實(shí)現(xiàn)刪除功能的關(guān)鍵代碼為://實(shí)現(xiàn)SQL語(yǔ)句 for(int xx=0;xx § 4.6.1 實(shí)現(xiàn)發(fā)送郵件企業(yè)在管理控制臺(tái)中選擇“發(fā)郵件”,即進(jìn)入如圖4.7所示的界面,在次頁(yè)面中已經(jīng)把發(fā)信人即企業(yè)的郵箱從數(shù)據(jù)庫(kù)中讀取了出來(lái),企業(yè)只需填寫(xiě)郵件的內(nèi)容即可讀取發(fā)信人郵箱的方法是利用JDBC-ODBC橋訪問(wèn)SQL數(shù)據(jù)庫(kù),從JOB數(shù)據(jù)庫(kù)的“企業(yè)注冊(cè)”表中查詢?cè)撈髽I(yè)的記錄,然后把企業(yè)的E-mail地址顯示在發(fā)信人欄了實(shí)現(xiàn)查詢的方法是:SELECT*FROM 企業(yè)注冊(cè) WHERE 會(huì)員ID='"+str+"'str=(String)session.getAttribute("name1")發(fā)信人郵箱=rs.getString(“E-mail”)圖4.7 發(fā)送信件界面實(shí)現(xiàn)發(fā)送郵件的方法是,利用request.getParameter(“”)方法把頁(yè)面上企業(yè)填入信息讀取下來(lái),再把值賦給自變量(如:shouname1,faname1等),然后利用JDBC-ODBC橋連接SQL數(shù)據(jù)庫(kù),把這些值插入到JOB數(shù)據(jù)庫(kù)的“信件”表里關(guān)鍵代碼是:try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串 conn = DriverManager.getConnection("jdbc:odbc:job"); stmt=conn.createStatement(); //執(zhí)行SQL語(yǔ)句,將數(shù)據(jù)插入到信件表pst = conn.prepareStatement("INSERT INTO 信件(收信人, 發(fā)信人, 標(biāo)題, 發(fā)信時(shí)間, 內(nèi)容)"+"VALUES ('"+shouname1+"','"+faname1+"','"+title1+"','"+shijian1+"','"+mailtext1+"')"); pst.executeUpdate(); response.sendRedirect("mailbox.jsp");}郵件發(fā)送后,自動(dòng)回到我的信箱界面。 § 4.6.2 實(shí)現(xiàn)讀取、回復(fù)、刪除郵件企業(yè)在我的信箱界面(圖4.8)里,可以看都所有發(fā)給自己的郵件此界面是利用JDBC-ODBC橋訪問(wèn)SQL數(shù)據(jù)庫(kù),把JOB數(shù)據(jù)庫(kù)中的“信件”表里的所有收信人信箱為該企業(yè)信箱的郵件讀取出來(lái)顯示在頁(yè)面里,并在每一條記錄的標(biāo)題上增加超連接,在其后面增加“回復(fù)”和“刪除”鍵在標(biāo)題上增加超連接的方法是:回復(fù) 刪除 企業(yè)可以查看郵件內(nèi)容,回復(fù)或刪除郵件圖4.8 我的信箱界面企業(yè)只要單擊某個(gè)郵件的標(biāo)題,即可讀取該郵件的全部?jī)?nèi)容實(shí)現(xiàn)的方法是,當(dāng)企業(yè)單擊某個(gè)郵件的標(biāo)題時(shí),程序則利用request.getParameter("")方法獲得郵件編號(hào),這時(shí),由于編碼方式的問(wèn)題,通過(guò)request.getParameter("")方法獲得的值是亂碼,這還需要下面的程序轉(zhuǎn)換編碼格式,使其轉(zhuǎn)換為正常形式[11]:byte b。
