《Java Web开发》项目
http://www.verycd.com/topics/239368/——网上招聘
项目概要
· 该招聘站点提供一个平台给用人单位和求职者,用人单位在站点上发布招聘信息,求职者可以通过网络查看自己感兴趣的工作。
· 同时,求职者可以在招聘站点上注册自己的个人信息,用人单位可以检索与招聘职位要求符合的求职者。并可以通过信件的形式通知符合招聘条件的求职者面试。用人单位可以把诸多符合条件的求职者添加到收藏夹,作为人才储备。
· 求职者可以把自己感兴趣的单位添加到个人的收藏夹,也可以向用人单位发送邮件。
· 使用B/S结构
项目目标
· 掌握JSP界面制作。
· 掌握Servlet的使用。
· 掌握会话跟踪技术的使用。
· 掌握CSS 和层在页面的运用
项目描述
项目分为单位、个人和公共三个模块:
· 公共模块实现的功能:
· 站点在首页上以
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
的形式显示当日最新8个用人单位招聘职位、最新的8个求职信息,以列表的形式显示最新6条招聘新闻和该新闻被点击的次数。首页上还提供“更多”的超链接,点击这些超链接,在新窗口分别以分页的形式显示全部的招聘职位、个人求职信息和招聘新闻。
· 点击招聘单位的超链接,在新窗口显示该单位的详细介绍;点击招聘职位的超链接,在新窗口显示该职位的相关描述和要求;点击每个招聘新闻标题的超链接,在新窗口显示新闻的详细内容。
· 首页上提供按条件搜索的功能,用户可以搜索职位信息和求职信息,在新窗口以分页的方式显示搜索结果。
· 首页上提供注册和分类登录功能。
· 个人模块实现功能:
· 个人求职用户可以登录到系统,第一次注册的用户可以新增个人基本资料、个人特长和工作经历、希望的工作和联系方式作为简历等信息。
· 已注册用户可以选择性的修改简历中的个人的求职信息。
· “修改登录密码”超链接可以修改密码。
· “全部职位列表”以表格的形式显示与个人求职意向匹配的职位信息,多条以分页的方式显示。每条信息提供公司名称和职位名称超链接,用来在新窗口显示详细信息。同时,提供“发信”和“添加到收夹”超链接。
· “发信”功能向招聘单位发送求职信。对于求职者感兴趣的职位,可以添加到收藏夹。
· “我的收藏夹”以表格的形式招聘单位名称和职位,同时提供“发信”和“删除”超链接。求职者可以给照片单位发送求职信,也可以删除收藏夹内容。
· “我的信箱”以表格的形式显示发信单位、标题、回复和删除超链接。并实现这些功能。
· 实现推出登录功能
· 单位模块实现功能:
· 功能和个人模块差不多,单位用户可以登录到系统,第一次注册的单位用户可以新增单位的基本资料。
· 已注册的单位用户可以选择性的修改单位的基本信息。
· “发布招聘信息”超链接用来发布职位信息。
· “修改登录密码”超链接可以用来修改密码。
· “全部人才列表”以表格的形式显示所有求职者信息,多条以分页的方式显示。每条信息显示“姓名”超链接,用来在新窗口显示该求职者的详细信息。同时,提供“发信”和“添加到收夹”超链接。
· “发信”功能向求职者发送面试通知。对于招聘单位感兴趣的求职者,可以添加到收藏夹。
· “我的收藏夹”以表格的形式显示求职者的姓名、性别、学历、应聘职位。姓名使用超链接,用来在新窗口显示该求职者的详细信息。提供“发信”和“删除”超链接。招聘单位可以给求职者发送面试通知,也可以删除收藏夹内容。
· “我的信箱”以表格的形式显示发信单位、标题、回复和删除超链接。并实现这些功能。
· 实现退出登录功能
项目实践
第一阶段:
阶段描述:
设计数据库:整个系统包括8个表。分别是招聘单位信息表、用户信息表、职位信息表、工作新闻表、个人邮箱表、个人收藏夹表、招聘单位信息表、招聘单位邮箱表、招聘单位收藏夹表。如下:
· 招聘单位信息表( company)
序号
字段
类型
大小
允许空
字段
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
1
id
int
F
公司编号自动增长,主件
2
uname
varchar
20
F
公司登录名 唯一约束约束
3
pwd
varchar
20
F
密码
4
trade
varchar
20
T
所属行业
5
ctype
varchar
50
T
企业类型,外资、民营等
6
area
varchar
50
T
省份或城市
7
fund
int
T
注册资金(百万为单位)
8
fdate
datetime
T
公司成立日期
9
address
varchar
200
T
公司所在地
10
zip
varchar
6
T
邮政编码
11
pname
varchar
10
T
联系人姓名
12
phone
varchar
20
T
联系电话
13
fax
varchar
20
T
传真
14
email
varchar
50
T
电子邮件
15
http
varchar
50
T
公司网站地址
16
summary
varchar
1000
T
公司简介
17
click
int
T
点击数
· 招聘职位信息表( job)
序号
字段
类型
大小
允许空
字段说明
1
id
int
F
职位编号,自动增长,主键
2
jobname
varchar
50
F
职位名称
3
idate
datetime
T
F
职位发布日期
4
number
int
T
职位需求数量
5
location
varchar
50
T
工作地点
6
description
varchar
200
T
职位描述
7
requirement
varchar
200
T
职位要求
8
cid
int
T
公司的ID ,外键
· 个人求职信息表( person)
序号
字段
类型
大小
允许空
字段说明
1
uname
varchar
20
F
个人登录名称,主键
2
pwd
varchar
20
T
密码
3
iname
varchar
20
T
真实姓名
4
code
varchar
18
T
身份证号码
5
mzhu
varchar
20
T
民族
6
marry
varchar
10
T
婚姻状况
7
politics
varchar
20
T
政治面貌
8
zchen
varchar
20
T
职称
9
birthday
datetime
T
生日
10
sex
varchar
10
T
性别
11
householder
varchar
50
T
户口所在地
12
edu
varchar
20
T
学历
13
school
varchar
20
T
毕业学校
14
major
varchar
20
T
专业
15
language
varchar
50
T
语言
16
lanlevel
varchar
10
T
语言级别
17
mandarin
varchar
20
T
普通话程度
18
computer
varchar
20
T
计算机能力
19
other
varchar
50
T
其他
20
workyears
int
T
工作年限
21
experience
varchar
2000
T
工作经验
22
jobtype
varchar
50
T
职位类型
23
job
varchar
200
T
职位
24
location
varchar
20
T
工作地点
25
salary
float
T
薪水要求
26
special
varchar
100
T
特长
27
cname
varchar
20
T
联系人
28
phone
varchar
50
T
电话
29
cellphone
varchar
50
T
手机号码
30
email
varchar
50
T
电子邮件
31
qq
varchar
20
T
电子邮件
32
addreess
varchar
100
T
家庭住址
33
http
varchar
50
T
个人主页
34
click
int
T
简历被阅览次数
35
idate
datetime
T
登录日期
· 招聘单位邮箱表( cmailbox)
序号
字段
类型
大小
允许空
字段说明
1
id
int
F
邮件编号自动增长,主键
2
reid
varchar
20
F
公司登录名,外键引用company(uname)
3
senduid
varchar
20
F
个人登录名,外键引用person(uname)
4
sendname
varchar
20
F
发件人姓名
5
title
varchar
50
T
邮件标题
6
mailtext
varchar
8000
T
邮件正文
7
sdate
datetime
T
邮件日期
8
newmail
int
T
是否是新邮件
· 招聘单位收藏夹表( cfavorite)
序号
字段
类型
大小
允许空
字段说明
1
id
int
F
编号自动增长,主键
2
uname
varchar
20
F
公司登录名,外键引用company(uname)
3
fuid
varchar
20
F
个人登录名,外键引用person(uname)
· 求职者邮箱表( pmailbox)
序号
字段
类型
大小
允许空
字段说明
1
id
int
F
2
reid
varchar
20
F
个人登录名,外键引用person(uname)
3
senduid
varchar
20
F
公司登录名,外键引用company(uname)
4
sendname
varchar
20
F
发件人姓名
5
title
varchar
50
T
邮件标题
6
mailtext
varchar
8000
T
邮件正文
7
sdate
datetime
T
邮件日期
8
newmail
int
T
是否是新邮件
· 求职个人收藏夹表( pfavorite)
序号
字段
类型
大小
允许空
字段说明
1
id
int
F
编号自动增长,主键
2
uname
varchar
20
F
个人登录名,外键引用person(uname)
3
fuid
varchar
20
F
公司登录名,外键引用company(uname)
· 招聘新闻表( jobnews)
序号
字段
类型
大小
允许空
字段说明
1
id
int
F
新闻编号自动增长,主键
2
title
varchar
200
T
招聘新闻标题
3
text
varchar
8000
T
新闻内容
4
click
int
T
新闻点击数
5
idate
datetime
T
新闻发布时间
要点分析:
1. 根据相应的信息设计合理的表字段的数据类型。
2. 建立表之间的关系。
第二阶段:
阶段描述:
使用三层结构的方式创建数据库访问对象:
· 建立数据库操作的支持类DBHelper.java 、DBCommand.java和属性文件jdbcInfo.properties。
· 分别为8个表建立对应的DTO。
· 分别为8个表建立数据操作对象DAO。
· 分别为上面定义的业务建立业务接口及相应的业务实现类。
要点分析:
1. DAO部分需要实现对数据库表的增删改查。
2. 定义业务接口以及业务接口中的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。
3. 要在业务实现类中,使用不同的DAO来操作数据库从而实现具体的业务。
参考代码:
Job DTO代码:
package bean;
public class Job {
private Integer id;
private String jobname;
private String idate;
private Integer number;
private String location ;
private String decription;
private String requirement ;
private Integer cid ;
public String getJobname() {
return jobname;
}
public void setJobname(String jobname) {
this.jobname = jobname;
}
public String getIdate() {
return idate;
}
public void setIdate(String idate) {
this.idate = idate;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getDecription() {
return decription;
}
public void setDecription(String decription) {
this.decription = decription;
}
public String getRequirement() {
return requirement;
}
public void setRequirement(String requirement) {
this.requirement = requirement;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
}
JobDAO的代码如下:
package dao;
import java.util.List;
import bean.Job;
public abstract class JobDAO extends BaseDAO {
public abstract List
getAllJobs();
public abstract Job getJobByID(Integer id);
public abstract int updateJob(Job job);
public abstract int insertJob(Job job) ;
public abstract int deleteJobByID(Integer id);
}
JobDAOImpl的代码如下:
package dao;
import java.util.List;
import java.sql.*;
import java.util.*;
import support.*;
import bean.Job;
public class JobDAOImpl extends JobDAO {
private PreparedStatement pstm;
public Job getJobByID(Integer id) {
Job job = null ;
try {
pstm = this.getConn()
.prepareStatement("select * from job where id = ? ");
Map