分类号:TP315 U D C:D10621-408-(2007)5978-0
密 级:公 开 编 号:2003031227
成都信息工程学院
学位论文
基于JSP技术的猎头公司管理软件的设计和实现
——内部事务部分
基于JSP技术的猎头公司管理软件的设计和实现
——内部事务部分
摘 要
随着信息科学技术的飞速发展,人们逐渐意识到对信息管理软件的运用可以使日常工作更加方便、快捷和高效。论文详细论述了猎头公司管理软件内部事务部分的开发设计过程。软件采用JSP开发技术,Tomcat作容器, SQL Server 2000作数据库管理系统,实现了公共模块、用户登录模块、系统主页模块、公司新闻模块、公司通知模块、用户资料管理模块、查询模块、员工管理模块、工资管理模块。软件符合猎头公司内部管理的需求,能够帮助公司切实提高工作效率。软件的开发符合一般管理软件的开发流程,对开发其他类似的管理软件具有相当的参考价值。
论文组织如下:首先阐述了该系统的开发背景、意义;其次介绍了相关的理论基础;接着对系统的需求进行了分析,并提出了具体的设计方案;然后展现了系统各功能模块的实现;最后对该软件进行了严格的测试。
关键词:管理软件;JSP;Tomcat;SQL server 2000
The Design and Implementation of Headhunter Company Management Software based on JSP
——the Part of the Internal Management
Abstract
Along with the rapid development of the information science technology, people gradually realize that the utilization of information management software could make the routine more convenient, quickly00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 and efficient. The paper discusses in detail the development and design process of the internal management of headhunter company management software. It uses JSP as the development technology, Tomcat as the container, SQL Server 2000 as the database management system, and includes common modules, users login module, homepage, company news module, company announcement, users data management, query module, staff management, salaries management, etc.. It can accord with the internal management requirement of headhunter company, and can help the company enhance its work efficiency. Its development conforms to most general management softwares and is valuable for other similar management software.
The paper is organized as following: Firstly, analyzes the background and significance; Secondly, introduces the foundation of correlative theories; Thirdly, analyses the demand of the system, gives a specific design project; Then shows the implementation of every module. Finally gives a test of the system.
Key words: Management software; JSP; Tomcat; SQL server 2000
目 录
论文总页数:25页
1 引言11
1.1背景11
1.2选题意义11
2 理论基础11
3 需求分析及设计方案22
3.1 需求分析22
3.2 设计方案33
3.2.1 模块的划分33
3.2.2 详细设计33
4 具体流程及实现55
4.1 具体流程55
4.1.1 登录55
4.1.2主页55
4.1.3 各功能模块页面66
4.2 实现77
4.2.1 数据库的设计77
4.2.2 界面的设计1212
5 测试2121
5.1 测试环境2121
5.1.1 硬件环境2121
5.1.2 软件环境2121
5.2 主要模块测试2121
结 论2222
参考文献2323
致 谢2424
声 明2525
1 引言
1.1背景
猎头公司在外国已有几十年的历史,而中国出现猎头行业不过十来年的事。早期主要是为外企在中国的机构寻找本土人才。近年来,许多国企,特别是一些上市的股份公司、民营高科技企业也跻身于猎头公司客户的行列。
改革开放后,企业走向市场,人才走向市场,当企业向市场要效率的时候,对人才的需求日益迫切,这时,作为搜寻人才的有效方式,猎头公司就很自然地抢滩中国大地。
国内最早的猎头公司是1992年成立的。到1995年北京就审批了3家以猎头为主的有独立法人资格的国内猎头公司和两家兼做猎头的报道越来越多;公司里,白领以接到猎头电话为荣;越来越多的中介公司涉足猎头业务。 从全国来看,以北京、上海、广州、深圳为核心的猎头公司为以百计,并成倍递增,而国外的猎头公司也开始大量地进驻中国,几乎国际著名的猎头公司都在国内设立了办事处。
猎头市场在中国真的启动起来了。据不完全统计,中国现在大大小小的猎头公司上千家,主要集中在北京、上海、深圳、广州、天津、南京等大城市。
1.2选题意义
在背景里已经猎头行业的现状,在这种大环境下,猎头公司对各种员工内部管理也变的十分重要了,怎么提高管理效率,实现员工的工作智能化,成为迫切需要解决的问题,而猎头管理软件正是为满足猎头公司的管理而出现的。
虽然猎头管理软件这块,中国远远比不上做了几十年的欧美,但是欧美软件的成本却让中国本土的猎头公司望而却步,这就对国内软件行业提出了要求,谁能占得先机就能拥有更多的市场竞争力,谁能针对猎头行业开发出更适应猎头的软件就拥有更多的技术竞争里,所以,开发猎头管理软件不只能提高猎头公司的管理和办公的效率,更重要的是,中国本土开发的软件,成本上就有竞争力,对整个猎头行业都有很大的贡献。
2 理论基础
在前面的引言里已经说了猎头行业的背景,在这种大环境下,猎头公司对各种员工内部管理软件的需求也变的迫切了,而在猎头管理软件这块,中国远远比不上做了几十年的欧美,但是欧美软件的成本却让中国本土的猎头公司望而却步,这就对国内软件行业提出了需求,谁能占的先机就能拥有更多的市场竞争力,谁能针对猎头行业开发出更适应猎头的软件就拥有更多的技术竞争里,所以,抢先涉及猎头领域是我们成功的前提,而怎样开发好更好的软件是我们成功的关键。
目前国内主流的软件开发基于两种模式:客户机/服务器(Client/Server,简称C/S)模式和Web浏览器/服务器(Browser/Server,简称B/S)模式。虽然出于安全性等方面的因素,C/S结构的管理信息系统仍然占据企业管理信息系统的主流,但是,由于B/S系统更适合维护,而且起安全性正在不断完善,所以当前企业信息管理系统正在从C/S结构向B/S结构转移。而现在开发B/S系统的主流技术就是http://ASP.net和JSP,虽然http://ASP.net为新兴技术正不断抢占JSP的市场,但出于系统的移植性的考虑,本系统还是运用JSP技术开发,因为JAVA的跨平台性能给我们带来更多的用户。
服务器上我们选择Tomcat,是因为它小巧却功能强大,更重要的是,它是开源的,如今,开源软件越来越受到人们的重视,Linux就是一个成功的典型,虽然这对我们的开发没有实际的用处,但是顾客会优先选择用流行工具开发的软件,这也是我们选择Tomcat的原因。
现在主流的数据库就三种:Access, Oracle和SQL Server。Access短小精干,操作方便,是开发小型系统的首选;Oracle功能强大,适合开发大型系统;但是我们选择SQL Server,它兼备Access和Oracle优点,强大的可视化操作和不亚于Oracle的功能是我们选择它的理由。
3 需求分析及设计方案
3.1 需求分析
根据客户的需要,本软件系统是猎头公司内部管理系统,用户仅限于公司内部员工,需求功能主要是员工或者公司的管理层能通过软件系统,进行一系列的操作,从而实现管理公司的目的,下面是具体的需求:
(1)既然软件系统的用户仅限于公司内部的员工,所以就必须要有判断是否内部员工的功能。
(2)员工应该能从软件系统上了解到公司内部的新闻和通知,并且公司的管理层应该有发布和修改的功能。
(3)有一些突发事件随时有可能发生,如地址和联系方式的变化,这就要求员工能通过系统对自己的一些资料进行修改。
(4)员工不可能记的住公司每个人的地址、联系方式等,所以要有通过查询得知其他员工一些资料的功能。
(5)公司随时都可能根据发展计划进行新员工的加入和老员工的退出,这就要公司的管理层能通过软件系统随时录入和删除员工的资料。
(6)既然是管理软件,其主要功能还是公司的管理层能通过软件系统对公司的管理,如财务部的能从系统的计算结果得知每个人的薪金,人事部能随时通过系统调出员工的资料,每个部门的管理者都能对自己部门的员工的业绩进行操作等等。
3.2 设计方案
3.2.1 模块的划分
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,而设计方案则是根据需求分析,规划出系统的功能模块,具体的划分如下:
1.公共模块
2.用户登录模块
3.系统主页模块
4.公司新闻模块
5.公司通知模块
6.用户对自己资料的操作模块
7.查询模块
8.各部门高层对本部门员工的操作模块
9.工资计算模块
如图1所示:
`
图1 猎头管理软件功能模块示意图
3.2.2 详细设计
软件系统主要是公司的管理层对公司的管理,但是也有一般员工通过系统获取同事的资料和公司的通知,而且就算公司的管理层也有职位的不同,所以权限的设计就成为必然,然后就是数据的不同,有些数据只要是公司员工就能看到,而还有写数据却只有管理层才能看到,所以数据要进行数据的分类,而把两者结合在一起就是通过权限的判断,不同的权限看到的数据不一样,不同的权限的对数据的操作也不一样,这是本系统的核心。
1.权限设计
根据系统具体要实现的功能把所有员工分为三种权限,分别是一颗星,两颗星和三颗星,映射着不同的职位,下面是详细说明:
(1)一至三颗星
部门经理职位以下的员工都在此权限,在此权限的员工能看见和操作的数据包括:能获取公司的新闻和通知;能看到自己的一些资料,并能查询到自己的薪金;能修改自己的一些资料,如地址、联系方式等;能通过一个搜索条,搜索到其他员工的公开资料。
(2)四颗星
各部门的部门经理或其授权的系统管理员为四颗星权限,在此权限的员工能看见和操作的数据包括:所有一颗星权限的操作;能发布新闻和通知,并能对自己发布的进行修改和删除的操作;能查看所有员工的公开资料和保密资料;能对自己部门的员工资料进行操作;并且四颗星权限内,只有财务部部门经理或起授权的系统管理员,才能看到所有员工的薪金。
(3)五颗星
总经理、懂事长等高于部门经理职位的员工或其授权的系统管理员为五颗星权限,在此权限的员工能看见和操作的数据包括:所有两颗星的操作;能对所有的新闻和通知进行修改和删除的操作;能对所有部门的员工资料进行任何操作;能看到所有员工薪金。
2.数据分类
系统数据主要分为两类:员工资料和公司的新闻通知。以下是详细的说明:
(1)员工资料
系员工资料又分为两类,公开资料和保密资料:
公开资料是诸如姓名、性别、部门、职务、地址、联系方式等一些所有员工都能看到的数据。
保密资料包括公司管理层对员工的评价、备注,员工的详细简历等一些详细的资料,还有就是员工的业绩和薪金。这些资料都是公司的管理层才能看到,也只有公司的管理层才能对其操作。
(2)新闻通知
新闻通知是公司的新闻和一些诸如开会、比赛等的通知。所有员工都能看到这些数据,但只有公司的管理层才能对其操作。
4 具体流程及实现
4.1 具体流程
4.1.1 登录
用户登录通过后根据登录ID查询数据库并返回用户权限,根据用户的权限显示主页,不同的权限做看到的主页不同。
4.1.2主页
1.四颗星以下权限员工所看到的页面
最上面有一个退出登录的链接,点击回到“登录”页面
能看到一个搜索条,通过搜索链接到“个人详细资料” 页面,查看被搜索员工的公开资料。
可以看到一些自己的资料,并在下面有二个链接:查看详细资料和修改个人资料,点击分别进入“个人详细资料”和“修改个人资料”的页面,查看自己的详细资料、工资,修改自己的联系方式等。
能看到公司最新的通知,下面有一个查看以往通知的链接,点击进入“所有通知”页面查看所有通知。
能看到公司最新的10条新闻的标题,点击标题就能进入“新闻内容”的页面,下面有一个所有新闻的链接,点击进入“所有新闻”页面查看所有新闻。
2.四颗星以上权限员工所看到的页面
所有一颗星权限员工能看到的数据。
能在最上面的标题图片下面看到一个各部门的菜单,列出了所有部门的链接,无论点击哪个都会进入“部门员工清单”页面。
也能通过搜索条搜索员工,但是链接到“员工详细资料”页面。
有一个添加员工和员工业绩的链接,点击进入“添加员工”页面和“员工业绩”页面。
能看到发布通知和添加新闻的链接,点击进入“发布通知”和“添加新闻”页面。
只有财务部的四颗星员工和五颗星员工才能看到员工薪金的链接,点击进入“员工薪金清单”页面。
4.1.3 各功能模块页面
(1)“个人详细资料”页面
显示员工的公开资料。
(2)“修改个人资料”页面
修改自己的联系方式和地址。
(3)“所有通知”页面
在页面的左边部分列出了所有通知的发布时间,点击时右面便显示点击消息的内容。
(4)“新闻内容”页面
显示新闻的发布人,发布时间和内容。
(5)“所有新闻”页面
在页面左边部分列出了所有新闻的标题,点击时右面变显示点击新闻的内容。
(6)“部门员工清单”页面
根据链接来是所传来的部门的参数显示部门所有员工的一个清单,每个员工仅显示了编号、姓名、性别、部门四个资料,在每个员工后面还有一个详细资料的链接,点击进入“员工详细资料”页面。如果登录的是两颗星权限,并且登录者的部门和显示页面的部门一致的情况下或者登录的是三颗星权限的情况下,那么便会在每个员工的最后面看到一个删除的链接,点击删除此名员工的所有资料。
(7)“员工详细资料”页面
显示员工所有的资料,包括公开资料和保密资料。如果登录的是两颗星权限,并且登录者的部门和所显示员工的部门一致的情况下或者登录的是三颗星权限的情况下,就会在下面看到一个修改的链接,点击进入“修改员工资料”页面。
(8)“修改员工资料”页面
修改员工的资料。
(9)“添加员工”页面
当新员工加入的时候添加员工。
(10)“发布通知”页面
发布通知。
(11)“添加新闻”页面
添加新闻。
(12)“员工业绩新闻”页面
各部门的部门经理,对所属员工的业绩进行加减。
(13)“员工业绩新闻”页面
财务部的部门经理和公司部门经理以上职位的能人看到公司所有人当月薪金。
如图2所示:
图2 猎头管理软件流程图
4.2 实现
4.2.1 数据库的设计
1.创建数据库
首先在 SQL Server 2000 的企业管理器中创建一个名为 manager 的数据库。
2.创建表
数据库 manager 包含 7 个表:员工权限表(userpassword)、员工公开资料表(public_userdata)、员工保密资料表(interior_userdata)、公司理念表(com_idea)、新闻表(news)、通知表(notice)、员工业绩表(contribution)。详细如下:
(1)员工权限表
员工权限表(userpassword)用来保存每个员工的登录帐号、口令和登录权限,结构如表1:
表1 员工权限表(userpassword)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | USERID | vachar(7) | 员工编号(主键) |
2 | PASSWORD | varchar(7) | 登录密码 |
3 | JURISDICTION | varchar(10) | 员工权限 |
(2)员工公开资料表
员工公开资料表(public_userdata)用来保存每个员工的公开资料,结构如表2:
表2 员工公开资料表(public_userdata)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | USERID | vachar(7) | 员工编号(主键) |
2 | USERNAME | varchar(10) | 员工姓名 |
3 | SEX | varchar(2) | 员工性别 |
4 | DEPARTMENT | varchar(10) | 所属部门 |
5 | DUTY | varchar(10) | 员工职务 |
6 | TEL | varchar(30) | 联系电话 |
7 | E_MAIL | varchar(50) | E_mail |
8 | ADDRESS | varchar(50) | 地址 |
(3)员工保密资料表
员工保密资料表(interior_userdata)用来保存每个员工的保密资料,结构如表3:
表3 员工保密资料表(interior_userdata)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | USERID | vachar(7) | 员工编号(主键) |
2 | ADDCOMDATE | varchar(10) | 加入公司时间 |
3 | DOCUMENT | varchar(8000) | 员工档案 |
(4)公司理念表
公司理念表(com_idea)用来保存公司的理念,结构如表4:
表4 公司理念表(com_idea)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | ID | int(4) | 理念序号,标识种子,增量1(主键) |
2 | TITLE | varchar(100) | 理念标题 |
3 | BODY | varchar(8000) | 理念内容 |
4 | ADDDATE | varchar(50) | 加入日期 |
5 | ADDUSER | varchar(10) | 加入员工姓名 |
(5)新闻表
新闻表(news)用来保存公司的新闻,结构如表5:
表5 新闻表(news)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | ID | int(4) | 新闻序号,标识种子,增量1(主键) |
2 | TITLE | varchar(100) | 新闻标题 |
3 | BODY | varchar(8000) | 新闻内容 |
4 | ADDDATE | varchar(30) | 加入日期 |
5 | ADDUSER | varchar(10) | 加入员工姓名 |
(6)通知表
通知表(notice)用来保存公司的通知,结构如表6:
表6 通知表(notice)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | ID | int(4) | 通知序号,标识种子,增量1(主键) |
2 | CONTENT | varchar(1000) | 通知标题 |
3 | ADDDATE | varchar(30) | 加入日期 |
4 | ADDUSER | varchar(10) | 加入员工姓名 |
(7)员工业绩表
员工业绩表(contribution)用来保存员工每月的业绩,结构如表7:
表7 员工业绩表(contribution)
编号 | 字段名称 | 数据结构 | 说明 |
---|---|---|---|
1 | USERID | int(4) | 员工编号 |
2 | CONTRIBUTION | int(4) | 员工业绩 |
3 | DATE | varchar(10) | 当月日期 |
3.数据库的连接
在实现各个模块之前,首先要建立与数据库 manager 的连接,因为在系统中,这个操作非常频繁,所以我把它写成了两个 javabean : DBConnection.class 和 DBSQL.class,下面是详细的说明:
DBConnection.class 是用 JDBC 建立与数据库的连接,具体代码如下:
public class DBConnection
{
private String driverName ="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //驱动名称
private String url ="jdbc:microsoft:sqlserver://localhost:1433;databaseName=manage"; //驱动路径
private String user = "sa"; //数据库用户名
private String password = "sa"; //数据库密码
public Connection getConnection()
{
try
{
Class.forName(driverName); //加载驱动
return DriverManager.getConnection(url, user, password); //建立连接
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
}
DBSQL.class 通过调用 DBConnection.class 的对象建立与数据库的连接,然后执行传来的 SQL 语句,返回操作的结果集,代码如下:
public class DBSQL
{
protected Connection conn = null;//Connection对象
protected Statement stmt = null;//Statement对象
protected ResultSet rs = null;//记录结果集
protected String sqlStr;//SQL语句
public DBSQL()
{
try
{
sqlStr = "";
DBConnection dcm = new DBConnection(); //实例 DBConnection 对象
conn = dcm.getConnection(); //获得连接
stmt = conn.createStatement(); //获取执行 SQL 语句命令对象
}
catch (Exception e)
{
System.out.println(e);
}
}
public Statement getStmt()
{
return stmt;
}
public Connection getConn()
{
return conn;
}
public ResultSet getRs()
{
return rs;
}
public void setSqlStr(String newSqlStr) //获得SQL语句
{
this.sqlStr=newSqlStr;
}
public String getSqlStr() {
return sqlStr;
}
public void executeQuery() throws Exception
{
rs = stmt.executeQuery(sqlStr); //记录结果集
}
public void executeUpdate() throws Exception
{
stmt.executeUpdate(sqlStr); //执行 SQL 语句
}
public void close() throws SQLException //关闭数据库连接
{
if ( stmt != null )
{
stmt.close();
stmt = null;
}
conn.close();
conn = null;
}
}
4.2.2 界面的设计
猎头公司管理软件由9个模块13个前台显示界面、14个后台操作页面和5个公共页面组成,因受论文篇幅所限,仅给出部分模块的设计和代码。
1.公共模块
公共模块是各个模块都可能用要的,在本系统中公共模块主要包括整个系统都要用到的图片和一些公共的调用,如对系统当前时间的读取,把它写到公共页面里,每次只要把公共页面包括进去,直接读取时间变量就行,具体实现的代码如下:
java.util.Date cur_time = new java.util.Date();//读取系统当前时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//定义读取时间格式
String dateString = formatter.format(cur_time);//付值给变量
2.用户登录模块
用户登录界面(login.jsp)用于员工的登录,主要功能用于判断用户输入的登录名和密码是否合法。
界面如图3:
图3 猎头管理软件登录界面图
当用户输入不合法的用户或者密码的时候,就会弹出错误对话框,在本系统,将用户和密码的规则都设为七位,所以当没有输入或者输入错误的时候就会弹出提醒对话框,此功能的实现是在前台登录的jsp页面嵌入一个javascript,具体的代码如下:
<script language="javascript"> //用javascript判断用户的输入是否合法
function checkform()
{
if (form.userid.value.length!=7)
{
alert("请输入正确的编号!");
form.userid.focus();
return false;
}
if (form.password.value.length!=7)
{
alert("请输入正确的密码!");
form.password.focus();
return false;
}
return true;
}
</script>
通过在登录表单设置onClick属性来调用上面的javascript,具体代码如下:
<input type="submit" name="Submit" value="登录" onClick="javascript:return(checkform());">
当用户输入完毕点击登录按钮后,就会跳转到后台的检查页面,检查页面的功能是,通过用户输入的用户名和密码作为参数,到数据库里面去查找是否有匹配的项,如果有,则登录成功,跳转到系统主页面;如果没有,则返回登录页面,并显示用户名或密码错误。然后将登录状态设置为真,具体是通过给Session付值来实现具体代码如下:
String userid = new String(request.getParameter ("userid").trim().getBytes("ISO-8859-1"));
String password = new String(request.getParameter
("password").trim().getBytes("ISO-8859-1"));//接受从用户输入的用户名和密码
String sql = "SELECT * FROM userpassword WHERE USERID='"+userid+"' AND PASSWORD='"+password+"'";//通过用户名和密码在userpassword表中寻找是否有匹配项
DBSQL dbsql = new DBSQL();//连接数据库
dbsql.setSqlStr(sql);
dbsql.executeQuery();//执行SQL语句
ResultSet rs = dbsql.getRs();//返回结果集
if (!rs.next()) //判断登录用户和密码在数据库里是否存在
{
String errmsg="error1";
response.sendRedirect("login.jsp?errmsg="+errmsg);//不存在则返回登录页面,并提示错误
return;
}
request.getSession(true);//存在则设置登录状态为真
String chk="true";
session.putValue("Enter",chk);
session.putValue("userid",userid);//记录登录用户的用户名
response.sendRedirect("index.jsp");//登录成功,跳转到主页面
3.系统主页模块
系统主页面(index.jsp)是员工进入系统后的一个操作索引,所有的操作都从这里开始,在此页面中,对权限的判断十分重要,不同权限的员工所看到的界面是不一样的,详细如下:
四颗星以下权限的员工登录后所看到的界面如图4:
图4 猎头管理软件主界面界面图
四颗星以上权限的员工登录后所看到的界面如图5:
图5 猎头管理软件主界面界面图
不同权限员工看到的不同界面主要是部门菜单显示和非显示,具体的实现是用java代码实现的,具体如下:
<%
String userid=(String)session.getValue("userid");//通过session获取登录用户的用户名
String sql="SELECT * FROM userpassword WHERE USERID ='"+userid+"'";
DBSQL dbsql = new DBSQL();
dbsql.setSqlStr(sql);
dbsql.executeQuery();
ResultSet rs=dbsql.getRs();
rs.next();
String jurisdiction=new String(rs.getString("JURISDICTION"));//利用登录用户的用户名,通过查询员工权限表,得到登录用户的权限
sql="SELECT * FROM public_userdata WHERE USERID ='"+userid+"'";
dbsql.setSqlStr(sql);
dbsql.executeQuery();
rs=dbsql.getRs();
rs.next();
String userdepartment = rs.getString("DEPARTMENT");//利用登录用户的用户名,通过查询员工公开资料表,得到登录用户的所属部门
if(jurisdiction.equals("****")||jurisdiction.equals("*****"))//判断登录用户权限决定是否显示,只有四颗星和五颗星登录权限才能显示
{
String renshi_department="人事部";
String houqin_department="后勤部";
String caiwu_department="财务部";
String yewu_department="业务部";
String jishu_department="技术部";
%>
<table width="800" border="0" cellpadding="0" cellspacing="0" bgcolor="#66CCFF">
<tr>
<td width="100"><div align="center"><a href="userlist.jsp?department=<%=renshi_department%>">人事部</a></div></td>
<td width="100"><div align="center"><a href="userlist.jsp?department=<%=houqin_department%>">后勤部</a></div></td>
<td width="100"><div align="center"><a href="userlist.jsp?department=<%=caiwu_department%>">财务部</a></div></td>
<td width="100"><div align="center"><a href="userlist.jsp?department=<%=yewu_department%>">业务部</a></div></td>
<td width="100"><div align="center"><a href="userlist.jsp?department=<%=jishu_department%>">技术部</a></div></td>
<td width="100"><div align="center"><a href="contributionlist.jsp">员工业绩</a></div></td>
<%
if(userdepartment.equals("财务部")||jurisdiction.equals("*****"))//用一个嵌套if语句,判断权限,只有财务部的部门经理和五颗星权限显示员工薪金
{
%>
<td width="100"><div align="center"><a href="salarylist.jsp">员工薪金</a></div></td>
<%
}
%>
<td width="100"><div align="center"><a href="adduser.jsp">添加员工</a></div></td>
</tr>
</table>
<%
}
%>
4.查询模块
查询模块是方便公司员工查询其他员工的一些资料而设计的,这也涉及到权限问题,一般员工的登录权限只能查询其他员工的公开资料,而管理层的登录权限不仅可以查询到公开资料,也能查询保密资料,这个功能是根据登录者的权限点击链接时,跳转到不同的显示页面来实现的。
一般员工查询的跳转页面如图6:
图6 员工公开资料界面图
公司管理层查询的跳转页面如图7:
图7 员工所有资料界面图
代码如下:
String userid=(String)session.getValue("userid");//获取登录者用户名
String sql="SELECT * FROM userpassword WHERE USERID ='"+userid+"'";
DBSQL dbsql = new DBSQL();
dbsql.setSqlStr(sql);
dbsql.executeQuery();
ResultSet rs=dbsql.getRs();
rs.next();
String jurisdiction=new String(rs.getString("JURISDICTION"));//根据用户名查询数据库,得到登录权限
String username = new String(request.getParameter("keyword").
trim().getBytes("ISO-8859-1"));//获取用户输入的查询关键字
sql = "SELECT * FROM public_userdata WHERE USERNAME='"+username+"'";
dbsql.setSqlStr(sql);
dbsql.executeQuery();
rs=dbsql.getRs();//根据关键字查询数据库
if (!rs.next())// 判断是否有此人
{
out.println("没有此人!");
}
else
{
if(jurisdiction.equals("****")||jurisdiction.equals("*****"))//判断登录权限
{
response.sendRedirect("particularuser.jsp?userid="+rs.getString("USERID"));//四颗星以上登录权限者跳转到particularuser.jsp页面查看被查询者资料
}
else
{
response.sendRedirect("usermessage.jsp?userid="+rs.getString("USERID"));//其他登录权限的则跳转到usermessage.jsp页面查看被查询者资料
}
}
5.薪金计算模块
员工每月薪金的计算是和员工的职务与业绩分不开的,而职务和员工的权限又是成正比的,所以和薪金相关的就是员工的权限与业绩,员工的权限是固定的,而每个月的业绩确实浮动的,所以具体的实现是:每个权限对应不同的固定薪金,然后每个员工的业绩通过一个算法,得到浮动薪金,把这两部分加起来就是员工的总薪金。这个算法我把它封装到了一个javabean里面,具体代码如下:
public class Salary
{
protected int salary;//员工总薪金
public Salary(String jurisdiction,int contribution)
{
try
{
int _salary = 0;
//不同权限对应不同的固定薪金
if (jurisdiction.equals("*"))
{
_salary = 1500;
}
if (jurisdiction.equals("**"))
{
_salary = 2000;
}
if (jurisdiction.equals("***"))
{
_salary = 3000;
}
if (jurisdiction.equals("****"))
{
_salary = 5000;
}
if (jurisdiction.equals("*****"))
{
_salary = 8000;
}
this.salary = _salary + contribution * 200;//计算员工总薪金
}
catch (Exception e) {
System.out.println(e.toString());
}
}
public int getSalary() //获取薪金
{
return salary;
}
};
但需要计算某个员工薪金时,只需把这个员工的权限和业绩作为参数实例这个类的一个对象,然后调用getSalary()方法就能取的薪金,具体调用如下:
Salary sal = new Salary(jurisdiction,contribution);// jurisdiction和contribution为员工的权限和当月业绩
int salary = sal.getSalary();
5 测试
5.1 测试环境
5.1.1 硬件环境
普通计算机配置。
5.1.2 软件环境
系统软件:WindowsXP。
工具软件:IE浏览器。
5.2 主要模块测试
测试是一个系统最后的工作,测试的质量直接影响客户对软件的评价,对开发人员的评价,所以测试要尽量仔细,因受论文篇幅所限,只给出登录模块的测试。
在图3中如输入不符合规则的用户名,就会弹出一个对话框,如图8:
图8 登录错误图
在图3中如用户名格式正确,但密码的格式不正确,也会弹出一个对话框,如图9:
图9 登录错误图
在图3中如用户和密码的格式都正确,但数据库里没有此帐户,或者帐户存在,密码错误,就会显示错误消息,如图10:
图10 登录错误图
结 论
通过毕业设计,完成了一个猎头公司的管理软件,实现了公共模块、用户登录模块、系统主页模块、公司新闻模块、公司通知模块、用户资料管理模块、查询模块、员工管理模块、工资管理模块。在设计过程中,通过查阅资料文献,使自己对猎头公司内部管理流程有了比较深刻的了解,增加了自己的知识面;通过搭建系统框架,培养了自己分析问题和解决问题的能力;通过具体代码的编写,增加了自己对的项目经验,这些都对自己以后工作打下了良好的基础。完成软件具有员工对公司信息的获取,公司对员工的管理等功能,实现了公司管理的网上办公,极大的提高了工作效率,而且,软件是基于B/S模式,具有很好的维护性和可扩展性。但是,由于技术实现方面的原因,有些功能还有带改进,如:部门经理权限的员工可以查询到比公司高层的保密资料,这在很多公司是不被允许的。
参考文献
[1] 张琴,张千帆.从零开始JSP动态网页制作基础培训教程[M].北京:人民邮电出版社,2005。
[2] 杜秀川,王缦.JSP网络编程:基于数据驱动的Web开发[M].北京:电子工业出版社,2006。
[3] 耿祥义,张跃平.JAVA2使用教程[M].北京:清华大学出版社,2004。
[4] 方睿,刁仁宏,吴四九.网络数据库原理及应用[M].成都:四川大学出版社,2005。
[5] 杨珏.JSP网络开发技术[M].北京:人民邮电出版社,2001。
[6] 李曙光.JSP开发实例完全剖析[M].北京:中国电力出版社,2006。
[7] 王诚梅,袁然,王艳.JSP案例开发集锦[M].北京:电子工业出版社,2005。
致 谢
本文是在李文涛、曾令明老师的热情关心和指导下完成的,他们渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!
最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!
作者简介
姓 名: 性别:男
出生年月: 民族:汉
E-mail:
声 明
本论文的工作是 2007年2月至2007年6月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。
关于学位论文使用权和研究成果知识产权的说明:
本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括:
(1)学校有权保管并向有关部门递交学位论文的原件与复印件。
(2)学校可以采用影印、缩印或其他复制方式保存学位论文。
(3)学校可以学术交流为目的复制、赠送和交换学位论文。
(4)学校可允许学位论文被查阅或借阅。
(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。
除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。
特此声明!
作者签名: