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