簡(jiǎn)介
用idea和eclipse都可以,數(shù)據(jù)庫是mysql,這是一個(gè)Java和mysql做的web系統(tǒng),用于期末課設(shè)作業(yè)
cout<<"如果需要的小伙伴可以http://www.codeying.top";
可定做課設(shè)
線上招聘平臺(tái)整合了各種就業(yè)指導(dǎo)資源,通過了多種表現(xiàn)形式展現(xiàn)給求職者,實(shí)現(xiàn)了從擇業(yè)到就業(yè)的全過程,線上招聘平臺(tái)主要由前端、后端、數(shù)據(jù)庫三個(gè)部分組成。隨著人才流動(dòng)的正?;约按髮T盒.厴I(yè)生就業(yè)人數(shù)的增長(zhǎng),人才市場(chǎng)的業(yè)務(wù)越來越紅火。人才市場(chǎng)管理系統(tǒng)實(shí)現(xiàn)對(duì)人才市場(chǎng)業(yè)務(wù)的規(guī)范化管理。
(1)系統(tǒng)主要管理如下信息:
用人單位:編號(hào)、名稱、聯(lián)系人、電話、招聘人數(shù)、學(xué)歷要求、職稱要求。
求職人員:身份證號(hào)、姓名、地址、電話、學(xué)歷、職稱等。
(2)系統(tǒng)需完成的功能:
每個(gè)招聘單位可以招聘多名求職人員,每個(gè)求職人員只能與一家單位簽約;每位求職人員可以給多個(gè)單位投遞簡(jiǎn)歷,但只能被一家錄用。系統(tǒng)應(yīng)能登記招聘單位和求職人員信息,記錄求職人員投遞簡(jiǎn)歷情況,登記求職人員簽約情況,并能夠進(jìn)行各種需要的查詢、統(tǒng)計(jì)功能。
功能截圖
管理員管理
求職者投遞
求職者查看單位信息
管理員管理
需求分析
隨著人們對(duì)于招聘的需求不斷增強(qiáng),招聘市場(chǎng)也呈現(xiàn)出快速的增長(zhǎng)趨勢(shì),尤其是在線招聘平臺(tái)。在線招聘平臺(tái)在招聘過程中,能夠提升效率,降低成本,滿足招聘需求,深受用人單位和求職者的歡迎。近年來,隨著網(wǎng)絡(luò)普及和信息技術(shù)的不斷發(fā)展,在線招聘平臺(tái)市場(chǎng)規(guī)模逐年擴(kuò)大,而這其中又以互聯(lián)網(wǎng)食品飲料行業(yè)、物流行業(yè)、金融行業(yè)、互聯(lián)網(wǎng)教育行業(yè)招聘需求量最大。
數(shù)據(jù)流圖
用人單位企業(yè)用戶在使用本系統(tǒng)時(shí),同樣也會(huì)先經(jīng)過注冊(cè)、登錄等標(biāo)準(zhǔn)步驟。在成功登錄后,用人單位企業(yè)用戶會(huì)進(jìn)入到與個(gè)人用戶不同的主界面。企業(yè)用戶可以在其主界面上瀏覽投遞了本公司的人才庫信息、檢索出自己想要的人才信息、管理自己的招聘信息。也可在求職者應(yīng)聘之后,選擇是否同意他的請(qǐng)求。在企業(yè)用戶進(jìn)行完一系列操作后,同樣可以安全退出系統(tǒng)。
關(guān)系模型
管理員(主鍵,用戶名,密碼,創(chuàng)建時(shí)間,姓名,電話,性別)
用人單位(主鍵,用戶名,密碼,單位名,電話,地址,學(xué)歷要求,編號(hào),招聘人數(shù),職位要求)
求職者(主鍵,用戶名,密碼,名稱,性別,電話,身份證,專業(yè),學(xué)歷,地址,職稱)
簡(jiǎn)歷投遞(主鍵,求職者,公司,投遞時(shí)間,狀態(tài))
每個(gè)招聘單位可以招聘多名求職人員,每個(gè)求職人員只能與一家單位簽約;每位求職人員可以給多個(gè)單位投遞簡(jiǎn)歷,但只能被一家錄用。系統(tǒng)應(yīng)能登記招聘單位和求職人員信息,記錄求職人員投遞簡(jiǎn)歷情況,登記求職人員簽約情況,并能夠進(jìn)行各種需要的查詢、統(tǒng)計(jì)功能。
功能模塊
主要分為以下三個(gè)模塊:
管理員:登錄,管理用人單位、管理求職者
用人單位:登錄、注冊(cè),發(fā)布用人需求,審批投遞簡(jiǎn)歷
求職者:登錄、注冊(cè),查看用人單位,投遞簡(jiǎn)歷
流程圖
ER圖
數(shù)據(jù)字典
系統(tǒng)架構(gòu)
本系統(tǒng)使用經(jīng)典三層架構(gòu),三層架構(gòu)(3-tier architecture)通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:界面層(User Interface layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問層(Data access layer)。
區(qū)分層次的目的即為了“高內(nèi)聚低耦合”的思想。在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層(又或稱為領(lǐng)域?qū)樱?、表示層?br> UI(表現(xiàn)層):主要是指與用戶交互的界面。用于接收用戶輸入的數(shù)據(jù)和顯示處理后用戶需要的數(shù)據(jù)。
BLL:(業(yè)務(wù)邏輯層):UI層和DAL層之間的橋梁。實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯具體包含:驗(yàn)證、計(jì)算、業(yè)務(wù)規(guī)則等等。
DAL:(數(shù)據(jù)訪問層):與數(shù)據(jù)庫打交道。主要實(shí)現(xiàn)對(duì)數(shù)據(jù)的增、刪、改、查。將存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務(wù)層,同時(shí)將業(yè)務(wù)層處理的數(shù)據(jù)保存到數(shù)據(jù)庫。(當(dāng)然這些操作都是基于UI層的。用戶的需求反映給界面(UI),UI反映給BLL,BLL反映給DAL,DAL進(jìn)行數(shù)據(jù)的操作,操作后再一一返回,直到將用戶所需數(shù)據(jù)反饋給用戶)
其中,UI層對(duì)應(yīng)jsp頁面,BLL層對(duì)應(yīng)Servlet,連接DAL和UI層,DAL就是Dao(數(shù)據(jù)訪問對(duì)象),Dao負(fù)責(zé)和數(shù)據(jù)的獲取和封裝。
運(yùn)行環(huán)境
操作系統(tǒng):WindowsXP以上版本。
Web服務(wù)器軟件:Tomcat7以上版本。
JDK版本:JDK1.8及其以上
瀏覽器:IE、Google、FireFox、360。
部分代碼
用戶登錄 用戶登錄是系統(tǒng)的基本功能之一,本系統(tǒng)采用Session技術(shù)實(shí)現(xiàn)用戶登錄認(rèn)證。用戶輸入用戶名和密碼后,控制器會(huì)將用戶信息與數(shù)據(jù)庫中的用戶信息進(jìn)行驗(yàn)證,如果驗(yàn)證成功,則將用戶信息存入Session中,用戶的所有操作都需要通過Session來驗(yàn)證。文章來源:http://www.zghlxwxcb.cn/news/detail-707364.html
**
* 用于登陸的Servlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
//查詢數(shù)據(jù)mapper
private AdminDao adminDao = AdminDao.me();
private WorkerDao userDao = WorkerDao .me();
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
//設(shè)置編碼,否則從前端獲取參數(shù)亂碼
req.setCharacterEncoding("utf-8");
if(!usertype.equals("user")){
String captchaOrigin = (String) req.getSession().getAttribute("captcha");
String captchaCode = req.getParameter("captcha");
if(captchaCode == null || !captchaCode.equalsIgnoreCase(captchaOrigin)){
req.setAttribute("message","驗(yàn)證碼錯(cuò)誤!");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
return;
}
}
}
//登錄開始
LoginUser loginUser;
String username = req.getParameter("username");
String password = req.getParameter("password");
if(usertype.equals("user")) {
loginUser = userDao .login(username,password);
if (loginUser != null) {
req.getSession().setAttribute("u", loginUser);
resp.sendRedirect(req.getContextPath() + "/index");
return;
}
//登陸失敗,就重新登陸
req.setAttribute("message","賬號(hào)密碼有誤,登陸失敗");
req.getRequestDispatcher("/mall/login.jsp").forward(req,resp);
}
............
//登陸失敗,就重新登陸
req.setAttribute("message","賬號(hào)密碼有誤,登陸失敗");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
在完成整個(gè)系統(tǒng)的測(cè)試之后,我對(duì)此有一些總結(jié)。把開始的代碼寫得越好,它出現(xiàn)的錯(cuò)誤也就越少,你也就越能相信所做過的測(cè)試是徹底的。系統(tǒng)化測(cè)試以一種有序方式設(shè)法探測(cè)潛在的麻煩位置。同樣,毛病最可能出現(xiàn)在邊界,這可以通過手工的或者程序的方式檢查。自動(dòng)進(jìn)行測(cè)試是最理想的,用得越多越好,因?yàn)闄C(jī)器不會(huì)犯錯(cuò)誤、不會(huì)疲勞、不會(huì)用臆想某此實(shí)際無法工作的東西能行來欺騙自己。回歸測(cè)試檢查一個(gè)程序是否能產(chǎn)生與它們過去相同的輸出。在做了小改變之后就測(cè)試是一種好技術(shù), 能幫助我們將出現(xiàn)問題的范圍局部化,因?yàn)樾聠栴}一般就出現(xiàn)在新代碼里面。寫代碼之前設(shè)計(jì)的越嚴(yán)謹(jǐn),實(shí)現(xiàn)起來就越簡(jiǎn)單,若需求分析、系統(tǒng)框架不好好花時(shí)間去設(shè)計(jì)一下,等到實(shí)現(xiàn)的時(shí)候發(fā)現(xiàn)代碼耦合嚴(yán)重或者功能難以聯(lián)合,再來修改就有很大的麻煩。
再者就是一個(gè)人人皆知很重要但很容易被忽視的,編寫規(guī)范!包括命名規(guī)范和繼承抽象規(guī)范,如果按照當(dāng)時(shí)自己的想法去走捷徑完成功能,可能會(huì)降低代碼的可讀性!之后回過頭來測(cè)試系統(tǒng)功能會(huì)給測(cè)試人員帶來閱讀代碼上的麻煩。
經(jīng)過測(cè)試,我發(fā)現(xiàn)毛病發(fā)生最多的地方就是邊界測(cè)試上,在今后的工作中,牢記自己完成一個(gè)功能時(shí)對(duì)其進(jìn)行簡(jiǎn)單邊界測(cè)試,減少代碼BUG。
需要代碼可以:http://www.codeying.top文章來源地址http://www.zghlxwxcb.cn/news/detail-707364.html
到了這里,關(guān)于【源碼】JavaWeb+Mysql招聘管理系統(tǒng) 課設(shè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!