资源描述
项目编号
200602006
文档编号
12
密 级
内部
网上招聘系统详细设计
V1.0
评 审 日 期: 2006年4月12日
目 录
1. 导言 4
1.1 目的 4
1.2 范围 4
1.3 缩写说明 4
1.4 术语定义 5
1.5引用标准 5
1.6 参考资料 5
1.7 版本更新信息 5
2 系统设计概述 5
3 详细设计概述 6
4职位管理模块的详细设计 6
4.1视图层 7
4.2控制层 12
4.3模型层 14
5题库管理模块的详细设计 19
5.1视图层 19
5.2控制层 20
5.3模型层 20
6 问卷管理模块的详细设计 20
6.1视图层 20
6.2控制层 21
6.3模型层 21
7简历管理模块的详细设计 21
7.1视图层 21
7.2控制层 22
7.3模型层 22
8 面试管理模块的详细设计 22
8.1视图层 22
8.2控制层 23
8.3模型层 23
9用户登录模块的详细设计 23
9.1视图层 23
9.2控制层 24
9.3模型层 24
10用户管理模块的详细设计 24
10.1视图层 24
10.2控制层 25
10.3模型层 25
11 客户端模块的详细设计 25
11.1视图层 26
11.2控制层 26
12复用的模块 27
12.1客户标签库 27
12.2数据库的基本操作 29
12.3结果显示 33
13配置文件 33
13.1 Web.xml配置文件 33
13.2 strcut-config.Xml配置文件 35
1. 导言
1.1 目的
该文档的目的是描述《网上招聘系统》项目的详细设计,其主要内容包括:
- 系统功能简介
- 系统详细设计简述
- 各个模块的三层划分
- 最小模块组件的伪代码
本文档的预期的读者是:
l 开发人员
l 项目管理人员
l 测试人员
1.2 范围
该文档定义了系统的各个模块和模块接口,但未确定单元的具体实现,这部分内容将在实现中确定。
1.3 缩写说明
HR
Human Resource(人力资源管理)的缩写。
JSP
Java Server Page(Java服务器页面)的缩写,一个脚本化的语言。
MVC
Model-View-Control(模式-视图-控制)的缩写,表示一个三层的结构体系。
1.4 术语定义
Struct:一种框架体系结构。
1.5引用标准
[1] 《企业文档格式标准》 V1.1
北京长江软件有限公司
[2] 《软件详细设计报告格式标准》 V1.1
北京长江软件有限公司软件工程过程化组织
1.6 参考资料
[1] 《实战struct》 〔美〕Ted Husted
机械工业出版社
1.7 版本更新信息
本文档版本更新记录如表C-1:
表C-1 版本更新记录
修改编号
修改日期
修改后版本
修改位置
修改内容概述
000
2006.5.1
1.0
全部
初始发布版本
2 系统设计概述
根据《网上招聘系统》的概要设计,本系统按照功能角度分解,可以分为客户端子系统和管理端子系统。根据页面流的设计,管理端系统分为用户登录、用户管理、题库管理、问卷管理、职位管理、简历管理、面试管理等7个模块,他们的关系如图C-1,以下将分小节对各个部分分别进行详细设计。
网上招聘系统
管理端子系统
客户端子系统
登录管理
用户管理
题库管理
问卷管理
职位管理
简历管理
面试管理
图C-1:模块设计
3 详细设计概述
由于本系统采用了基于struct体系结构的设计,即采用MVC的三层设计模式,采用面向对象的Java语言以及JSP的脚本语言。所以,基本采用面向对象的设计方法。在整个的开发过程中,尽可能采用复用的原则,例如采用标签库,统一数据库的基本操作,统一结果显示等。
本文档的详细设计主要是按照Struct的MVC的三个层次分别编制视图层、控制层和模型层模块的伪代码。为下一步的编码提供基础。伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。因此,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言。
4职位管理模块的详细设计
职位管理模块主要实现网上招聘职位的维护和发布,职位管理的Struct视图层、控制层和模型层三个层次的模块如表C-2所示。
表C-2:职位管理模块的三层模块
视图
控制器
模型
JSP组件
ActionFormBean
客户标签
Joblist
jobdetail
modifyjob
Modifyjobsubmit
addjob
jobsearchdetail
Selectexam
modifyselectvalueexam
modifyjobsubmit
modifyselectjobexam
modifyvaluesubmit
JobDetailForm
ModifyJobForm
UpdateModifyJspForm
ModifyJobSubmitForm
UpdateForm
AddFullJobForm
DelJobForm
JobSearchForm
AddJobValueExamPreForm
AddJobValueExamForm
UpdateJobCartForm
AddJobExamPreForm
AddJobExamForm
DelJobExamForm
ModifyJobValueExamPreForm
ModifyJobValueExamForm
ModifyJobExamPremForm
ModifyJobExamForm
ModifyDelValueExamForm
ModifyDelJobExamForm
Struct Html标签
Struct Bean标签
Struct Logic标签
用户自定义CV标签库的标签
JobListAction
JobDetailAction
ModifyJobAction
UpdateModifyJspAction
ModifyJobSubmitAction
AddJobPreAction
UpdateAciton
AddFullJobAction
DelJobAction
JobSearchAction
AddJobValueExamPreAction
AddJobValueAction
UpdateJobCartAction
AddJobExamPreAction
AddJobExamAction
DelJobExamAction
ModifyJobValueExamPreAction
ModifyJobValueExamAction
ModifyJobExamPreAction
ModifyJobExamAction
ModifyDelValueExamAction
ModifyDelJobExamAction
DBUtil
JobBean
JobCartBean
JobEaxmBean
EaxmBean
4.1视图层
视图层主要实现表示层的功能,视图层包括JSP组件、Form组件以及JSP中标签库等。
(一) JSP组件
职位管理视图层共有11个JSP文件,JSP文件详见demo和伪代码文件WSZP-PD-DD-Position-ViewJSP.doc。
(二) Form组件
职位管理视图层共有20个Form文件,表C-3是AddJobForm的伪代码描述。
表C-3
/**
* @System: Online Job Application System
* @Version: 1.0
* @Copyright (C) 2006 by changjiang company, Inc. All Rights Reserved.
* @Class: AddJobForm
* @Summary: 只增加职位信息的Form
* @Create: 2006.04.23 章飞
* @Update: 2006.04.28 章飞
*/
package com.changjiangcompany.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
// 集成了ActionForm的属性和方法
public class SubmitAnswerForm extends ActionForm {
// --------------------------------------------------------- Instance Variables
/** 职位名称 */
private String JobName;
/** 职位发布日期 */
private String PubDate;
/** 职位发布结束日期 */
private String EndDate;
/** 职位描述 */
private String Description;
/** 职位要求 */
private String Requirements;
/** 招聘人数 */
private int JobNum;
// --------------------------------------------------------- Methods
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(
ActionMapping mapping,
HttpServletRequest request)
{
。。。。。。
}
/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request)
{
。。。。。。
}
/**
* 返回 JobName.
*
*/
public String getJobName()
{
。。。。。。
}
/**
* 赋值 JobName.
*
*/
public void setJobName(String JobName)
{
。。。。。。
}
/**
* 返回 PubDate.
*
*/
public String getPubDate()
{
。。。。。。
}
/**
* 赋值 PubDate.
*
*/
public void setPubDate(String PubDate)
{
。。。。。。
}
/**
* 返回 EndDate.
*
*/
public String getEndDate()
{
。。。。。。
}
/**
* 赋值 EndDate.
*
*/
public void setPubDate(String EndDate)
{
。。。。。。
}
/**
* 返回 Description.
*
*/
public String getDescription()
{
。。。。。。
}
/**
* 赋值 Description.
*
*/
public void setDescription(String Description)
{
。。。。。。
}
/**
* 返回 Requirements.
*
*/
public String getRequirements()
{
。。。。。。
}
/**
* 赋值 Requirements.
*
*/
public void setRequirements(String Requirements)
{
。。。。。。
}
/**
* 返回 JobNum.
*
*/
public int getJobNum()
{
。。。。。。
}
/**
* 赋值 JobNum.
*
*/
public void setJobNum(int JobNum)
{
。。。。。。
}
}
其它Form伪代码详见文件WSZP-PD-DD-Position-ViewForm.doc,它有关于每个Form的伪代码的详细描述。
(三) 客户标签库
客户端的标签库包括Struct Html标签、Struct Bean标签、Struct Logic标签和自定义标签库,其中Struct Html标签、Struct Bean标签和Struct Logic标签是Struct的标签库,而CV标签库是本系统自定义的标签。详见复用模块的详细设计。
4.2控制层
职位管理控制层共有22个Action文件,表C-4是AddJobAction的伪代码描述。
表C-4: AddJobAction的伪代码
/**
* @System: Online CV System
* @Version: 1.0
* @Copyright (C) 2006 by changjiang company, Inc. All Rights Reserved.
* @Class: AddJobAction
* @Summary: 只增加职位信息的Action
* @Create: 2006.04.23 章飞
* @Update: 2006.04.28 章飞
*/
package com.changjiangcompany.struts.action;
import java.util.Vector;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import share.Constants;
import com.changjiangcompany.DB;
import com.changjiangcompany.Job;
// AddJobAction 集成了Action的基本方法和属性
public class AddJobAction extends Action {
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
// 获取新增加的职位信息
DynaActionForm AddJobForm = (DynaActionForm) form;
。。。。。。
HttpSession session = request.getSession();
Vector JobList = new Vector();
// 连接数据库
。。。。。。
// 将职位基本信息封装到员工类型的对象
try {
Job job = new Job();
。。。。。。
// 将增加的职位信息加入到对应的数据库
。。。。。。
}
}
其它Action伪代码详见文件WSZP-PD-DD-Position-control.doc,它有关于每个Action伪代码的详细描述。
4.3模型层
职位管理模型层共有5个组件,表C-5是JobBean的伪代码描述。
表C-5: JobBean的伪代码
/**
* @System: Online CV System
* @Version: 1.0
* @Copyright (C) 2006 by changjiang company, Inc. All Rights Reserved.
* @Class: Job
* @Summary: 处理Job信息的bean
* @Create: 2006.04.23 冯杰
* @Update: 2006.04.28 冯杰
*/
package com.changjiangcompany;
import java.sql.ResultSet;
import java.util.Vector;
public class Job {
// 与职位信息相关的基本属性和方法
public int JobID;
public int JobNum;
public String JobName;
public String PubDate;
public String EndDate;
public String Description;
public String Requirements;
public Job() {}
// 职位描述属性的set及get方法
public String getDescription()
{
。。。。。。
}
public void setDescription(String Description)
{
。。。。。。
}
// 职位描述截止日期set及get方法
public String getEndDate()
{
。。。。。。
}
public void setEndDate(String EndDate)
{
。。。。。。
}
// 职位ID的set及get方法
public int getJobID()
{
。。。。。。
}
public void setJobID(int JobID)
{
。。。。。。
}
// 职位名称的set及get方法
public String getJobName()
{
。。。。。。
}
public void setJobName(String JobName)
{
。。。。。。
}
// 职位招聘人数的set及get方法
public int getJobNum()
{
。。。。。。
}
public void setJobNum(int JobNum)
{
。。。。。。
}
// 职位发布日期的set及get方法
public String getPubDate()
{
。。。。。。
}
public void setPubDate(String PubDate)
{
。。。。。。
}
// 职位要求属性的set及get方法
public String getRequirements()
{
。。。。。。
}
public void setRequirements(String Requirements)
{
。。。。。。
}
/**
* 方法: jobSearch
* 描述: 查询满足条件的职位信息
* @param DB db 数据库对象
* @param String JobName 职位名称
* @param String PubDate 发布日期
* @param String EndDate 截止日期
* @return Vector 职位列表
* @throws Exception
*/
public static Vector jobSearch(DB db, String JobName,
String PubDate, String EndDate) throws Exception
{
。。。。。。
}
/**
* 方法: getJobList
* 描述: 获取职位列表
* @param DB db 数据库对象
* @return Vector 职位列表
* @throws Exception
*/
public static Vector getJobList(DB db)throws Exception
{
。。。。。。
}
/**
* 方法: getJobDetail
* 描述: 获取职位详细信息
* @param DB db 数据库对象
* @param int JobID 职位代号
* @return Vector 职位列表
* @throws Exception
*/
public Vector getJobDetail(DB db,int JobID) throws Exception
{
。。。。。。
}
/**
* 方法: addJob
* 描述: 新加职位Form信息
* @param DB db 数据库对象
* @param String JobName 职位名称
* @param String PubDate 发布日期
* @param String EndDate 截止日期
* @param String Description 职位描述
* @param String Requirements 职位要求
* @param String JobNum 招聘人数
* @return boolean 数据库操作是否成功
* @throws Exception
*/
public boolean addJob(DB db,String JobName,String PubDate,String EndDate,String Description,String Requirements,int JobNum) throws Exception
{
。。。。。。
}
/**
* 方法: modifyJob
* 描述: 修改职位信息
* @param DB db 数据库对象
* @param String JobID 职位代号
* @param String JobName 职位名称
* @param String PubDate 发布日期
* @param String EndDate 截止日期
* @param String Description 职位描述
* @param String Requirements 职位要求
* @param String JobNum 招聘人数
* @return boolean 数据库操作是否成功
* @throws Exception
*/
public boolean modifyJob(DB db,int JobID,String JobName,
String PubDate, String EndDate,String Description,
String Requirements, int JobNum) throws Exception
{
。。。。。。
}
/**
* 方法: DeleteJob
* 描述: 删除职位信息
* @param DB db 数据库对象
* @param int JobID 职位代号
* @return boolean 数据库操作是否成功
* @throws Exception
*/
public boolean DeleteJob(DB db,int JobID) throws Exception
{
。。。。。。
}
}
其它模型组件的伪代码详见文件WSZP-PD-DD-Position-Model.doc,它有关于每个类、Bean的伪代码的详细描述。
5题库管理模块的详细设计
题库管理主要是提供职位问卷的相关题目,题库管理的Struct视图层、控制层和模型层三个层次的模块如表C-6所示。
表C-6:知识题库管理模块的三层模块
视图
控制器
模型
JSP组件
ActionFormBean
客户标签
kninlist.jsp
knlist.jsp
kndetail.jsp
addkn.jsp
addanswer.jsp
addanswer_cart.jsp
QuestionSearchForm
QuestionDetailForm
AddQuestionForm
DelQuestionForm
SubmitAnswerForm
DelAnswerForm
SubmitAnswer_CartForm
DelAnswer_CartForm
Struct Html标签
Struct Bean标签
Struct Logic标签
用户自定义CV标签库的标签
QuestionSearchAction
QuestionDetailAction
AddQuestionAction
DelQuestionAction
SubmitAnswerAction
DelAnswerAction
SubmitAnswer_CartAction
DelAnswer_CartAction
DBUtil
Questionbean
Answerbean
KnCart
5.1视图层
知识题管理视图层包括JSP组件、Form组件以及标签库等。共有6个JSP文件,详见demo和伪代码文件WSZP-PD-DD-knowledge-ViewJSP.doc。共有8个Form文件,每个Form模块的伪代码详见文件WSZP-PD-DD-knowledge-ViewForm.doc。标签库详见12.1描述。
5.2控制层
知识题管理控制层共有8个Action文件,每个Action伪代码的描述详见文件WSZP-PD-DD- knowledge-control.doc。
5.3模型层
知识题管理模型层共有4个Bean文,每个Bean伪代码的描述详见文件WSZP-PD-DD-knowledge-Model.doc。
6 问卷管理模块的详细设计
问卷管理主要是实现职位对应的问卷维护功能,问卷管理的Struct视图层、控制层和模型层三个层次的模块如表C-7所示。
表C-7:问卷管理模块的三层模块
视图
控制器
模型
JSP组件
ActionFormBean
客户标签
examlist.jsp
examdetail.jsp
addexam_cart.jsp
questionadd.jsp
examview.jsp
ExamSearchForm
ExamDetailForm
AddExamForm
DelExamForm
SubmitQuestionToExamForm
DelQuestionExamForm
ViewExamForm
OrderQuesForm
Struct Html标签
Struct Bean标签
Struct Logic标签
用户自定义CV标签库的标签
ExamSearchAction
ExamDetailAction
AddExamAction
DelExamAction
QuestionSearchAction
SubmitQuestionToExamAction
DelQuestionExamAction
ViewExamAction
OrderQuestAction
DBUtil
Exambean
ExamCart
6.1视图层
问卷管理视图层包括JSP组件、Form组件以及标签库等。共有5个JSP文件,详见demo和伪代码文件WSZP-PD-DD-Exam-ViewJSP.doc。共有8个Form文件,每个Form模块的伪代码详见文件WSZP-PD-DD-Exam-ViewForm.doc。标签库详见12.1描述。
6.2控制层
问卷管理控制层共有9个Action文件,每个Action伪代码的描述详见文件WSZP-PD-DD- Exam-control.doc。
6.3模型层
问卷管理模型层共有3个Bean文,每个Bean伪代码的描述详见文件WSZP-PD-DD-Exam-Model.doc。
7简历管理模块的详细设计
简历管理主要实现对应聘者提交的简历和问卷的整理功能,简历管理的Struct视图层、控制层和模型层三个层次的模块如表C-8所示。
表C-8:简历管理模块的三层模块
视图
控制器
模型
JSP组件
ActionFormBean
客户标签
Joblist.jsp
Personinfo.jsp
personinfoDetail.jsp
Reply.jsp
JoblistForm
ReplyForm
Struct Html标签
Struct Bean标签
Struct Logic标签
用户自定义CV标签库的标签
ResumeAction
ResumelistAction
PersoninfoAction
PersoninfoDetailAction
InReplyAction
ReplyAction
DBUtil
Jobbean
Replybean
7.1视图层
简历管理视图层包括JSP组件、Form组件以及标签库等。共有4个JSP文件,详见demo和伪代码文件WSZP-PD-DD-Resume-ViewJSP.doc。共有2个Form文件,每个Form模块的伪代码详见文件WSZP-PD-DD-Resume-ViewForm.doc。标签库详见12.1描述。
7.2控制层
简历管理控制层共有6个Action文件,每个Action伪代码的描述详见文件WSZP-PD-DD- Resume-control.doc。
7.3模型层
简历管理模型层共有3个Bean文,每个Bean伪代码的描述详见文件WSZP-PD-DD-Resume-Model.doc。
8 面试管理模块的详细设计
面试管理的Struct视图层、控制层和模型层三个层次的模块如表C-9所示。
表C-9:面试管理的三层模块
视图
控制器
模型
JSP组件
ActionFormBean
客户标签
interview.jsp
interviewState.jsp
CVdetail.jsp
interviewResult.jsp
InterviewStateForm
CVdetailForm
interviewResultForm
Struct Html标签
Struct Bean标签
Struct Logic标签
用户自定义CV标签库的标签
InInterviewAction
interviewAction
waitAction
interviewedAction
ViewResumeAction
interviewStateAction
interviewResultAction
DBUtil
Jobbean
Interviewbean
8.1视图层
面试管理视图层包括JSP组件、Form组件以及标签库等。共有4个JSP文件,详见demo和伪代码文件WSZP-PD-DD-Interview-ViewJSP.doc。共有3个Form文件,每个Form模块的伪代码详见文件WSZP-PD-DD-Interview-ViewForm.doc。标签库详见12
展开阅读全文