版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 前 言</b></p><p> 當(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)上娛樂等活動(dòng),人類的許多社會(huì)活動(dòng)正在向網(wǎng)絡(luò)化發(fā)展。招聘和求職是一項(xiàng)對(duì)信息的需求量比較大的活動(dòng),傳統(tǒng)的招聘求職方式已經(jīng)越來越不能滿
2、足人們的要求,網(wǎng)上招聘和求職已經(jīng)越來越為人們所熟悉。建設(shè)一個(gè)招聘網(wǎng)站也必然得到廣大招聘單位和求職者的強(qiáng)烈支持。</p><p> 傳統(tǒng)的招聘方式是,招聘單位參加由人才中心(或人才市場(chǎng))組織的招聘會(huì),或者是招聘單位到高校進(jìn)行專場(chǎng)招聘,或者是招聘單位通過媒體發(fā)布招聘廣告。這些招聘方式都有一些弊端,那就是招聘單位的招聘信息發(fā)布范圍被限制,招聘信息只被一定區(qū)域的求職者所得知,供招聘單位比較選擇的人才也有限,這在一定程度
3、上就阻礙了招聘單位招聘到更符合自己要求的人才。而網(wǎng)上招聘就不同了,它可以通過互聯(lián)網(wǎng)把招聘單位大招聘信息發(fā)布到全國(guó)各地,這樣就會(huì)有更多的求職者接收到招聘信息,就會(huì)有更多的人才供招聘單位選擇,招聘單位也就有機(jī)會(huì)選拔到最符合自己要求的人才[1]。</p><p> 本文則介紹了建設(shè)大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)的完整過程。其中分別從需求分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)等幾方面介紹了怎樣實(shí)現(xiàn)企業(yè)在大學(xué)畢業(yè)生就業(yè)信息網(wǎng)中進(jìn)行
4、注冊(cè)、發(fā)布和管理招聘信息、查詢和收藏人才信息以及向人才發(fā)送招聘信等。</p><p><b> 第1章 緒 論</b></p><p> 1.1 課題背景和意義</p><p> 全國(guó)普通高校的擴(kuò)招從1999年開始,四年之后的2003年高校擴(kuò)招還在繼續(xù),增長(zhǎng)數(shù)量和種類也在擴(kuò)大,大批的大學(xué)畢業(yè)生面臨找工作難的問題。這一問題在大學(xué)也不例外,
5、大量的畢業(yè)生的求職信息不能及時(shí)的被招聘單位所得知,畢業(yè)生也沒有辦法知道更多的招聘信息。這一問題的其它原因還有:許多招聘會(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ì)一大重要問題。</p&g
6、t;<p> 因此,這就需要一種既方便學(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è)的支持。</p><p> 1.2 目前國(guó)內(nèi)就業(yè)網(wǎng)站的現(xiàn)狀</p><p> 目前,國(guó)內(nèi)的幾大網(wǎng)
7、站都提供了就業(yè)方面的網(wǎng)頁,國(guó)內(nèi)也有專門的就業(yè)網(wǎng)站,但是這些網(wǎng)站的側(cè)重點(diǎn)不是僅為畢業(yè)生服務(wù)的,而是提供了廣泛的就業(yè)導(dǎo)航,針對(duì)性較弱。 </p><p> 1.3 系統(tǒng)總體要求</p><p> 此次設(shè)計(jì)的大學(xué)畢業(yè)生人才信息網(wǎng)是在計(jì)算機(jī)網(wǎng)絡(luò)上,利用數(shù)據(jù)庫和先進(jìn)的開發(fā)平臺(tái),配置一定的軟件和硬件,開發(fā)的一個(gè)網(wǎng)上招聘和求職系統(tǒng)。該系統(tǒng)具有開放的體系結(jié)構(gòu)、易擴(kuò)充、易維護(hù)、具有良好人機(jī)交互界面的
8、特點(diǎn)。它主要分為三個(gè)模塊:個(gè)人簡(jiǎn)歷生成與管理子系統(tǒng)、求職信息的發(fā)布與管理子系統(tǒng)、招聘信息的發(fā)布與管理子系統(tǒng)。其主要功能是包括:用戶在線注冊(cè),生成個(gè)人簡(jiǎn)歷,發(fā)布招聘信息和發(fā)布求職信息。</p><p> 本文作者負(fù)責(zé)的是招聘信息的發(fā)布與管理子系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)的主要內(nèi)容是:通過網(wǎng)上調(diào)研了解一個(gè)人才信息網(wǎng)的運(yùn)作過程;實(shí)現(xiàn)對(duì)招聘單位的基本信息進(jìn)行注冊(cè)和管理;實(shí)現(xiàn)招聘單位發(fā)布招聘信息和管理招聘信息;實(shí)現(xiàn)招聘單位在站內(nèi)收發(fā)
9、郵件;實(shí)現(xiàn)招聘單位對(duì)學(xué)生信息的查詢和收藏;實(shí)現(xiàn)管理員對(duì)站內(nèi)會(huì)員信息的管理。</p><p> 1.4 開發(fā)工具介紹</p><p> 本次設(shè)計(jì)的實(shí)現(xiàn)主要需要JSP和Dreamweaver以及Microsoft SQL Server 2000等相關(guān)技術(shù)和工具的支持。</p><p><b> 1.4.1 JSP</b></p>
10、<p> JavaServer Pages (JSP) 技術(shù)提供了一種簡(jiǎn)單快速的方法來創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的 Web 頁面。由業(yè)界處于領(lǐng)先地位的 Sun 公司制定了相關(guān)的 JSP 技術(shù)規(guī)范,該規(guī)范定義了如何在服務(wù)器和 JSP 頁面間進(jìn)行交互,還描述了頁面的格式和語法。</p><p> JSP
11、60;技術(shù)的工作原理:JSP 頁面使用 XML 標(biāo)簽和 scriptlets(一種使用 Java 語言編寫的腳本代碼),封裝了生成頁面內(nèi)容的邏輯。它將各種格式的標(biāo)簽(HTML 或者 XML)直接傳遞回響應(yīng)頁面。通過這種方式,JSP 頁面實(shí)現(xiàn)了頁面邏輯與其設(shè)計(jì)和顯示的分離。JSP 技術(shù)是 Java 系列技術(shù)的一部分。J
12、SP 頁面被編譯成 servlets,并可能調(diào)用 JavaBeans 組件(beans) 或 Enterprise JavaBeans 組件(企業(yè) beans),以便在服務(wù)器端處理[2]。</p><p> JSP 頁面是 web 開發(fā)人員使用 JSP 內(nèi)置標(biāo)簽和自定義標(biāo)
13、簽,結(jié)合其他靜態(tài)標(biāo)簽(HTML 或 XML 標(biāo)簽)生成的頁面。JSP 頁面的擴(kuò)展名為 .jsp 或.jspx,web 服務(wù)器通過此擴(kuò)展名通知 JSP 引擎處理該頁面中的元素。通過部署描述文件 web.xml,也可使用其他擴(kuò)展名和 JSP 引擎聯(lián)系。通過 JSP 引擎解釋 JSP
14、60;頁面中的標(biāo)簽,生成所需內(nèi)容。JSP 頁面通常被編譯成 Java 平臺(tái) servlet 類。因此,JSP 頁面的運(yùn)行需要有能支持 Java 平臺(tái) servlet 規(guī)范的 Java 虛擬機(jī)。JSP 頁面實(shí)際上只是在第一次被調(diào)用的時(shí)候被編譯一次。頁面被編譯成 Java Servlet
15、60;類 ,并駐留在服務(wù)器內(nèi)存中,這樣以后調(diào)用該頁面時(shí)將很快[3]。</p><p> JSP的優(yōu)點(diǎn)是:可移植性,支持多種平臺(tái),可以使用多種WEB服務(wù)器(Apache,IIS,PWS);使用JAVA腳本語言,面向?qū)ο蟮木幊趟枷?;JSP組件是跨平臺(tái)可重用的;可伸縮性好,可由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡、事務(wù)處理及消息處理;多種功能強(qiáng)大的開發(fā)工具。因此,JSP 技術(shù)在構(gòu)建可升級(jí)的基于
16、web 的應(yīng)用程序時(shí)扮演了重要角色[4]。</p><p> 1.4.2 Dreamweaver</p><p> Dream weaver是Macromedia公司出產(chǎn)的一套專業(yè)級(jí)的網(wǎng)頁編輯軟件,它使用圖形用戶接口,能輕而易舉地以所見即所得的方式編輯網(wǎng)頁,具有即時(shí)編輯HTML源代碼、制作Dynamic HTML的源代碼、層疊式樣式表(Cascading Style Shee
17、t,CSS)、Layer、Timeline(時(shí)間軸)、Library(共享庫)、Template(模板)、網(wǎng)站管理功能,它是一套脫離一般風(fēng)頁編輯器框架的億秀網(wǎng)頁管理與制作工具,能夠最大限度減輕網(wǎng)站管理員的負(fù)荷。</p><p> Dreamweaver具有強(qiáng)大的網(wǎng)頁編輯功能,它集成了完善的文字編輯窗口,方便用戶編輯網(wǎng)頁源代碼,并能方便地對(duì)JavaScript進(jìn)行編輯、修改等操作。同步化的網(wǎng)頁設(shè)計(jì)與HTML源代碼
18、的查看功能,增加了用戶操作的易用性、全新的版面配置設(shè)計(jì)、對(duì)象自動(dòng)分類管理、與Fireworks4的充分結(jié)合、提供內(nèi)置的Flash文字與按鈕等功能,更加強(qiáng)化了Dreamweaver的實(shí)用性與可操作性[5]。</p><p> 1.4.3 Microsoft SQL Server 2000</p><p> SQL Server 2000是Microsoft公司推出的大型數(shù)據(jù)庫管理系統(tǒng),它
19、建立在成熟而強(qiáng)大的關(guān)系型基礎(chǔ)上,可以很好的支持客戶機(jī)/服務(wù)器網(wǎng)絡(luò)模式,能夠滿足各種類型的企事業(yè)單位對(duì)構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)庫的需求。它具有易用性、可擴(kuò)展性、可靠性等特點(diǎn),是目前使用最為廣泛、普及率最高的數(shù)據(jù)庫管理系統(tǒng)之一[6]。</p><p> 1.4.4 Tomcat</p><p> Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器。在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,只需將WAR放到
20、Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓。在瀏覽器中訪問這個(gè)應(yīng)用的Jsp時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能[7]。</p><p> 第2章 系統(tǒng)需求分析</p><p><b> 2.1
21、 目的和背景</b></p><p><b> 2.1.1目的</b></p><p> 定義總體要求,作為用戶和開發(fā)人員之間相互了解的基礎(chǔ);提供性能要求、初步設(shè)計(jì)和對(duì)用戶影響的信息,作為開發(fā)人員進(jìn)行設(shè)計(jì)和實(shí)施的基礎(chǔ);作為總體驗(yàn)證和確認(rèn)的依據(jù)。</p><p> 系統(tǒng)介紹,系統(tǒng)的功能性需求,系統(tǒng)的非功能性需求。</p&g
22、t;<p> 2.1.2 開發(fā)背景</p><p> 招聘和求職已經(jīng)成為當(dāng)今社會(huì)一大重要問題。大學(xué)每年都有數(shù)千畢業(yè)生走出學(xué)校,面臨求職,而每年也有許多企業(yè)需要招聘大量的人才。開發(fā)此系統(tǒng)就是為了方便企業(yè)和個(gè)人更好的在網(wǎng)上進(jìn)行招聘和求職活動(dòng)。</p><p><b> 2.2 系統(tǒng)概述</b></p><p> 大學(xué)畢業(yè)生人才
23、信息網(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)。</p><p> 2.3 系統(tǒng)的功能性需求</p><p> 2.3.1系統(tǒng)總體流程圖</p><p> 大學(xué)畢業(yè)生人才信息網(wǎng)系統(tǒng)的
24、用戶分為學(xué)生用戶和企業(yè)用戶,用戶注冊(cè)登陸以后,可以分別進(jìn)行創(chuàng)建簡(jiǎn)歷、發(fā)布和管理求職信息、查詢企業(yè)及其招聘信息、發(fā)布和管理招聘信息、查詢學(xué)生及其求職信息。系統(tǒng)的總體工作流程如圖2.1所示:</p><p> 圖2.1 系統(tǒng)總體流程圖</p><p> 2.3.2 招聘信息的發(fā)布與管理系統(tǒng)功能需求</p><p> 招聘信息的發(fā)布與管理子系統(tǒng)的系統(tǒng)流程圖如圖2.2
25、所示,功能實(shí)現(xiàn)如下:</p><p> 企業(yè)首先進(jìn)入大學(xué)畢業(yè)生人才信息網(wǎng),如果企業(yè)還不是該網(wǎng)站的會(huì)員,就先注冊(cè)然后登陸,如果企業(yè)已是會(huì)員則直接登陸。</p><p> 企業(yè)注冊(cè)時(shí),要登記自己企業(yè)的基本信息,經(jīng)管理員核實(shí)無誤后注冊(cè)成功。基本信息中除了會(huì)員賬號(hào)、密碼外,其他信息都可以被其他用戶查看。</p><p> 企業(yè)登陸后,可以進(jìn)行職位管理,即可以根據(jù)需要,
26、新增職位信息;可以對(duì)已發(fā)布的職位信息進(jìn)行修改、刪除等操作。企業(yè)還可以進(jìn)行人才查詢,在查詢?nèi)瞬艜r(shí),可以直接在網(wǎng)頁上根據(jù)專業(yè)、姓名等條件查詢自己需要的人才,還可以收藏人才信息,同時(shí)還可以向人才發(fā)送郵件。</p><p> “企業(yè)信息記錄”主要記錄企業(yè)的基本信息。</p><p> “學(xué)生信息記錄”主要記錄學(xué)生的基本信息。</p><p> 圖2.2 招聘信息的發(fā)布
27、與管理系統(tǒng)流程圖</p><p> 2.3.3 數(shù)據(jù)描述</p><p> 在招聘信息的發(fā)布與管理系統(tǒng)中,主要要用到以下幾個(gè)表所記錄的數(shù)據(jù)信息:</p><p> 企業(yè)信息表(結(jié)構(gòu)見附錄),主要記錄企業(yè)的基本信息,主要包括:企業(yè)ID、密碼、企業(yè)名稱、聯(lián)系人、聯(lián)系電話、E-mail、企業(yè)地址、所在城市、企業(yè)規(guī)模、經(jīng)營(yíng)性質(zhì)、所屬行業(yè)、企業(yè)簡(jiǎn)介;</p>
28、<p> 職位表(結(jié)構(gòu)見附錄),主要記錄企業(yè)發(fā)布的招聘信息,主要包括:職位名稱、企業(yè)名稱、工作地點(diǎn)、招聘人數(shù)、招聘要求、發(fā)布日期、截止日期、月薪;</p><p> 收藏夾表(結(jié)構(gòu)見附錄),主要記錄企業(yè)收藏的人才信息,主要包括:學(xué)生ID、姓名、性別、年齡、專業(yè)、學(xué)歷、企業(yè)ID;</p><p> 信件表(結(jié)構(gòu)見附錄),主要記錄學(xué)生和企業(yè)發(fā)送的站內(nèi)信件信息,主要包括:收信
29、人、發(fā)信人、標(biāo)題、發(fā)信時(shí)間、內(nèi)容、編號(hào),企業(yè)可以從中收到學(xué)生發(fā)給自己的站內(nèi)信件。</p><p> 2.3.4 系統(tǒng)的準(zhǔn)確性和及時(shí)性</p><p> 系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足用戶對(duì)信息處理的需求。</p><p> 系統(tǒng)的查詢功能對(duì)于整個(gè)系統(tǒng)
30、的功能和性能完成舉足輕重。企業(yè)和學(xué)生都希望從該網(wǎng)站上查詢到自己需要的信息,其查詢結(jié)果的準(zhǔn)確性在很大程度上決定了招聘和求職活動(dòng)的成敗。</p><p> 2.4 系統(tǒng)的非功能性需求</p><p> 2.4.1 用戶界面需求</p><p> 對(duì)用戶友好,且對(duì)鼠標(biāo)鍵盤提供支持,保持一致性,設(shè)計(jì)完整的對(duì)話過程,提供簡(jiǎn)單的操作過程和錯(cuò)誤處理機(jī)制。</p>
31、<p> 2.4.2 運(yùn)行需求</p><p> 操作系統(tǒng):Windows NT/2000/XP/2003/98/95</p><p> 數(shù)據(jù)庫管理系統(tǒng):SQL Server</p><p> 硬件要求:CPU P3, 64M以上 RAM</p><p> 第3章 系統(tǒng)方案設(shè)計(jì)</p><p&g
32、t; 3.1 系統(tǒng)總體設(shè)計(jì)</p><p> 根據(jù)需求分析,大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)可以分解為前端網(wǎng)頁和后臺(tái)數(shù)據(jù)庫兩大部分。采用的數(shù)據(jù)庫是Microsoft SQL Server 2000,建立JOB.MDF數(shù)據(jù)庫文件。網(wǎng)頁的制作采用JSP技術(shù),以Dreamweaver為開發(fā)工具,并使用先進(jìn)的數(shù)據(jù)庫連接池技術(shù)JDBC對(duì)數(shù)據(jù)庫進(jìn)行訪問。</p><p><b> 3
33、.2 系統(tǒng)模塊</b></p><p> 3.2.1 系統(tǒng)模塊劃分</p><p> 根據(jù)系統(tǒng)的功能,可以將系統(tǒng)劃分如圖3.1所示。</p><p> 圖3.1 模塊劃分圖</p><p> 3.2.2 功能模塊描述</p><p> 對(duì)于圖3.1中的各個(gè)功能模塊具體描述如下:</p>
34、<p> 基本信息管理:企業(yè)注冊(cè)登陸后,即可以對(duì)自己的注冊(cè)信息進(jìn)行修改。</p><p> 招聘信息管理:企業(yè)登陸以后,即可發(fā)布、修改、刪除自己的招聘信息。</p><p> 郵件管理:企業(yè)登陸以后,即可向自己感興趣的人才發(fā)送招聘信件,同時(shí)還可以收取其他人發(fā)給自己的信件,或者回復(fù),或者刪除。</p><p> 人才信息管理:企業(yè)登陸以后,即可根
35、據(jù)自己的要求查詢?nèi)瞬判畔?,?duì)于感興趣的人才,還可以將其收藏到人才收藏夾中,當(dāng)然,企業(yè)也可以把收藏夾中的任意一條人才信息刪除掉。</p><p> 以上所有功能都是對(duì)會(huì)員企業(yè)即已注冊(cè)的會(huì)員而言,對(duì)于還沒有注冊(cè)的企業(yè),他們就不能享有這些權(quán)限,他們只能查看基本的學(xué)生求職信息和網(wǎng)站中公布的消息。</p><p> 3.3 系統(tǒng)方案論證</p><p> 3.3.1
36、技術(shù)分析</p><p> 數(shù)據(jù)庫Microsoft SQL Server 2000提供了各種各樣的特性來管理數(shù)據(jù),它是真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu),它提供圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡(jiǎn)單,為JSP提供了專門的連接數(shù)據(jù)庫的ODBC-JDBC驅(qū)動(dòng)程序[8]。</p><p> JSP的優(yōu)點(diǎn)是可移植性,支持多種平臺(tái),可以使用多種WEB服務(wù)器(Apache,IIS,PWS
37、),JSP組件是跨平臺(tái)可重用的,可伸縮性好。JSP 技術(shù)由于使用可重用的組件和標(biāo)簽取代了對(duì)頁面本身腳本語言的嚴(yán)重依賴,JSP 技術(shù)大大加快了開發(fā)的速度,減少了系統(tǒng)開發(fā)的工作量 [9]。</p><p> Tomcat服務(wù)器支持全部JSP以及Servel規(guī)范,是免費(fèi)的Web服務(wù)器,它不僅提供了靜態(tài)的HTML網(wǎng)頁,它也可以運(yùn)行程序來響應(yīng)用戶的請(qǐng)求,并將動(dòng)態(tài)產(chǎn)生的結(jié)果傳回到用戶的瀏覽器。因此將To
38、mcat當(dāng)作Web服務(wù)器是很好的選擇。</p><p> 3.3.2 功能分析</p><p> 此次開發(fā)的大學(xué)畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)具有企業(yè)注冊(cè)、登陸、管理基本信息、管理招聘信息、管理郵件、管理人才信息和管理員管理會(huì)員信息等功能。其中除了管理郵件以外的其他功能與目前社會(huì)上的其它招聘網(wǎng)站都是大相徑庭。管理郵件功能的特別之處在于,在本系統(tǒng)中,企業(yè)和人才之間發(fā)送的都是站內(nèi)郵件,而并
39、沒有使用郵件服務(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)作。</p><p> 另外,本系統(tǒng)對(duì)用戶友好,且對(duì)鼠標(biāo)鍵盤提供支持,保持一致性,設(shè)計(jì)了完整的對(duì)話過程,提供了簡(jiǎn)單的操作過程和錯(cuò)誤處理機(jī)制
40、。所有用戶都可以在提示下輕松的完成所有的操作過程。</p><p> 3.3.3 經(jīng)濟(jì)分析</p><p> 與傳統(tǒng)的招聘方式相比,本系統(tǒng)在擴(kuò)大了企業(yè)招聘信息的發(fā)布范圍,增大了企業(yè)選擇人才的機(jī)會(huì)的同時(shí),還縮短了企業(yè)招聘的周期,簡(jiǎn)化了企業(yè)招聘的過程,更是減少了企業(yè)在招聘中的開銷。它是方便企業(yè)進(jìn)行招聘的良好平臺(tái)。</p><p> 另外,系統(tǒng)運(yùn)行所需要的硬件條件在
41、今天是很容易得到滿足的。作為其開發(fā)和運(yùn)行的軟件工具也是再普遍不過了的。因此,此系統(tǒng)在經(jīng)濟(jì)上是完全可行的。</p><p> 因此,從以上的分析可以看出,數(shù)據(jù)庫采用Microsoft SQL Server 2000,網(wǎng)頁設(shè)計(jì)采用JSP技術(shù),以Tomcat為Web服務(wù)器,采用B/S體系結(jié)構(gòu)設(shè)計(jì)本系統(tǒng),無論是在功能上、技術(shù)上還是在經(jīng)濟(jì)上都是不錯(cuò)的設(shè)計(jì)方案。</p><p><b>
42、 第4章 系統(tǒng)實(shí)現(xiàn)</b></p><p><b> 4.1 概論</b></p><p> 本系統(tǒng)從功能設(shè)計(jì)上大概可以分為以下幾個(gè)模塊:企業(yè)注冊(cè)登陸、管理基本信息、管理招聘信息、管理郵件、管理人才信息、管理員管理會(huì)員信息和首頁等。</p><p><b> 4.2 首頁的設(shè)計(jì)</b></p>
43、;<p> 在系統(tǒng)的首頁中,企業(yè)可以看到部分求職招聘信息和站內(nèi)消息。首頁包括登陸窗口、信息窗口等。實(shí)現(xiàn)的方法是,利用JSP技術(shù),以Dreamweaver為開發(fā)工具進(jìn)行網(wǎng)頁設(shè)計(jì)。設(shè)計(jì)好的部分界面效果如圖4.1所示。</p><p> 圖4.1 首頁效果圖</p><p> 其中,“企業(yè)招聘”和“人才求職”所顯示的信息是直接從數(shù)據(jù)庫中讀取的。讀取的方法是利用JDBC-ODB
44、C橋訪問SQL數(shù)據(jù)庫[10],從JOB數(shù)據(jù)庫的“職位”表的最后一條記錄開始,連續(xù)向前讀出十條記錄顯示在網(wǎng)頁上。JDBC驅(qū)動(dòng)程序是:</p><p> Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);</p><p> 顯示企業(yè)招聘信息的關(guān)鍵代碼如下: </p><p> try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串&l
45、t;/p><p> conn=DriverManager.getConnection("jdbc:odbc:job");</p><p> stmt=conn.createStatement(</p><p> ResultSet.TYPE_SCROLL_INSENSITIVE,//指定ResultSet對(duì)象是可滾動(dòng)的</p>&
46、lt;p> //指定ResultSet對(duì)象不能修改數(shù)據(jù)庫</p><p> ResultSet.CONCUR_READ_ONLY); </p><p> rs=stmt.executeQuery("SELECT*FROM 職位");//數(shù)據(jù)查詢</p><p> //設(shè)置輸出的表格邊框?qū)挾葹?,即在網(wǎng)頁上不顯示表格</p>
47、;<p> out.print("<TABLE BORDER='0'>");</p><p> //使用ResultSet的absolute()方法直接定位到最后一條記錄上</p><p> rs.absolute(-1);</p><p> //從最后一條記錄開始,連續(xù)輸出十條記錄</p&
48、gt;<p> for(int i=1;i<=10;i++){</p><p> //在顯示的記錄上添加超連接</p><p> out.print("<TR><TD><a href='view1.jsp?id="+rs.getString("職位名</p><p> 稱
49、")+"'>"+rs.getString("職位名稱")+"</a></TD>");</p><p> out.print("<TD>"+rs.getString("企業(yè)名稱")+"</TD></TR>");&
50、lt;/p><p> if(!rs.previous()) break; }</p><p> out.print("</TABLE>"); } ……%></p><p> 用戶如果對(duì)某條信息比較感興趣,只要單擊該條記錄的超連接就可以查看詳細(xì)信息。實(shí)現(xiàn)顯示人才求職信息的代碼與上面的相似。</p><p>
51、; 4.3 企業(yè)注冊(cè)登陸的實(shí)現(xiàn)</p><p> 由于在本系統(tǒng)中考慮到會(huì)員與非會(huì)員之間權(quán)限不同的問題,企業(yè)要在本系統(tǒng)中完成招聘活動(dòng),就必須注冊(cè)為會(huì)員并登陸。 </p><p> 4.3.1 實(shí)現(xiàn)注冊(cè)</p><p> 新到的非會(huì)員企業(yè)進(jìn)入首頁以后,選擇“新用戶注冊(cè)”,即進(jìn)入了注冊(cè)界面。注冊(cè)界面如圖4.2所示。企業(yè)將自己的注冊(cè)信息一一填寫在該頁面中,為了防
52、止企業(yè)在填寫注冊(cè)信息時(shí)漏填信息,特編寫了check()函數(shù),函數(shù)代碼如下:</p><p> <SCRIPT language=javascript></p><p><b> <!--</b></p><p> function datacheck(){</p><p> if(frmRegi
53、st.qiyeid.value==""){</p><p> window.alert("請(qǐng)輸入會(huì)員帳號(hào)");</p><p> document.frmRegist.elements(0).focus();</p><p><b> return;}</b></p><p>
54、; …//其余的代碼類似</p><p> frmRegist.submit();</p><p> } --> </SCRIPT></p><p><b> 圖4.2 注冊(cè)界面</b></p><p> 注冊(cè)實(shí)現(xiàn)方法是,利用request.getParameter(“”)方法把企業(yè)填入注冊(cè)界
55、面的信息一一讀取下來,并把值一一賦給定義好的自變量(如:qiyeid1,qiyepassword1,qiyename1等)。然后通過下面的程序把這些值寫入JOB數(shù)據(jù)庫的“企業(yè)注冊(cè)”表里。實(shí)現(xiàn)注冊(cè)的關(guān)鍵代碼如下:</p><p><b> <%</b></p><p> //定義一系列自變量</p><p> try{ //相應(yīng)JDB
56、C驅(qū)動(dòng)程序的連接串</p><p> conn = DriverManager.getConnection("jdbc:odbc:job");</p><p> //結(jié)果集類型和結(jié)果集并發(fā)性為默認(rèn)值</p><p> stmt=conn.createStatement();</p><p> //檢測(cè)企業(yè)注冊(cè)的會(huì)員
57、號(hào)是否已存在</p><p> rs=stmt.executeQuery("SELECT * FROM 企業(yè)注冊(cè) where 會(huì)員ID ='"+qiyeid1+"'");</p><p> while(rs.next()){ count++; }</p><p> if(count>0){&l
58、t;/p><p> //如果企業(yè)注冊(cè)的會(huì)員號(hào)已存在,則轉(zhuǎn)如企業(yè)注冊(cè)失敗界面,并提示企業(yè)</p><p> response.sendRedirect("zhuceshibai1.htm"); }</p><p> //實(shí)現(xiàn)注冊(cè),注冊(cè)信息寫入數(shù)據(jù)庫</p><p> pst = conn.prepareStateme
59、nt("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+"
60、9;,'"+lianxiren1+"','"+lianxiphone1+"','"+qiyeyouxiang1+"','"+qiyeaddress1+"','"+qiyechengshi1+"','"+qiyeguimo1+"
61、9;,'"+qiyexingzhi1+"','"+qiyehangye1+"','"+qiyejianjie1+"')");</p><p> pst.executeUpdate(); </p><p> //提示企業(yè)注冊(cè)成功</p><p>
62、 response.sendRedirect("zhuceok1.htm");}</p><p><b> ……%></b></p><p> 4.3.2 實(shí)現(xiàn)登陸</p><p> 會(huì)員企業(yè)進(jìn)入首頁后,在登陸窗口中填寫好用戶名和密碼,選擇“單位/企業(yè)”,然后登陸。實(shí)現(xiàn)的方法是利用request.getP
63、arameter(“”)方法把企業(yè)填入登陸框的用戶名和密碼讀取下來,并把值賦給定義好的自變量myuserid和myuserpass,然后到JOB數(shù)據(jù)庫的“企業(yè)注冊(cè)”表中查詢是否存在用戶名和密碼與企業(yè)輸入的相同的記錄,如果有(即rs.next()值為真)的話,則登陸成功,否則登陸失敗。實(shí)現(xiàn)登陸的關(guān)鍵代碼如下:</p><p> <% //提示企業(yè)要選擇登陸類型,否則登陸失敗</p><
64、p> if(type.equals("選擇登陸類型")) {</p><p> response.sendRedirect("denglushibai1.htm");}</p><p> if(type.equals("單位/企業(yè)")) {</p><p><b> try{ …&l
65、t;/b></p><p> //獲得企業(yè)從界面中輸入的用戶名和密碼</p><p> myuserid=request.getParameter("userid");</p><p> myuserpass=request.getParameter("userpassword"); </p><
66、;p> if(myuserid==null)</p><p> myuserid="";</p><p><b> //SQL查詢語句</b></p><p> mySQL = "SELECT * FROM 企業(yè)注冊(cè)where 會(huì)員ID ='"+myuserid+"'
67、;";</p><p> mySQL = mySQL + "and 密碼 ='"+myuserpass+"'";</p><p> try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串</p><p> conn=DriverManager.getConnection("jdbc:odbc:jo
68、b");</p><p> //結(jié)果集類型和結(jié)果集并發(fā)性為默認(rèn)值</p><p> stmt=conn.createStatement();</p><p> rs=stmt.executeQuery(mySQL);//數(shù)據(jù)查詢</p><p> // rs.next()方法是移動(dòng)到結(jié)果集的下一行,如果結(jié)果集沒有下//一行返
69、回false,否則返回true</p><p> while(rs.next()) { </p><p><b> count++;}</b></p><p> //登陸成功,進(jìn)入企業(yè)信息管理,同時(shí)將企業(yè)用戶名保存在//session對(duì)象中</p><p> if(count>0) {</p>
70、<p> session.setAttribute("name1",myuserid);</p><p> response.sendRedirect("qiyeguanli.jsp"); }</p><p> //登陸失敗,提示用戶名或密碼不正確</p><p> else response.send
71、Redirect("denglushibai2.htm"); } </p><p> 4.4 管理基本信息的實(shí)現(xiàn)</p><p> 企業(yè)登陸以后,即進(jìn)入了企業(yè)信息管理控制臺(tái)。當(dāng)企業(yè)需要修改自己的注冊(cè)信息的時(shí)候,可以選擇“修改注冊(cè)信息”。企業(yè)即進(jìn)入修改注冊(cè)信息的界面,界面如圖4.3所示。</p><p> 在這個(gè)頁面里,
72、利用JDBC-ODBC橋訪問SQL數(shù)據(jù)庫,從JOB數(shù)據(jù)庫的“企業(yè)注冊(cè)”表里,利用SQL語句SELECT * FROM 企業(yè)注冊(cè)where 會(huì)員ID ='"+myuserid+"'把該企業(yè)舊的信息記錄全部讀出來顯示在界面里。其中從表中讀出數(shù)據(jù)的語句是rs.getString(),另外myuserid的值等于企業(yè)登陸是保存在session對(duì)象中的值,實(shí)現(xiàn)的語句是myuserid=(String)sessi
73、on.getAttribute("name1") 。</p><p> 圖4.3 修改注冊(cè)信息界面</p><p> 企業(yè)可以根據(jù)需要修改界面中的某一些信息,實(shí)現(xiàn)修改注冊(cè)信息的方法是利用request.getParameter(“”)方法把修改注冊(cè)信息界面的信息一一讀取下來,并把值一一賦給定義好的自變量(如:qiyepassword2,qiyename1等),然后利
74、用JDBC-ODBC橋連接SQL數(shù)據(jù)庫,更新“企業(yè)注冊(cè)”表中會(huì)員ID等于str的這條記錄。其中str=(String)session.getAttribute("name1")。更新時(shí),要首先檢測(cè)用戶輸入的舊密碼是否與原來的密碼一致,只有當(dāng)密碼一致的時(shí)候,才能執(zhí)行修改,否則修改失敗。實(shí)現(xiàn)的關(guān)鍵代碼如下:</p><p><b> <% ……</b></p&g
75、t;<p> try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串</p><p> conn = DriverManager.getConnection("jdbc:odbc:job");</p><p> //得到當(dāng)前事務(wù)設(shè)定的值</p><p> defaultCommit=conn.getAutoCommit();</p
76、><p> //將自動(dòng)事務(wù)設(shè)置為false</p><p> conn.setAutoCommit(false);</p><p> stmt=conn.createStatement();</p><p> //檢測(cè)輸入的舊密碼是否正確,若不正確,修改失敗</p><p> rs=stmt.executeQue
77、ry("SELECT*FROM 企業(yè)注冊(cè) where 會(huì)員ID ='"+str+"'and 密碼='"+qiyepassword2+"'" );</p><p> if(!rs.next()){</p><p> response.sendRedirect("xiugaishibai
78、.htm");}</p><p> //數(shù)據(jù)操作,更新“企業(yè)注冊(cè)”表中的記錄</p><p> stmt.executeUpdate("UPDATE 企業(yè)注冊(cè) SET 密碼='"+qiyepassword3+"',企業(yè)名稱='"+qiyename1+"',聯(lián)系人='"+lian
79、xiren1+"',聯(lián)系電話='"+lianxiphone1+"',[E-mail]='"+qiyeyouxiang1+"',企業(yè)地址='"+qiyeaddress1+"',所在城市='"+qiyechengshi1+"',企業(yè)規(guī)模='"+qiyeguimo1
80、+"',經(jīng)營(yíng)性質(zhì)='"+qiyexingzhi1+"',所屬行業(yè)='"+qiyehangye1+"',企業(yè)簡(jiǎn)介='"+qiyejianjie1+"'WHERE 會(huì)員ID='"+str+"'");</p><p> conn.commit();
81、</p><p> response.sendRedirect("xiugaiok1.htm");}</p><p> catch(Exception e){ //如果發(fā)生異常,實(shí)現(xiàn)回滾</p><p> conn.rollback();</p><p> e.printStackTrace(); } %>&
82、lt;/p><p> 4.5管理招聘信息的實(shí)現(xiàn)</p><p> 企業(yè)進(jìn)入信息管理控制臺(tái)后,可以發(fā)布、修改、刪除招聘信息。</p><p> 4.5.1 實(shí)現(xiàn)發(fā)布招聘信息</p><p> 企業(yè)根據(jù)頁面提示填寫招聘信息(職位名稱、企業(yè)名稱、工作地點(diǎn)、招聘人數(shù)、招聘要求、發(fā)布日期、截止日期),其中職位名稱為下拉菜單,規(guī)范了企業(yè)填寫的職位名稱
83、。填寫的招聘信息通過企業(yè)點(diǎn)擊“發(fā)布”而保存到數(shù)據(jù)庫中。頁面如圖4.4所示。</p><p> 圖4.4 發(fā)布招聘信息界面</p><p> 實(shí)現(xiàn)的方法是利用request.getParameter(“”)方法把發(fā)布招聘信息界面的信息一一讀取下來,并把值一一賦給定義好的自變量(如: zhiweiname1,qiyename1,gongzuodidian1等),然后利用JDBC-ODBC橋
84、連接SQL數(shù)據(jù)庫,把數(shù)據(jù)插入到“職位”表中。關(guān)鍵代碼如下:</p><p><b> try{ …</b></p><p> //檢測(cè)企業(yè)是否以自己的名義發(fā)布招聘信息</p><p> rs=stmt.executeQuery("SELECT * FROM企業(yè)注冊(cè)where 企業(yè)名稱 ='"+qiyename
85、1+"'");</p><p> // rs.next()方法是移動(dòng)到結(jié)果集的下一行,如果結(jié)果集沒有下</p><p> //一行返回false,否則返回true</p><p> while(rs.next()){ count++; }</p><p> // rs.next()方法返回了false,企
86、業(yè)沒有以自己的名義發(fā)布招聘信息,所//以不能發(fā)布招聘信息</p><p> if(count==0){</p><p> response.sendRedirect("fabushibai1.htm"); }</p><p> // rs.next()方法返回了true,將數(shù)據(jù)插入到數(shù)據(jù)庫,企業(yè)成功發(fā)布招聘信//息</p>
87、<p> pst = conn.prepareStatement("INSERT INTO 職位(職位名稱,企業(yè)名稱,工作地點(diǎn),招聘人數(shù),招聘要求,發(fā)布日期,截止日期)"+"VALUES (?,?,?,?,?,?,?)");</p><p> pst.setString(1, zhiweiname1);</p><p><b&g
88、t; …//其余代碼類似</b></p><p> pst.executeUpdate(); </p><p> response.sendRedirect("fabuok1.htm");}</p><p> catch(SQLException e){</p><p> System.out.pri
89、ntln(e.getMessage());}</p><p> 4.5.2 實(shí)現(xiàn)修改招聘信息</p><p> 企業(yè)修改招聘信息時(shí),首先進(jìn)入如圖4.5所示的界面。在該頁面中,利用JDBC-ODBC橋訪問SQL數(shù)據(jù)庫,從JOB數(shù)據(jù)庫的“職位”表中讀出所有企業(yè)名稱為該企業(yè)名稱的記錄,并把這些記錄顯示在頁面中。在每一條記錄后面都設(shè)置一個(gè)單選按鈕,設(shè)置單選按鈕的程序是:</p>
90、<p> <input name="zhiweiname" type="radio" value="<%=zhiweiname[i]%>">。</p><p> 當(dāng)企業(yè)選擇修改某條招聘信息時(shí),則從JOB數(shù)據(jù)庫的“職位”表中根據(jù)招聘職位和企業(yè)名稱讀出該條招聘信息的詳細(xì)信息顯示在網(wǎng)頁中,由企業(yè)決定修改其中的某些信息。讀出
91、某條招聘信息記錄的SQL語句是</p><p> String str=(String)session.getAttribute("name2")</p><p> String zhiweiname = request.getParameter("zhiweiname")</p><p> SELECT*FROM 職位
92、 WHERE 職位名稱='"+zhiweiname+"'and 企業(yè)名稱='"+str+"'</p><p> 圖4.5 修改招聘信息界面</p><p> 實(shí)現(xiàn)企業(yè)修改招聘信息的方法是,利用request.getParameter(“”)方法把企業(yè)修改后的招聘信息從頁面中一一讀取下來,并把值一一賦給定義好的自變量
93、(如: zhiwei1,qiyename1,didian1等),然后利用JDBC-ODBC橋連接SQL數(shù)據(jù)庫,更新“職位”表中職位名稱等于zhiwei1企業(yè)名稱等于str的這條記錄,其中str=(String)session.getAttribute("name2")。實(shí)現(xiàn)修改功能的關(guān)鍵代碼為:</p><p><b> //SQL語句</b></p>&
94、lt;p> mySQL="UPDATE 職位 SET 職位名稱='"+zhiwei1+"',企業(yè)名稱='"+qiyename1+"',工作地點(diǎn)='"+didian1+"',招聘人數(shù)='"+renshu1+"',招聘要求='"+yaoqiu1+"
95、9;,發(fā)布日期='"+faburiqi1+"',截止日期='"+jiezhiriqi1+"'WHERE 職位名稱='"+zhiwei1+"'";</p><p> mySQL=mySQL+"and 企業(yè)名稱='"+str+"'";</
96、p><p><b> try{ …</b></p><p> try{//相應(yīng)JDBC驅(qū)動(dòng)程序的連接串</p><p> conn = DriverManager.getConnection("jdbc:odbc:job");</p><p> //得到當(dāng)前事務(wù)設(shè)定的值</p>&l
97、t;p> defaultCommit=conn.getAutoCommit();</p><p> //將自動(dòng)事務(wù)設(shè)置為false</p><p> conn.setAutoCommit(false);</p><p> stmt=conn.createStatement();</p><p> stmt.executeUpd
98、ate(mySQL); //數(shù)據(jù)操作,更新“職位”表中的記錄</p><p> conn.commit();</p><p> response.sendRedirect("xiugaizhaopinok1.htm");}</p><p> catch(Exception e){</p><p> conn.rol
99、lback();//如果發(fā)生異常,實(shí)現(xiàn)回滾</p><p> e.printStackTrace();}</p><p> 4.5.3 實(shí)現(xiàn)刪除招聘</p><p> 企業(yè)刪除招聘信息時(shí),首先進(jìn)入如圖4.6所示的界面。在該頁面中,利用JDBC-ODBC橋訪問SQL數(shù)據(jù)庫,從JOB數(shù)據(jù)庫的“職位”表中讀出所有企業(yè)名稱為該企業(yè)名稱的記錄,并把這些記錄顯示在頁面中。
100、在每一條記錄后面都設(shè)置一個(gè)復(fù)選按鈕,設(shè)置復(fù)選按鈕的程序是:</p><p> <input type="checkbox" name="inputs<%=i%>" value="<%=zhiweiname[i]%>"></p><p> 企業(yè)可以選中其中一條或多條記錄,將其刪除。</p
101、><p> 圖4.6刪除招聘信息界面</p><p> 實(shí)現(xiàn)刪除招聘信息功能的方法是,當(dāng)企業(yè)選中某些記錄并確定刪除時(shí),后臺(tái)程序通過企業(yè)的操作,得到這幾條記錄的關(guān)鍵信息職位名稱,實(shí)現(xiàn)這一功能的語句是:</p><p> for(int i=0;i<100;i++){ </p><p> if(request.getParameter(
102、"inputs"+i)!= null){</p><p> zhiweiname[cnt] = request.getParameter("inputs"+i); </p><p><b> cnt++;}}</b></p><p> 得到這一信息后,就可以根據(jù)職位名稱和企業(yè)名稱從JOB數(shù)據(jù)庫的“職
103、位”表中刪除這些招聘記錄。其中企業(yè)名稱是通過str=(String)session.getAttribute("name2")得到的。實(shí)現(xiàn)刪除功能的關(guān)鍵代碼為:</p><p><b> //實(shí)現(xiàn)SQL語句</b></p><p> for(int xx=0;xx<cnt;xx++){ </p><p> myS
104、QL[xx] = "DELETE FROM 職位 WHERE 職位名稱='"+zhiweiname[xx]+"'";</p><p> mySQL[xx] = mySQL[xx] + "and 企業(yè)名稱='"+str+"'";} </p><p> try{ //相應(yīng)JDB
105、C驅(qū)動(dòng)程序的連接串</p><p> conn=DriverManager.getConnection("jdbc:odbc:job");</p><p> defaultCommit=conn.getAutoCommit();//得到當(dāng)前事務(wù)設(shè)定的值</p><p> conn.setAutoCommit(false); //將自動(dòng)事務(wù)設(shè)
106、置為false</p><p> stmt=conn.createStatement();</p><p> for(int yy=0;yy<cnt;yy++){</p><p> stmt.executeUpdate(mySQL[yy]);//執(zhí)行SQL語句,刪除記錄 }</p><p> conn.commit();<
107、/p><p> response.sendRedirect("shanchu.jsp");}</p><p> 4.6 管理郵件的實(shí)現(xiàn)</p><p> 在這一部分中,企業(yè)發(fā)送站內(nèi)郵件、收取回復(fù)郵件和刪除郵件。</p><p> 4.6.1 實(shí)現(xiàn)發(fā)送郵件</p><p> 企業(yè)在管理控制臺(tái)中選
108、擇“發(fā)郵件”,即進(jìn)入如圖4.7所示的界面,在次頁面中已經(jīng)把發(fā)信人即企業(yè)的郵箱從數(shù)據(jù)庫中讀取了出來,企業(yè)只需填寫郵件的內(nèi)容即可。讀取發(fā)信人郵箱的方法是利用JDBC-ODBC橋訪問SQL數(shù)據(jù)庫,從JOB數(shù)據(jù)庫的“企業(yè)注冊(cè)”表中查詢?cè)撈髽I(yè)的記錄,然后把企業(yè)的E-mail地址顯示在發(fā)信人欄了。實(shí)現(xiàn)查詢的方法是:SELECT*FROM 企業(yè)注冊(cè) WHERE 會(huì)員ID='"+str+"'</p>&
109、lt;p> str=(String)session.getAttribute("name1")</p><p> 發(fā)信人郵箱=rs.getString(“E-mail”)</p><p> 圖4.7 發(fā)送信件界面</p><p> 實(shí)現(xiàn)發(fā)送郵件的方法是,利用request.getParameter(“”)方法把頁面上企業(yè)填入信息讀取
110、下來,再把值賦給自變量(如:shouname1,faname1等),然后利用JDBC-ODBC橋連接SQL數(shù)據(jù)庫,把這些值插入到JOB數(shù)據(jù)庫的“信件”表里。關(guān)鍵代碼是:</p><p> try{ //相應(yīng)JDBC驅(qū)動(dòng)程序的連接串</p><p> conn = DriverManager.getConnection("jdbc:odbc:job");</p
111、><p> stmt=conn.createStatement();</p><p> //執(zhí)行SQL語句,將數(shù)據(jù)插入到信件表</p><p> pst = conn.prepareStatement("INSERT INTO 信件(收信人, 發(fā)信人, 標(biāo)題, 發(fā)信時(shí)間, 內(nèi)容)"+"VALUES ('"+shoun
112、ame1+"',</p><p> '"+faname1+"','"+title1+"','"+shijian1+"','"+mailtext1+"')");</p><p> pst.executeUpdate()
113、; </p><p> response.sendRedirect("mailbox.jsp");}</p><p> 郵件發(fā)送后,自動(dòng)回到我的信箱界面。</p><p> 4.6.2 實(shí)現(xiàn)讀取、回復(fù)、刪除郵件</p><p> 企業(yè)在我的信箱界面(圖4.8)里,可以看都所有發(fā)給自己的郵件。此界面是利用JDBC-O
114、DBC橋訪問SQL數(shù)據(jù)庫,把JOB數(shù)據(jù)庫中的“信件”表里的所有收信人信箱為該企業(yè)信箱的郵件讀取出來顯示在頁面里,并在每一條記錄的標(biāo)題上增加超連接,在其后面增加“回復(fù)”和“刪除”鍵。在標(biāo)題上增加超連接的方法是:</p><p> <tdalign="center"></p><p> <a href="readmail.jsp?id=<
115、;%=bianhao[i]%>"><%=title[i]%></a></p><p><b> </td></b></p><p> 在每條記錄后面增加“回復(fù)”和“刪除”鍵的方法是:</p><p> <td align="center"></
116、p><p> <a href="remail.jsp?id=<%= bianhao [i]%>">回復(fù)</a></td></p><p> <td align="center"></p><p> <a href="delmail.jsp?id=&l
117、t;%= bianhao [i]%>">刪除</a></td></p><p> 企業(yè)可以查看郵件內(nèi)容,回復(fù)或刪除郵件。</p><p> 圖4.8 我的信箱界面</p><p> 企業(yè)只要單擊某個(gè)郵件的標(biāo)題,即可讀取該郵件的全部?jī)?nèi)容。實(shí)現(xiàn)的方法是,當(dāng)企業(yè)單擊某個(gè)郵件的標(biāo)題時(shí),程序則利用request.getPar
118、ameter("")方法獲得郵件編號(hào),這時(shí),由于編碼方式的問題,通過request.getParameter("")方法獲得的值是亂碼,這還需要下面的程序轉(zhuǎn)換編碼格式,使其轉(zhuǎn)換為正常形式[11]:</p><p> byte b[]=bianhao.getBytes("ISO-8859-1");</p><p> bianha
119、o =new String(b);</p><p> 然后利用JDBC-ODBC橋訪問SQL數(shù)據(jù)庫,根據(jù)收信人和編號(hào)從JOB數(shù)據(jù)庫的“信件”表里讀出相應(yīng)的記錄,并顯示在網(wǎng)頁里。從數(shù)據(jù)庫中查詢一條郵件的關(guān)鍵代碼如下:</p><p><b> <% …… </b></p><p><b> try{ …</b>
120、</p><p> mySQL = "SELECT*FROM 企業(yè)注冊(cè) WHERE 會(huì)員ID='"+str+"'";</p><p> rs=stmt.executeQuery(mySQL);//根據(jù)用戶名查詢企業(yè)郵箱</p><p> if(rs.next()){</p><p>
121、; shouname=rs.getString(6); }//獲得企業(yè)郵箱</p><p> mySQL = "SELECT*FROM 信件 where 收信人 ='"+shouname+"'";</p><p> mySQL = mySQL+ "and 編號(hào) ='"+ bianhao +"
122、'";</p><p> rs=stmt.executeQuery(mySQL);//根據(jù)收信人和內(nèi)容查詢郵件</p><p> if(rs.next()){ %></p><p> 從數(shù)據(jù)庫中查詢到了某條郵件記錄以后,即可以將其輸出到網(wǎng)頁上,方法如下: </p><p> <p ali
123、gn="left"><br></p><p> 收信人: <%out.print(rs.getString(1));%> </p></p><p> <p align="left">發(fā)信人: <%out.print(rs.getString(2));%> </p>
124、;</p><p> <p align="left">標(biāo) 題: <%out.print(rs.getString(3));%> </p> </p><p> <p align="left">發(fā)信時(shí)間: <%out.print(rs.getString(4));%><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)(論文+設(shè)計(jì))
- [jsp畢設(shè)]畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)(論文+設(shè)計(jì))
- 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)(論文+設(shè)計(jì))Part1.rar
- 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)(論文+設(shè)計(jì))Part3.rar
- 畢業(yè)生招聘信息的發(fā)布與管理系統(tǒng)(論文+設(shè)計(jì))Part2.rar
- 畢業(yè)論文——畢業(yè)生信息管理系統(tǒng)
- 畢業(yè)論文——畢業(yè)生信息管理系統(tǒng)
- 畢業(yè)論文——畢業(yè)生信息管理系統(tǒng) (2)
- 畢業(yè)生信息管理系統(tǒng)企業(yè)管理模塊-畢業(yè)論文
- 畢業(yè)生信息管理系統(tǒng)—企業(yè)管理模塊-畢業(yè)論文附件
- 畢業(yè)生管理信息系統(tǒng) ──校級(jí)管理員模塊-畢業(yè)論文
- 高校畢業(yè)生管理系統(tǒng)終版畢業(yè)論文
- 畢業(yè)生管理信息系統(tǒng) ──校級(jí)管理員模塊-畢業(yè)論文
- 畢業(yè)論文-地方app信息發(fā)布后臺(tái)管理系統(tǒng)
- 畢業(yè)論文——軟件信息發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文——軟件信息發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 企業(yè)信息發(fā)布管理系統(tǒng)─用戶信息發(fā)布管理功能實(shí)現(xiàn)【畢業(yè)論文設(shè)計(jì)】
- 企業(yè)信息發(fā)布管理系統(tǒng)——用戶信息發(fā)布管理功能實(shí)現(xiàn)【畢業(yè)論文設(shè)計(jì)】
- 信息發(fā)布系統(tǒng)中后臺(tái)管理業(yè)務(wù)設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)生就業(yè)信息管理__畢業(yè)論文
評(píng)論
0/150
提交評(píng)論