王善勤,王小林,陳業(yè)斌
1.安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,安徽馬鞍山,243032;2.滁州職業(yè)技術(shù)學(xué)院,安徽滁州,239000
?
基于Java EE的大學(xué)生職業(yè)規(guī)劃系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
王善勤1,2,王小林1,陳業(yè)斌1
1.安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,安徽馬鞍山,243032;2.滁州職業(yè)技術(shù)學(xué)院,安徽滁州,239000
針對(duì)國內(nèi)高校職業(yè)規(guī)劃工作滯后于人的發(fā)展、職業(yè)規(guī)劃指導(dǎo)教師匱乏、大學(xué)生職業(yè)規(guī)劃定性分析的片面性等問題,為新時(shí)代大學(xué)生搭建職業(yè)規(guī)劃網(wǎng)絡(luò)平臺(tái)。依據(jù)大學(xué)階段職業(yè)規(guī)劃工作的特點(diǎn),分析大學(xué)生職業(yè)規(guī)劃的需求;運(yùn)用UML工具對(duì)系統(tǒng)進(jìn)行建模分析、設(shè)計(jì);使用MVC框架對(duì)系統(tǒng)進(jìn)行架構(gòu),按照Web2.0標(biāo)準(zhǔn)規(guī)范Web頁面,采用Java EE平臺(tái)實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯,完成了大學(xué)生職業(yè)規(guī)劃系統(tǒng)的前臺(tái)呈現(xiàn)、后臺(tái)管理模塊的實(shí)現(xiàn)等。對(duì)大學(xué)生職業(yè)規(guī)劃信息進(jìn)行信息化管理,拓寬大學(xué)生職業(yè)規(guī)劃指導(dǎo)平臺(tái);將使用數(shù)據(jù)挖掘技術(shù)對(duì)高校多年來積累的數(shù)據(jù)進(jìn)行挖掘出的規(guī)則應(yīng)用到大學(xué)生職業(yè)規(guī)劃系統(tǒng)中,使系統(tǒng)提供了對(duì)大學(xué)生職業(yè)規(guī)劃進(jìn)行預(yù)測(cè)指導(dǎo)功能。
Java EE;MVC;高校;大學(xué)生職業(yè)規(guī)劃;職業(yè)規(guī)劃系統(tǒng)
國外從兒童開始進(jìn)行職業(yè)發(fā)展指導(dǎo),讓其學(xué)會(huì)認(rèn)識(shí)自我,盡早實(shí)施職業(yè)計(jì)劃[1];國內(nèi)的職業(yè)發(fā)展教育相比國外顯得非常落后,國人從小到大都沒有足夠的職業(yè)意識(shí),至今為止,我國還沒有形成學(xué)生職業(yè)發(fā)展服務(wù)體系。國內(nèi)大學(xué)生日益迷戀智能手機(jī)、游戲,對(duì)自己的未來充滿了迷茫、不負(fù)責(zé)任等負(fù)面狀態(tài)。對(duì)于個(gè)人來說,產(chǎn)生上述情況的主要原因是沒有做好非常必要的職業(yè)規(guī)劃。近年來,大學(xué)畢業(yè)生就業(yè)后不能很快適應(yīng)社會(huì)及所從事的工作[2],需要相當(dāng)長(zhǎng)的一段“適應(yīng)期”,這種現(xiàn)象已呈上升趨勢(shì)。要改變這種狀況,職業(yè)規(guī)劃是一副從源頭抓起的“良藥”[3]。但高校畢業(yè)生職業(yè)規(guī)劃工作有待研究,適合大學(xué)生的職業(yè)規(guī)劃系統(tǒng)更有待于設(shè)計(jì)實(shí)現(xiàn)。
1.1 Java EE
Java EE(Java Platform,Enterprise Edition)是sun公司推出的企業(yè)級(jí)應(yīng)用程序版本。若需要開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端Java應(yīng)用程序[4],Java EE是一個(gè)非常不錯(cuò)的選擇。它提供的Web 服務(wù)、組件模型、管理和通信API,可以用來實(shí)現(xiàn)企業(yè)級(jí)面向服務(wù)的架構(gòu)[5]和Web 2.0應(yīng)用程序。
1.2 MVC
MVC是一種流行的軟件設(shè)計(jì)模式,它由Model、View和Controller三個(gè)單詞的第一個(gè)字母組成。Model層表示系統(tǒng)中的企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則;View層是與用戶的交互界面,接受用戶輸入、向用戶顯示數(shù)據(jù)、與Model層交互等[6];Controller層是模型層與視圖層之間溝通的橋梁,它可以接受請(qǐng)求并選擇對(duì)應(yīng)的模型組件去處理這個(gè)請(qǐng)求,然后再選擇相應(yīng)的視圖去顯示數(shù)據(jù)。在本系統(tǒng)開發(fā)過程中,把MVC的設(shè)計(jì)思想融入到本次系統(tǒng)設(shè)計(jì)之中,使得系統(tǒng)開發(fā)變得更加簡(jiǎn)單,在一定程度上縮短了系統(tǒng)的開發(fā)時(shí)間。通過對(duì)不同層次下的功能模塊進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),最終達(dá)到了對(duì)系統(tǒng)全部功能的一個(gè)很好的整合。
1.3 Web標(biāo)準(zhǔn)
Web標(biāo)準(zhǔn)是指一系列標(biāo)準(zhǔn)的集合[7],主要由行為、結(jié)構(gòu)和表現(xiàn)三部分組成。行為標(biāo)準(zhǔn)包含了ECMAScript、對(duì)象模型等,結(jié)構(gòu)化標(biāo)準(zhǔn)語言主要有XML和XHTML,表現(xiàn)標(biāo)準(zhǔn)語言主要包括CSS。
大學(xué)生職業(yè)規(guī)劃系統(tǒng)是面向大學(xué)生的自助職業(yè)規(guī)劃平臺(tái)。本系統(tǒng)基于數(shù)據(jù)挖掘模型,采用B/S模式[8],使用MVC框架搭建系統(tǒng)框架,在J2EE平臺(tái)上開發(fā)、實(shí)現(xiàn)。
2.1 系統(tǒng)的可行性分析
此系統(tǒng)是按照高校職業(yè)規(guī)劃需求進(jìn)行設(shè)計(jì)開發(fā)的,它能夠預(yù)測(cè)出一個(gè)人的職業(yè)類型選擇傾向并給出一定建議,也非常符合現(xiàn)今社會(huì)的需要。目前已具有穩(wěn)固的開發(fā)團(tuán)隊(duì)等,在組織、管理及開發(fā)等方面上都是可行性的。
2.2 系統(tǒng)的功能需求
(1)用戶管理模塊:后臺(tái)超級(jí)管理員可以添加、修改、刪除、查詢管理員及用戶,并可以實(shí)現(xiàn)新聞管理、題庫管理、數(shù)據(jù)分析析模塊管理等;普通管理員可以做新聞管理、題庫管理、數(shù)據(jù)分析相關(guān)操作等;用戶可以在前臺(tái)注冊(cè)、登錄操作,并可以深層次認(rèn)知自己,查閱系統(tǒng)職業(yè)規(guī)劃指導(dǎo)信息等。
(2)新聞管理模塊:后臺(tái)管理員可以對(duì)新聞進(jìn)行添加、修改、刪除、查詢操作;前臺(tái)可以分類顯示系統(tǒng)相關(guān)新聞等。
(3)題庫管理模塊:后臺(tái)管理員可以對(duì)試題進(jìn)行添加、修改、刪除、查詢操作,并可以靈活地添加、修改、刪除試題的類別等;用戶可以在前臺(tái)做題給出相應(yīng)提示信息,匿名瀏覽者可以做部分試題做一個(gè)初步的測(cè)試等。
(4)數(shù)據(jù)分析模塊:包括“先天”預(yù)測(cè)、“后天”預(yù)測(cè)兩個(gè)模塊,后臺(tái)管理員可以根據(jù)挖掘規(guī)則,對(duì)被測(cè)人員進(jìn)行預(yù)測(cè),分析大學(xué)生職業(yè)類型選擇來實(shí)現(xiàn)分類預(yù)測(cè)等。
3.1 系統(tǒng)總體架構(gòu)設(shè)計(jì)
由于大學(xué)生職業(yè)規(guī)劃系統(tǒng)的需求分析只是針對(duì)現(xiàn)階段高職、應(yīng)用型本科院校需求,隨著高職、應(yīng)用型本科院校的發(fā)展,需求定會(huì)有所改變,因此,筆者利用科學(xué)發(fā)展的觀點(diǎn)來作系統(tǒng)架構(gòu)和設(shè)計(jì),使其具備可維護(hù)性、可擴(kuò)展性等。系統(tǒng)架構(gòu)、設(shè)計(jì)思路如下:
(1)采用基于MVC 的Web 開發(fā)架構(gòu),將模型、視窗、控制相分離。
(2)采用比較流行的Web標(biāo)準(zhǔn)規(guī)范,讓系統(tǒng)視窗層真正、徹底地實(shí)現(xiàn)內(nèi)容、表現(xiàn)、交互相分離。
(3)采用大學(xué)生職業(yè)規(guī)劃系統(tǒng)數(shù)據(jù)庫和大學(xué)生職業(yè)規(guī)劃數(shù)據(jù)挖掘數(shù)據(jù)庫相分離。
3.2 系統(tǒng)結(jié)構(gòu)圖
(1)系統(tǒng)前臺(tái)組織結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)前臺(tái)組織結(jié)構(gòu)圖
(2)系統(tǒng)后臺(tái)組織結(jié)構(gòu)如圖2所示。
3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
大學(xué)生職業(yè)規(guī)劃系統(tǒng)的數(shù)據(jù)庫,在邏輯上分為職業(yè)規(guī)劃系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)挖掘分析數(shù)據(jù)庫。
圖2 后臺(tái)組織結(jié)構(gòu)圖
(1)職業(yè)規(guī)劃系統(tǒng)部分?jǐn)?shù)據(jù)庫設(shè)計(jì):主要包括管理員表(manager)、班級(jí)表(team)、新聞表(news)、測(cè)試題庫表(test)、用戶表(user)、崗位表(job)等。表1、表2是其中2個(gè)重要表結(jié)構(gòu):
表1 測(cè)試題庫:test
表2 崗位表:job
(2)數(shù)據(jù)分析數(shù)據(jù)庫設(shè)計(jì):數(shù)據(jù)分析表的詳細(xì)設(shè)計(jì)如表3所示。
表3 清洗后的數(shù)據(jù)表:processedData
前面研究了大學(xué)生職業(yè)規(guī)劃系統(tǒng)的架構(gòu)與設(shè)計(jì),以下闡述和給出系統(tǒng)各部分的具體實(shí)現(xiàn)。此系統(tǒng)是以MySQL5.0作為數(shù)據(jù)庫進(jìn)行開發(fā)的。
4.1 系統(tǒng)的開發(fā)環(huán)境搭建
系統(tǒng)采用Java EE開發(fā)中常用的命名約定來定義系統(tǒng)的包和類名子,按照系統(tǒng)分層和命名規(guī)范,系統(tǒng)的具體項(xiàng)目結(jié)構(gòu)圖,如圖3所示。
圖3 在Eclipse 中的項(xiàng)目結(jié)構(gòu)圖
4.2 系統(tǒng)前臺(tái)開發(fā)與實(shí)現(xiàn)
系統(tǒng)前臺(tái)實(shí)現(xiàn)新聞?wù)宫F(xiàn)、自我認(rèn)知、成功案例等功能模塊,下面給出系統(tǒng)首頁、自我認(rèn)知模塊的效果圖。
圖4 首頁效果圖
(1)首頁的總體效果如圖4所示,圖片新聞模塊主要實(shí)現(xiàn)了對(duì)網(wǎng)站焦點(diǎn)信息以圖文并茂的形式進(jìn)行展示,此處采用jQuery技術(shù)來實(shí)現(xiàn)圖片的輪換效果。
var num = 0; $("#nav").hide();
$("li img").load(function(){num++;if (num==4){$("#nav").show();} })
.click(function(){if (this.className.indexOf("active")!=-1) return;
$("#frontText").fadeOut();$("#frontTextBack").fadeOut(); $("#frontTextSub").fadeOut();
$("li img.active").fadeTo(200,0.6).removeClass("active").animate({top:5,width:52,left:10},300)
.parent().css({"color":"#aaa"});
var i = $(this).attr("pic");var t = $(this).attr("text").split("|");
$(this).animate({top:-5,width:70,height:40,left:1},100).addClass("active").fadeTo(200,1)
.parent().css({"color":"white"});
$("#back").children().addClass("gray").end().fadeTo(500,0.1,function(){
$(this).children("img").attr("src","images/"+i+".jpg").removeClass("gray");//更改圖片
$(this).fadeTo(500,1,function(){ $("#frontText").html(t[0]).fadeIn(200);//更改正文文字
$("#frontTextBack").html(t[0]).fadeIn(200);//陰影文字
);})})
//初始第一張圖片
var i =0;show();
function show(){ if (i==$("li img").size()) i = 0;$("li img").eq(i).click();i++;}
if (self.location.search!=""){
var V = self.location.search;V = V.substr(1,V.length);eval(V);
var json ="{";if (option.skin==0) $("#mask").hide();if (option.animate == 0){
$("#nav ul").hide();}
$("#nav").width(option.width?option.width:760);$("#nav").height(option.height?option.height:240);
$("#back img").width($("#nav").width());$("#back img").height($("#nav").height());
$(self.parent.document.getElementById("splash")).children().height($("#nav").height()).width($("#nav").width());}
(2)自我認(rèn)知模塊,此模塊提供給用戶來真正認(rèn)識(shí)自我,如圖5所示。
圖5 自我認(rèn)知測(cè)試模塊效果圖
獲取測(cè)試信息的主要代碼如下所示。
try {
String[] testId = request.getParameterValues("testId");// 取到所有題目的id
List
int id = Integer.parseInt(request.getParameter("id"));//獲取用戶id
String sex = request.getParameter("sex");//獲取用戶的性別
String status = request.getParameter("status");// 獲取用戶進(jìn)行的是什么測(cè)試
for (String i : testId) {
answer.add(Integer.parseInt(request.getParameter("select" + i)));
// 獲取到用戶的答案,并且放到了集合中
}
/*從將用戶測(cè)試后的結(jié)果轉(zhuǎn)換成成績(jī),并把成績(jī)轉(zhuǎn)化類型begin*/
List
int sum=0;//用戶測(cè)試的總分
for (int a=0;a String[] sroce = null;// 存數(shù)據(jù)庫中拆分出來的標(biāo)準(zhǔn)成績(jī) sroce = test.get(a).getSorce().split(",");//將數(shù)據(jù)庫中的成績(jī)字段分解成一個(gè)數(shù)組 sum=sum+Integer.parseInt(sroce[answer.get(a)]);//得出用戶的測(cè)試成績(jī) } /*從將用戶測(cè)試后的結(jié)果轉(zhuǎn)換成成績(jī),并把成績(jī)轉(zhuǎn)化類型begin*/ /*把得到的成績(jī)到數(shù)據(jù)庫判斷是那種類型*/ List Result rs = null; for(int i = 0;i if(result.get(i).getBegin()<=sum&&result.get(i).getEnd()>=sum){ rs=result.get(i);break; } } /*把得到的成績(jī)到數(shù)據(jù)庫判斷是那種類型*/ if(userService.find(id)==null){ userService.add(id,rs);request.setAttribute("rs",rs); request.getRequestDispatcher("../html/test3.jsp").forward(request, response); }else{ userService.update(id,rs); Userinfo userinfo = userService.find(id); if(userinfo.getCharacte()!=null&&userinfo.getTemperament()!=null&&userinfo.getInterest()!=null){ String Occupation = dataToOccupation.InnateToOccupation(sex, userinfo.getCharacte(), userinfo.getTemperament(), userinfo.getInterest()); Job job=jobService.seek(Occupation);request.setAttribute("Occupation", Occupation); request.setAttribute("job", job);request.setAttribute("rs",rs); request.getRequestDispatcher("../html/test3.jsp").forward(request, response); }else{ request.setAttribute("rs",rs); } } } catch (Exception e) { e.printStackTrace(); } 其中,讀取部分就在TestingDAO和TestingDAOImpl 中實(shí)現(xiàn)。 /** * 前臺(tái)顯示題目* **/ public List PreparedStatement ps = null; ResultSet rs = null; StringBuffer sql = new StringBuffer(); sql.append("select * from test where status = ?"); try { ps=connection.prepareStatement(sql.toString()); ps.setString(1, status); rs=ps.executeQuery(); List while(rs.next()){ Test test=new Test(); test.setTest_id(rs.getInt("test_id")); test.setTest_title(rs.getString("test_title")); test.setOption_a(rs.getString("option_a")); test.setOption_b(rs.getString("option_b")); test.setOption_c(rs.getString("option_c")); test.setOption_d(rs.getString("option_d")); test.setOption_e(rs.getString("option_e")); test.setOption_f(rs.getString("option_f")); test.setSorce(rs.getString("sorce")); test.setStatus(rs.getString("status")); result.add(test); } return result; } catch (Exception e) { e.printStackTrace(); }finally{ closeResultSet(rs);closeStatement(ps); } return null; } 4.3 系統(tǒng)后臺(tái)開發(fā)與實(shí)現(xiàn) 系統(tǒng)后臺(tái)管理實(shí)現(xiàn)用戶分級(jí)管理、新聞管理、題庫管理、職業(yè)規(guī)劃預(yù)測(cè)等功能,其中職業(yè)規(guī)劃預(yù)測(cè)模塊包括“先天”預(yù)測(cè)、“后天”預(yù)測(cè)兩個(gè)功能模塊,下面給出“后天”預(yù)測(cè)模塊實(shí)現(xiàn)效果圖(圖6)。 隨著國內(nèi)社會(huì)對(duì)人才需求不斷深入,該系統(tǒng)將在高校獲得廣泛的應(yīng)用。本文研究了大學(xué)生職業(yè)規(guī)劃系統(tǒng)的關(guān)鍵技術(shù),在分析了Java EE框架的基礎(chǔ)上,針對(duì)B/S結(jié)構(gòu)模式的優(yōu)越性,對(duì)系統(tǒng)進(jìn)行分析、設(shè)計(jì),實(shí)現(xiàn)了大學(xué)生職業(yè)規(guī)劃系統(tǒng)。此系統(tǒng)能夠?yàn)楦咝熒峁┚W(wǎng)絡(luò)環(huán)境下的職業(yè)規(guī)劃指導(dǎo)工作平臺(tái),有效地提高工作效率?;贘2EE的大學(xué)生職業(yè)規(guī)劃系統(tǒng)可以實(shí)現(xiàn)更大范圍的信息和教育資源的共享,教師可以運(yùn)用多種形式的教學(xué)方法來提高職業(yè)規(guī)劃指導(dǎo)效果,而學(xué)生可以利用網(wǎng)絡(luò)這個(gè)平臺(tái)更加詳細(xì)地規(guī)劃自己在校期間的工作、學(xué)習(xí)、生活,向?qū)崿F(xiàn)人職匹配和諧發(fā)展方向努力,以推動(dòng)高校職業(yè)規(guī)劃指導(dǎo)工作上一個(gè)新臺(tái)階。 圖6 “后天”預(yù)測(cè)模塊效果圖 [1]白強(qiáng).大學(xué)生職業(yè)生涯規(guī)劃教育內(nèi)容與途徑研究[J].重慶大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2009,15(3):61-66 [2]董仁忠,馬慶發(fā).促進(jìn)高職畢業(yè)生就業(yè)問題解決的制度選擇[J].教育與職業(yè),2008(2):13-15 [3]田颯.大學(xué)生職業(yè)規(guī)劃的現(xiàn)狀與教育研究[J].中國成人教育,2009(8):51-52 [4]姜奇瑋.基于JAVA WEB的海運(yùn)通關(guān)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué)軟件學(xué)院,2011:16-17 [5]陳康松.基于B/S架構(gòu)的東陽市行政電子監(jiān)察系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,2010:12-13 [6]黎永良,崔杜武.MVC設(shè)計(jì)模式的改進(jìn)與應(yīng)用[J].計(jì)算機(jī)工程,2005,31(9):96-98 [7]崔琦.基于Web標(biāo)準(zhǔn)的網(wǎng)頁設(shè)計(jì)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2009(2):64-66 [8]李書杰,李志剛.B/S三層體系結(jié)構(gòu)模式[J].河北理工學(xué)院學(xué)報(bào),2002,24(S):25-29 (責(zé)任編輯:汪材印) 2014-01-20 滁州職業(yè)技術(shù)學(xué)院院級(jí)科研基金項(xiàng)目“初探數(shù)據(jù)挖掘在大學(xué)生職業(yè)生涯規(guī)劃中的應(yīng)用”(YJY-2011-17);安徽省示范性高職院校(軟件技術(shù)專業(yè))建設(shè)項(xiàng)目(SJ2010003)。 王善勤(1980-),安徽靈璧人,碩士研究生,助講,主要研究方向:數(shù)據(jù)挖掘、計(jì)算機(jī)應(yīng)用技術(shù)。 10.3969/j.issn.1673-2006.2014.04.023 TP311.52 A 1673-2006(2014)04-0078-054 結(jié)束語