軟件工程 詳細(xì)設(shè)計(jì)_第1頁(yè)
軟件工程 詳細(xì)設(shè)計(jì)_第2頁(yè)
軟件工程 詳細(xì)設(shè)計(jì)_第3頁(yè)
軟件工程 詳細(xì)設(shè)計(jì)_第4頁(yè)
軟件工程 詳細(xì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目編號(hào)200602006文檔編號(hào)12密級(jí)內(nèi)部網(wǎng)上招聘系統(tǒng)詳細(xì)設(shè)計(jì)V1.0北京長(zhǎng)江軟件公司評(píng)審日期:2006年4月12日目錄1.導(dǎo)言 41.1目的 41.2范圍 41.3縮寫(xiě)說(shuō)明 41.4術(shù)語(yǔ)定義 51.5引用標(biāo)準(zhǔn) 51.6參考資料 51.7版本更新信息 52系統(tǒng)設(shè)計(jì)概述 53詳細(xì)設(shè)計(jì)概述 64職位管理模塊的詳細(xì)設(shè)計(jì) 64.1視圖層 74.2控制層 124.3模型層 145題庫(kù)管理模塊的詳細(xì)設(shè)計(jì) 195.1視圖層 195.2控制層 205.3模型層 206問(wèn)卷管理模塊的詳細(xì)設(shè)計(jì) 206.1視圖層 206.2控制層 216.3模型層 217簡(jiǎn)歷管理模塊的詳細(xì)設(shè)計(jì) 217.1視圖層 217.2控制層 227.3模型層 228面試管理模塊的詳細(xì)設(shè)計(jì) 228.1視圖層 228.2控制層 238.3模型層 239用戶登錄模塊的詳細(xì)設(shè)計(jì) 239.1視圖層 239.2控制層 249.3模型層 2410用戶管理模塊的詳細(xì)設(shè)計(jì) 2410.1視圖層 2410.2控制層 2510.3模型層 2511客戶端模塊的詳細(xì)設(shè)計(jì) 2511.1視圖層 2611.2控制層 2612復(fù)用的模塊 2712.1客戶標(biāo)簽庫(kù) 2712.2數(shù)據(jù)庫(kù)的基本操作 2912.3結(jié)果顯示 3313配置文件 3313.1Web.xml配置文件 3313.2strcut-config.Xml配置文件 35

1.導(dǎo)言1.1目的該文檔的目的是描述《網(wǎng)上招聘系統(tǒng)》項(xiàng)目的詳細(xì)設(shè)計(jì),其主要內(nèi)容包括:系統(tǒng)功能簡(jiǎn)介系統(tǒng)詳細(xì)設(shè)計(jì)簡(jiǎn)述各個(gè)模塊的三層劃分最小模塊組件的偽代碼本文檔的預(yù)期的讀者是:開(kāi)發(fā)人員項(xiàng)目管理人員測(cè)試人員1.2范圍該文檔定義了系統(tǒng)的各個(gè)模塊和模塊接口,但未確定單元的具體實(shí)現(xiàn),這部分內(nèi)容將在實(shí)現(xiàn)中確定。1.3縮寫(xiě)說(shuō)明HR HumanResource(人力資源管理)的縮寫(xiě)。JSPJavaServerPage(Java服務(wù)器頁(yè)面)的縮寫(xiě),一個(gè)腳本化的語(yǔ)言。MVCModel-View-Control(模式-視圖-控制)的縮寫(xiě),表示一個(gè)三層的結(jié)構(gòu)體系。1.4術(shù)語(yǔ)定義Struct:一種框架體系結(jié)構(gòu)。1.5引用標(biāo)準(zhǔn) [1]《企業(yè)文檔格式標(biāo)準(zhǔn)》V1.1 北京長(zhǎng)江軟件有限公司[2]《軟件詳細(xì)設(shè)計(jì)報(bào)告格式標(biāo)準(zhǔn)》V1.1北京長(zhǎng)江軟件有限公司軟件工程過(guò)程化組織1.6參考資料[1]《實(shí)戰(zhàn)struct》〔美〕TedHusted 機(jī)械工業(yè)出版社1.7版本更新信息本文檔版本更新記錄如表C-1:表C-1版本更新記錄修改編號(hào)修改日期修改后版本修改位置修改內(nèi)容概述0001.0全部初始發(fā)布版本 2系統(tǒng)設(shè)計(jì)概述根據(jù)《網(wǎng)上招聘系統(tǒng)》的概要設(shè)計(jì),本系統(tǒng)按照功能角度分解,可以分為客戶端子系統(tǒng)和管理端子系統(tǒng)。根據(jù)頁(yè)面流的設(shè)計(jì),管理端系統(tǒng)分為用戶登錄、用戶管理、題庫(kù)管理、問(wèn)卷管理、職位管理、簡(jiǎn)歷管理、面試管理等7個(gè)模塊,他們的關(guān)系如圖C-1,以下將分小節(jié)對(duì)各個(gè)部分分別進(jìn)行詳細(xì)設(shè)計(jì)。網(wǎng)上招聘系統(tǒng)網(wǎng)上招聘系統(tǒng)管理端子系統(tǒng)客戶端子系統(tǒng)登錄管理用戶管理題庫(kù)管理問(wèn)卷管理職位管理簡(jiǎn)歷管理面試管理圖C-1:模塊設(shè)計(jì)3詳細(xì)設(shè)計(jì)概述 由于本系統(tǒng)采用了基于struct體系結(jié)構(gòu)的設(shè)計(jì),即采用MVC的三層設(shè)計(jì)模式,采用面向?qū)ο蟮模剩幔觯嵴Z(yǔ)言以及JSP的腳本語(yǔ)言。所以,基本采用面向?qū)ο蟮脑O(shè)計(jì)方法。在整個(gè)的開(kāi)發(fā)過(guò)程中,盡可能采用復(fù)用的原則,例如采用標(biāo)簽庫(kù),統(tǒng)一數(shù)據(jù)庫(kù)的基本操作,統(tǒng)一結(jié)果顯示等。本文檔的詳細(xì)設(shè)計(jì)主要是按照Struct的MVC的三個(gè)層次分別編制視圖層、控制層和模型層模塊的偽代碼。為下一步的編碼提供基礎(chǔ)。偽代碼(Pseudocode)是一種算法描述語(yǔ)言。使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語(yǔ)言實(shí)現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰,代碼簡(jiǎn)單,可讀性好,并且類(lèi)似自然語(yǔ)言。4職位管理模塊的詳細(xì)設(shè)計(jì)職位管理模塊主要實(shí)現(xiàn)網(wǎng)上招聘職位的維護(hù)和發(fā)布,職位管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-2所示。表C-2:職位管理模塊的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽JoblistjobdetailmodifyjobModifyjobsubmitaddjobjobsearchdetailSelectexammodifyselectvalueexammodifyjobsubmitmodifyselectjobexammodifyvaluesubmitJobDetailFormModifyJobFormUpdateModifyJspFormModifyJobSubmitFormUpdateFormAddFullJobFormDelJobFormJobSearchFormAddJobValueExamPreFormAddJobValueExamFormUpdateJobCartFormAddJobExamPreFormAddJobExamFormDelJobExamFormModifyJobValueExamPreFormModifyJobValueExamFormModifyJobExamPremFormModifyJobExamFormModifyDelValueExamFormModifyDelJobExamFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽JobListActionJobDetailActionModifyJobActionUpdateModifyJspActionModifyJobSubmitActionAddJobPreActionUpdateAcitonAddFullJobActionDelJobActionJobSearchActionAddJobValueExamPreActionAddJobValueActionUpdateJobCartActionAddJobExamPreActionAddJobExamActionDelJobExamActionModifyJobValueExamPreActionModifyJobValueExamActionModifyJobExamPreActionModifyJobExamActionModifyDelValueExamActionModifyDelJobExamActionDBUtilJobBeanJobCartBeanJobEaxmBeanEaxmBean4.1視圖層視圖層主要實(shí)現(xiàn)表示層的功能,視圖層包括JSP組件、Form組件以及JSP中標(biāo)簽庫(kù)等。JSP組件職位管理視圖層共有11個(gè)JSP文件,JSP文件詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-Position-ViewJSP.doc。Form組件職位管理視圖層共有20個(gè)Form文件,表C-3是AddJobForm的偽代碼描述。表C-3/***@System:OnlineJobApplicationSystem*@Version:1.0*@Copyright(C)2006bychangjiangcompany,Inc.AllRightsReserved.*@Class:AddJobForm*@Summary:只增加職位信息的Form*@Create:2006.04.23章飛*@Update:2006.04.28章飛*/packagecom.changjiangcompany.struts.form;importjavax.servlet.http.HttpServletRequest;importorg.apache.struts.action.ActionErrors;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionMapping;//集成了ActionForm的屬性和方法publicclassSubmitAnswerFormextendsActionForm{ //InstanceVariables /**職位名稱(chēng)*/ privateStringJobName; /**職位發(fā)布日期*/ privateStringPubDate; /**職位發(fā)布結(jié)束日期*/ privateStringEndDate; /**職位描述*/ privateStringDescription; /**職位要求*/ privateStringRequirements; /**招聘人數(shù)*/ privateintJobNum; //Methods /** *Methodvalidate *@parammapping *@paramrequest *@returnActionErrors */ publicActionErrorsvalidate( ActionMappingmapping, HttpServletRequestrequest) { 。。。。。。 } /** *Methodreset *@parammapping *@paramrequest */ publicvoidreset(ActionMappingmapping,HttpServletRequestrequest) { 。。。。。。 } /** *返回JobName. * */ publicStringgetJobName(){ 。。。。。。 } /** *賦值JobName. * */ publicvoidsetJobName(StringJobName){ 。。。。。。 }/** *返回PubDate. * */ publicStringgetPubDate(){ 。。。。。。 } /** *賦值PubDate. * */ publicvoidsetPubDate(StringPubDate){ 。。。。。。 } /** *返回EndDate. * */ publicStringgetEndDate(){ 。。。。。。 } /** *賦值EndDate. * */ publicvoidsetPubDate(StringEndDate){ 。。。。。。 } /** *返回Description. * */ publicStringgetDescription(){ 。。。。。。 } /** *賦值Description. * */ publicvoidsetDescription(StringDescription){ 。。。。。。 } /** *返回Requirements. * */ publicStringgetRequirements(){ 。。。。。。 } /** *賦值Requirements. * */ publicvoidsetRequirements(StringRequirements){ 。。。。。。 } /** *返回JobNum. * */ publicintgetJobNum(){ 。。。。。。 }/** *賦值JobNum. * */ publicvoidsetJobNum(intJobNum){ 。。。。。。 }}其它Form偽代碼詳見(jiàn)文件WSZP-PD-DD-Position-ViewForm.doc,它有關(guān)于每個(gè)Form的偽代碼的詳細(xì)描述。客戶標(biāo)簽庫(kù)客戶端的標(biāo)簽庫(kù)包括StructHtml標(biāo)簽、StructBean標(biāo)簽、StructLogic標(biāo)簽和自定義標(biāo)簽庫(kù),其中StructHtml標(biāo)簽、StructBean標(biāo)簽和StructLogic標(biāo)簽是Struct的標(biāo)簽庫(kù),而CV標(biāo)簽庫(kù)是本系統(tǒng)自定義的標(biāo)簽。詳見(jiàn)復(fù)用模塊的詳細(xì)設(shè)計(jì)。4.2控制層職位管理控制層共有22個(gè)Action文件,表C-4是AddJobAction的偽代碼描述。表C-4:AddJobAction的偽代碼/***@System:OnlineCVSystem*@Version:1.0*@Copyright(C)2006bychangjiangcompany,Inc.AllRightsReserved.*@Class:AddJobAction*@Summary:只增加職位信息的Action章飛章飛*/packagecom.changjiangcompany.struts.action;importjava.util.Vector;importjavax.servlet.ServletContext;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importjavax.sql.DataSource;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.action.DynaActionForm;importshare.Constants;importcom.changjiangcompany.DB;importcom.changjiangcompany.Job;//AddJobAction集成了Action的基本方法和屬性publicclassAddJobActionextendsAction{ /** *Methodexecute *@parammapping *@paramform *@paramrequest *@paramresponse *@returnActionForward */ publicActionForwardexecute( ActionMappingmapping, ActionFormform, HttpServletRequestrequest, HttpServletResponseresponse){ //獲取新增加的職位信息 DynaActionFormAddJobForm=(DynaActionForm)form;。。。。。。 HttpSessionsession=request.getSession(); VectorJobList=newVector(); //連接數(shù)據(jù)庫(kù)。。。。。。 //將職位基本信息封裝到員工類(lèi)型的對(duì)象 try{ Jobjob=newJob();。。。。。。 //將增加的職位信息加入到對(duì)應(yīng)的數(shù)據(jù)庫(kù)。。。。。。 }}其它Action偽代碼詳見(jiàn)文件WSZP-PD-DD-Position-control.doc,它有關(guān)于每個(gè)Action偽代碼的詳細(xì)描述。4.3模型層職位管理模型層共有5個(gè)組件,表C-5是JobBean的偽代碼描述。表C-5:JobBean的偽代碼/***@System:OnlineCVSystem*@Version:1.0*@Copyright(C)2006bychangjiangcompany,Inc.AllRightsReserved.*@Class:Job*@Summary:處理Job信息的bean*@Create:2006.04.23馮杰*@Update:2006.04.28馮杰*/packagecom.changjiangcompany;importjava.sql.ResultSet;importjava.util.Vector;publicclassJob{ //與職位信息相關(guān)的基本屬性和方法 publicintJobID; publicintJobNum; publicStringJobName; publicStringPubDate; publicStringEndDate; publicStringDescription; publicStringRequirements;publicJob(){} //職位描述屬性的set及get方法 publicStringgetDescription(){ 。。。。。。 } publicvoidsetDescription(StringDescription){ 。。。。。。 } //職位描述截止日期set及get方法 publicStringgetEndDate(){ 。。。。。。 } publicvoidsetEndDate(StringEndDate){ 。。。。。。 } //職位ID的set及get方法 publicintgetJobID(){ 。。。。。。 } publicvoidsetJobID(intJobID){ 。。。。。。 } //職位名稱(chēng)的set及get方法 publicStringgetJobName(){ 。。。。。。 } publicvoidsetJobName(StringJobName){ 。。。。。。 } //職位招聘人數(shù)的set及get方法 publicintgetJobNum(){ 。。。。。。 } publicvoidsetJobNum(intJobNum){ 。。。。。。 } //職位發(fā)布日期的set及get方法 publicStringgetPubDate(){ 。。。。。。 } publicvoidsetPubDate(StringPubDate){ 。。。。。。 } //職位要求屬性的set及get方法 publicStringgetRequirements(){ 。。。。。。 } publicvoidsetRequirements(StringRequirements){ 。。。。。。 }/** *方法:jobSearch *描述:查詢滿足條件的職位信息 *@paramDBdb數(shù)據(jù)庫(kù)對(duì)象 *@paramStringJobName職位名稱(chēng) *@paramStringPubDate發(fā)布日期 *@paramStringEndDate截止日期 *@returnVector職位列表 *@throwsException */ publicstaticVectorjobSearch(DBdb,StringJobName, StringPubDate,StringEndDate)throwsException{。。。。。。 } /** *方法:getJobList *描述:獲取職位列表 *@paramDBdb數(shù)據(jù)庫(kù)對(duì)象 *@returnVector職位列表 *@throwsException */ publicstaticVectorgetJobList(DBdb)throwsException{。。。。。。 } /** *方法:getJobDetail *描述:獲取職位詳細(xì)信息 *@paramDBdb數(shù)據(jù)庫(kù)對(duì)象 *@paramintJobID職位代號(hào) *@returnVector職位列表 *@throwsException */ publicVectorgetJobDetail(DBdb,intJobID)throwsException{。。。。。。 } /** *方法:addJob *描述:新加職位Form信息 *@paramDBdb數(shù)據(jù)庫(kù)對(duì)象 *@paramStringJobName職位名稱(chēng) *@paramStringPubDate發(fā)布日期 *@paramStringEndDate截止日期 *@paramStringDescription職位描述 *@paramStringRequirements職位要求 *@paramStringJobNum招聘人數(shù) *@returnboolean數(shù)據(jù)庫(kù)操作是否成功 *@throwsException */ publicbooleanaddJob(DBdb,StringJobName,StringPubDate,StringEndDate,StringDescription,StringRequirements,intJobNum)throwsException{。。。。。。 }/** *方法:modifyJob *描述:修改職位信息 *@paramDBdb數(shù)據(jù)庫(kù)對(duì)象 *@paramStringJobID職位代號(hào) *@paramStringJobName職位名稱(chēng) *@paramStringPubDate發(fā)布日期 *@paramStringEndDate截止日期 *@paramStringDescription職位描述 *@paramStringRequirements職位要求 *@paramStringJobNum招聘人數(shù) *@returnboolean數(shù)據(jù)庫(kù)操作是否成功 *@throwsException */ publicbooleanmodifyJob(DBdb,intJobID,StringJobName, StringPubDate,StringEndDate,StringDescription, StringRequirements,intJobNum)throwsException{。。。。。。 } /** *方法:DeleteJob *描述:刪除職位信息 *@paramDBdb數(shù)據(jù)庫(kù)對(duì)象 *@paramintJobID職位代號(hào) *@returnboolean數(shù)據(jù)庫(kù)操作是否成功 *@throwsException */ publicbooleanDeleteJob(DBdb,intJobID)throwsException{。。。。。。}}其它模型組件的偽代碼詳見(jiàn)文件WSZP-PD-DD-Position-Model.doc,它有關(guān)于每個(gè)類(lèi)、Bean的偽代碼的詳細(xì)描述。5題庫(kù)管理模塊的詳細(xì)設(shè)計(jì)題庫(kù)管理主要是提供職位問(wèn)卷的相關(guān)題目,題庫(kù)管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-6所示。表C-6:知識(shí)題庫(kù)管理模塊的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽kninlist.jspknlist.jspkndetail.jspaddkn.jspaddanswer.jspaddanswer_cart.jspQuestionSearchFormQuestionDetailFormAddQuestionFormDelQuestionFormSubmitAnswerFormDelAnswerFormSubmitAnswer_CartFormDelAnswer_CartFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽QuestionSearchActionQuestionDetailActionAddQuestionActionDelQuestionActionSubmitAnswerActionDelAnswerActionSubmitAnswer_CartActionDelAnswer_CartActionDBUtilQuestionbeanAnswerbeanKnCart5.1視圖層知識(shí)題管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有6個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-knowledge-ViewJSP.doc。共有8個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-knowledge-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。5.2控制層知識(shí)題管理控制層共有8個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-knowledge-control.doc。5.3模型層知識(shí)題管理模型層共有4個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-knowledge-Model.doc。6問(wèn)卷管理模塊的詳細(xì)設(shè)計(jì)問(wèn)卷管理主要是實(shí)現(xiàn)職位對(duì)應(yīng)的問(wèn)卷維護(hù)功能,問(wèn)卷管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-7所示。表C-7:?jiǎn)柧砉芾砟K的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽examlist.jspexamdetail.jspaddexam_cart.jspquestionadd.jspexamview.jspExamSearchFormExamDetailFormAddExamFormDelExamFormSubmitQuestionToExamFormDelQuestionExamFormViewExamFormOrderQuesFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽ExamSearchActionExamDetailActionAddExamActionDelExamActionQuestionSearchActionSubmitQuestionToExamActionDelQuestionExamActionViewExamActionOrderQuestActionDBUtilExambeanExamCart6.1視圖層問(wèn)卷管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有5個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-Exam-ViewJSP.doc。共有8個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-Exam-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。6.2控制層問(wèn)卷管理控制層共有9個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Exam-control.doc。6.3模型層問(wèn)卷管理模型層共有3個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Exam-Model.doc。7簡(jiǎn)歷管理模塊的詳細(xì)設(shè)計(jì)簡(jiǎn)歷管理主要實(shí)現(xiàn)對(duì)應(yīng)聘者提交的簡(jiǎn)歷和問(wèn)卷的整理功能,簡(jiǎn)歷管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-8所示。表C-8:簡(jiǎn)歷管理模塊的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽Joblist.jspPersoninfo.jsppersoninfoDetail.jspReply.jspJoblistFormReplyFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽ResumeActionResumelistActionPersoninfoActionPersoninfoDetailActionInReplyActionReplyActionDBUtilJobbeanReplybean7.1視圖層簡(jiǎn)歷管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有4個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-Resume-ViewJSP.doc。共有2個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-Resume-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。7.2控制層簡(jiǎn)歷管理控制層共有6個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Resume-control.doc。7.3模型層簡(jiǎn)歷管理模型層共有3個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Resume-Model.doc。8面試管理模塊的詳細(xì)設(shè)計(jì)面試管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-9所示。表C-9:面試管理的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽interview.jspinterviewState.jspCVdetail.jspinterviewResult.jspInterviewStateFormCVdetailForminterviewResultFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽InInterviewActioninterviewActionwaitActioninterviewedActionViewResumeActioninterviewStateActioninterviewResultActionDBUtilJobbeanInterviewbean8.1視圖層面試管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有4個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-Interview-ViewJSP.doc。共有3個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-Interview-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。8.2控制層面試管理控制層共有7個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Interview-control.doc。8.3模型層面試管理模型層共有3個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Resume-Model.doc。9用戶登錄模塊的詳細(xì)設(shè)計(jì)用戶登陸管理主要實(shí)現(xiàn)了對(duì)管理端用戶登錄的驗(yàn)證和權(quán)限管理功能,用戶登陸管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-10所示。表C-10:用戶登陸管理的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽index.jspmain.jspcenter.jsptop.jspleft.jspbottom.jspLoginFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽LoginActionDBUtilPermissionUserbean9.1視圖層用戶登陸管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有6個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-Login-ViewJSP.doc。共有1個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-Login-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。9.2控制層用戶登陸管理控制層共有1個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Login-control.doc。9.3模型層用戶登陸管理模型層共有3個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Login-Model.doc。10用戶管理模塊的詳細(xì)設(shè)計(jì)用戶管理主要實(shí)現(xiàn)對(duì)管理端用戶的增刪功能以及用戶的權(quán)限設(shè)置功能,用戶管理的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-11所示。表C-11:用戶管理的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽main.jspuserlist.jspuserdetail.jspadduser.jspUserListFormUserDetailFormModifyUserFormAddUserFormDelUserFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽UserListActionUserDetailActionModifyUserActionSubmitModifyActionAddUserActionSubmitAddActionDelUserActionDBUtilUserBean10.1視圖層用戶管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有4個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-User-ViewJSP.doc。共有5個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-User-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。10.2控制層用戶管理控制層共有7個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-User-control.doc。10.3模型層用戶管理模型層共有2個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-User-Model.doc。11客戶端模塊的詳細(xì)設(shè)計(jì)客戶端模塊主要實(shí)現(xiàn)應(yīng)聘者提交簡(jiǎn)歷的功能,客戶端模塊的Struct視圖層、控制層和模型層三個(gè)層次的模塊如表C-12所示。表C-12:客戶端的三層模塊視圖控制器模型JSP組件ActionFormBean客戶標(biāo)簽index.jspjoblist.jspjobdetail.jspCVbasicinfo.jspcarieer.jspeducation.jspskills.jsprelation.jspaddtion.jspCVall.jspexam.jspJobFormJobDetailFormCVbasicinfoFormCarieerFormEducationFormSkillsFormRelationFormAddtionFormCVallFormExamFormStructHtml標(biāo)簽StructBean標(biāo)簽StructLogic標(biāo)簽用戶自定義CV標(biāo)簽庫(kù)的標(biāo)簽EnActionJobDetailActionApplyJobActionAddbasicinfoActionProcesscarieerActionAddcarieerActionBackcarieerActionProcesseducationActionAddeducationActionBackeducationActionProcessskillsActionAddskillsActionBackskillsActionProcessrelationActionAddrelationActionBackrelationActionAddaddtionActionBackaddtionActionCvallActionBackCvallActionSubmitActionBacksubmitActionDBUtilCVDataBean11.1視圖層客戶端管理視圖層包括JSP組件、Form組件以及標(biāo)簽庫(kù)等。共有11個(gè)JSP文件,詳見(jiàn)demo和偽代碼文件WSZP-PD-DD-Client-ViewJSP.doc。共有10個(gè)Form文件,每個(gè)Form模塊的偽代碼詳見(jiàn)文件WSZP-PD-DD-Client-ViewForm.doc。標(biāo)簽庫(kù)詳見(jiàn)12.1描述。11.2控制層客戶端管理控制層共有22個(gè)Action文件,每個(gè)Action偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Client-control.doc。11.3模型層客戶端管理模型層共有2個(gè)Bean文,每個(gè)Bean偽代碼的描述詳見(jiàn)文件WSZP-PD-DD-Client-Model.doc。12復(fù)用的模塊復(fù)用是本系統(tǒng)設(shè)計(jì)的一個(gè)重要原則,尤其struct體系本身也遵循了復(fù)用的原理,本系統(tǒng)復(fù)用的部分主要包括標(biāo)簽庫(kù)、數(shù)據(jù)庫(kù)基本操作以及結(jié)果的顯示等環(huán)節(jié)。12.1客戶標(biāo)簽庫(kù)客戶標(biāo)簽庫(kù)主要包括Struct標(biāo)準(zhǔn)標(biāo)簽庫(kù)本系統(tǒng)中使用了StructHtml標(biāo)簽、StructBean標(biāo)簽和StructLogic,他們是Struct標(biāo)準(zhǔn)標(biāo)簽庫(kù)。自定義標(biāo)簽庫(kù)CV標(biāo)簽是系統(tǒng)自定義的標(biāo)簽庫(kù),表C-13是CV標(biāo)簽庫(kù)的標(biāo)簽?zāi)K。 表C-13:CV標(biāo)簽庫(kù)的標(biāo)簽?zāi)K序號(hào)標(biāo)簽功能描述1ValidateSessionTag身份驗(yàn)證2PageBeanTag分頁(yè)表C-14是身份驗(yàn)證的偽代碼說(shuō)明,用戶登錄后進(jìn)入的每個(gè)頁(yè)面,為了安全的考慮管理端都需要進(jìn)行用戶驗(yàn)證,以防止非法登錄,驗(yàn)證每個(gè)頁(yè)面的JSP都可以標(biāo)簽的方式使用這個(gè)復(fù)用的。表C-14:身份驗(yàn)證的偽代碼/***@System:OnlineCVSystem*@Version:1.0*@Copyright(C)2006byXXX,Inc.AllRightsReserved.*@Class:ValidateSessionTag*@Summary:對(duì)用戶的身份驗(yàn)證*@Create:2006.03.28郭士榕*@Update:*/packagetag;importjavax.servlet.http.HttpSession;importjavax.servlet.jsp.JspException;importjavax.servlet.jsp.tagext.TagSupport;importmons.logging.Log;importmons.logging.LogFactory;/***ValidateSessionTag是客戶端標(biāo)簽,以判斷用戶是否具有訪問(wèn)當(dāng)前頁(yè)面的權(quán)限*通過(guò)保持、判斷一個(gè)session實(shí)現(xiàn)*/publicfinalclassValidateSessionTagextendsTagSupport{ privateStringname="username";privateStringpage="/login.jsp";privateLoglog=LogFactory.getLog(this.getClass().getName());publicintdoEndTag()throwsJspException{ booleanvalid=false; HttpSessionsession=pageContext.getSession(); //判斷session中是否有用戶信息存在//如果用戶存在則不做任何處理 //用戶不存在則跳轉(zhuǎn)到指定的頁(yè)面 }publicintdoStartTag()throwsJspException{ return(SKIP_BODY);}//獲取用戶信息publicStringgetName(){ 。。。。。。}//獲取用戶當(dāng)前訪問(wèn)的頁(yè)面publicStringgetPage(){ 。。。。。。} //如果用戶沒(méi)有當(dāng)前頁(yè)面的訪問(wèn)訪問(wèn)權(quán)限,則返回到指定頁(yè)面,設(shè)置這個(gè)指定頁(yè)面publicvoidrelease(){。。。。。。}//設(shè)置用戶信息publicvoidsetName(Stringname){。。。。。。}//設(shè)置當(dāng)前頁(yè)面publicvoidsetPage(Stringpage){ 。。。。。。}}其它詳見(jiàn)文件WSZP-PD-DD-Reuse-CVTag.doc,它對(duì)每個(gè)模塊的偽代碼都有比較詳細(xì)的描述。12.2數(shù)據(jù)庫(kù)的基本操作所有的模塊都需要進(jìn)行數(shù)據(jù)庫(kù)的操作,應(yīng)該有一個(gè)通用的,高質(zhì)量的數(shù)據(jù)庫(kù)操作模塊,其實(shí)所有的模型層的模塊也都調(diào)用這個(gè)模塊的。這個(gè)模塊的名稱(chēng)是DBUtil,類(lèi)名DB。表C-15是它的偽代碼描述。表C-15:數(shù)據(jù)庫(kù)的基本操作/***@System:OnlineCVSystem*@Version:1.0*@Copyright(C)2006bychangjiangcompany,Inc.AllRightsReserved.*@Class:DB*@Summary:取得數(shù)據(jù)庫(kù)連接并對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、增加記錄、刪除記錄操作*@Create:2006.04.27李林*@Update:*/packagecom.changjiangcompany.struts.javashare;importjava.sql.*;importjava.util.*;importcom.microsoft.jdbcx.sqlserver.SQLServerDataSource;publicclassDB{ privateStatementstmt=null; privateResultSetrs=null; publicDBConnect(){ //初始化連接 。。。。。 }/** *方法:executeQuery *描述:執(zhí)行查詢記錄操作 *輸入?yún)?shù):Stringstrsql要執(zhí)行操作的sql語(yǔ)句 *返回:ArrayListArrayRs查詢的結(jié)果 *異常:SQLException */publicArrayListexecuteQuery(SQLServerDataSourcesource,StringstrSql)throwsSQLException{/* *連接數(shù)據(jù)庫(kù) *//* *執(zhí)行SQL的查詢語(yǔ)句 */。。。。。。 /* *將每條記錄寫(xiě)入ArrayList里 */ 。。。。。。 }/** *方法:executeInsert *描述:執(zhí)行插入記錄操作 *輸入:Stringstrsql要執(zhí)行操作的sql語(yǔ)句 *返回:boolean類(lèi)型,插入操作是否正確執(zhí)行 *異常處理:SQLException */ publicbooleanexecuteInsert(SQLServerDataSourcesource,StringstrSql)throwsSQLException{/* *連接數(shù)據(jù)庫(kù) *//* *執(zhí)行SQL的插入語(yǔ)句 */。。。。。。 /* *返回SQL插入語(yǔ)句執(zhí)行的正確或者錯(cuò)誤 */}/** *方法:executeUpdate *描述:執(zhí)行更新操作 *輸入:Stringstrsql要執(zhí)行操作的sql語(yǔ)句 *返回:int更新操作的記錄數(shù) *異常處理:SQLException */ publicintexecuteUpdate(SQLServerDataSourcesource,StringstrSql)throwsSQLException{/* *連接數(shù)據(jù)庫(kù) *//* *執(zhí)行SQL的修改語(yǔ)句 */。。。。。。 /* *返回SQL修改語(yǔ)句執(zhí)行的記錄數(shù) */}/** *方法:executeDelete *描述:執(zhí)行刪除操作 *輸入:Stringstrsql要執(zhí)行操作的sql語(yǔ)句 *返回:int刪除操作的記錄數(shù) *異常處理:SQLException */ publicintexecuteDelete(SQLServerDataSourcesource,StringstrSql)throwsSQLException{/* *連接數(shù)據(jù)庫(kù) *//* *執(zhí)行SQL的刪除語(yǔ)句 */。。。。。。 /* *返回SQL刪除語(yǔ)句記錄數(shù) */}12.3結(jié)果顯示為了保證系統(tǒng)顯示結(jié)果的一致性和統(tǒng)一性,系統(tǒng)中所有的結(jié)果顯示要調(diào)用統(tǒng)一的結(jié)果顯示頁(yè)面,表C-16是結(jié)果顯示一覽表。表C-16:結(jié)果顯示頁(yè)面一覽表序號(hào)模塊名功能說(shuō)明1SuccessResult成功登陸2WrongResult結(jié)果錯(cuò)誤3Common操作提示4Top主頁(yè)面的頭部5Bottom主頁(yè)面的腳部6Left主頁(yè)面的右部各個(gè)模塊詳見(jiàn)文件WSZP-PD-DD-Reuse-ResultShow.doc,它對(duì)每個(gè)模塊的偽代碼都有比較詳細(xì)的描述。13配置文件Struct應(yīng)用采用兩個(gè)基于XML的配置文件來(lái)配置應(yīng)用,這兩個(gè)配置文件為Web.xml和strcut-config.Xml。Web.xml適用于所有的JavaWeb應(yīng)用,他是Web應(yīng)用的發(fā)布描述文件,在JavaServlet規(guī)范中對(duì)它做了定義,對(duì)于Struct應(yīng)用,在Web.xml文件中除了配置JavaWeb應(yīng)用的常規(guī)信息,還應(yīng)該配置和Struct相關(guān)的特殊信息。strcut-config.Xml是Struct應(yīng)用專(zhuān)有的配置文件,事實(shí)上,也可以根據(jù)需要給這個(gè)配置文件換為其它的文件名。下面給出本項(xiàng)目中Web.xml配置文件和strcut-config.Xml配置文件的配置步驟和范圍,在編碼實(shí)施過(guò)程中,由開(kāi)發(fā)經(jīng)理指派專(zhuān)人負(fù)責(zé)所有文件的具體配置和協(xié)調(diào)。13.1Web.xml配置文件 Web.xml配置文件的配置步驟和范圍配置Struct的ActionServlet在Web.xml中配置ActionServlet主要包括聲明ActionServlet(即配置<Servlet>元素)、運(yùn)行時(shí)環(huán)境的初始化配置(即配置<Servlet>元素的<init-param>的子元素)和指定ActionServlet可以處理哪些URL(即配置<Servlet-mapping>元素)。例如<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.structs.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struct-config.xml</param-value></init-param></servlet><servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern></servlet-mapping>配置歡迎文件清單當(dāng)客戶訪問(wèn)Web應(yīng)用時(shí),如果沒(méi)有指定具體的文件名,Web容器可以自動(dòng)調(diào)用Web應(yīng)用的歡迎文件。<welcome-file-list>元素用來(lái)設(shè)置歡迎文件清單。例如:<welcome-file-list> <welcome-file>index.jsp</welcome-file><welcome-file>login.jsp</welcome-file></welcome-file-list>配置錯(cuò)誤處理在系統(tǒng)運(yùn)行過(guò)程中如果錯(cuò)誤發(fā)生而Struct框架不能處理這種錯(cuò)誤時(shí),就將錯(cuò)誤拋給Web容器,為了避免讓用戶看到原始的錯(cuò)誤信息,可以配置<error>元素及其子元素<error-code>和<exception-type>等.例如:<error> <error-code>404</error-code> <location>/common/404.jsp</location></error><error> <exception-type>java.io.IOException</exception-type> <location>/common/system_ioerror.jsp</location></error>配置標(biāo)簽庫(kù)Strcut框架提供了一些實(shí)用的客戶化標(biāo)簽庫(kù),如果在應(yīng)用中使用了標(biāo)簽庫(kù),那么必須在配置元素<taglib>中配置它們,它有兩個(gè)子元素,<taglib-url>和<taglib-location>.例如:<taglib><taglib-url>/WEB-INF/struts-bean.tld</taglib-url><taglib-location>/WEB-INF/struts-bean.tld</taglib-location></taglib>13.2strcut-config.Xml配置文件Struts框架在啟動(dòng)的時(shí)候會(huì)讀入其配置文件,根據(jù)它來(lái)創(chuàng)建和配置各種組件.Struts配置文件使得開(kāi)發(fā)者可以靈活地組裝和配置各個(gè)組件,提高了應(yīng)用軟件的可擴(kuò)展性和靈活性.<struts-config>有8個(gè)子元素:<data-sources><form-beans>,<global-exceptions>,<global-forwards>,<action-mappings>,<controller>,<message-resources>,<plug-in>在配置文件中,必須按照這個(gè)先后順序來(lái)配置各個(gè)子元素.<data-sources>元素<data-sources>元素用來(lái)配置應(yīng)用所需要的數(shù)據(jù)源,數(shù)據(jù)源負(fù)責(zé)建立和特定數(shù)據(jù)庫(kù)的連接。<data-sources>元素包含零個(gè)、或者多個(gè)<data-source>子元素,它配置特定的數(shù)據(jù)源,可以包含多個(gè)<set-property>。例如: <data-sources> <data-sourcekey="sqlserver"type="mons.dbcp.BasicDataSource"> <set-propertyproperty="driverClassName"value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> <set-propertyproperty="url"value="jdbc:microsoft:sqlserver://:1433;DatabaseName=onlineCV"/> <set-propertyproperty="maxActive"value="5"/> <set-propertyproperty="username"value="sa"/> <set-propertyproperty="password"value="xiaobo633601"/> <set-propertyproperty="autoCommit"value="true"/> </data-source> </data-sources><form-beans>元素<form-beans>元素用來(lái)配置多個(gè)ActionFormBean。<form-beans>元素包含零個(gè)或者多個(gè)<form-bean>子元素,每個(gè)<form-bean>元素又包含多個(gè)屬性。例如: <form-beans> <form-beanname="AddJobForm"type="org.apache.struts.action.DynaActionForm"> <form-propertyname="JobName"type="java.lang.String"/> <form-propertyname="PubDate"type="java.lang.String"/> <form-propertyname="EndDate"type="java.lang.String"/> <form-propertyname="Requirements"type="java.lang.String"/> <form-propertyname="Description"type="java.lang.String"/> <form-propertyname="JobNum"type="java.lang.Integer"/> </form-bean> <form-beanname="JobDetailForm"type="org.apache.struts.action.DynaActionForm"> <form-propertyname="JobID"type="java.lang.Integer"/> <form-propertyname="JobName"type="java.lang.String"/> <form-propertyname="PubDate"type="java.lang.String"/> <form-propertyname="EndDate"type="java.lang.String"/> <form-propertyname="Description"type="java.lang.String"/> <form-propertyname="Requirements"type="java.lang.String"/> <form-propertyname="JobNum"type="java.lang.Integer"/> </form-bean></form-beans><global-exceptions>元素<global-exceptions>元素用于配置異常處理,<global-exceptions>元素可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論