大家好,今天给大家介绍基于javaEE+ssh+jsp+MySqL的大学生就业信息管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:21097个字
包含内容:整套源码+完整毕业论文+答辩PPT+任务书
提示:以下为毕业设计的简略介绍,项目源码及完整毕业论文下载地址见文末。
绪论
1.1 课题研究的背景
毕业生就业信息管理系统,是为高校毕业生提供就业信息化服务的公益性系统,它的建设目标是以该系统为枢纽,运用统一数据交换标准,适时的数据更新,分工协作的信息收集发布机制,形成毕业生就业服务信息系统,为广大高校毕业生和各类用人单位提供求职和招聘的信息化平台,同时以此为依托,构建高校毕业生就业管理检测网络,为高等学校的专业设置、人才配置等提供准确的决策依据。
省略
1.2 国内外发展状况
目前国内比较优秀的此类网站不胜枚举,最为突出的有“中国高校毕业生就业信息服务网”与“北京大学毕业生就业信息服务网”。它们主要包括了“求职”、“招聘”、“新闻”、“企业介绍”、“政策”、“咨询”六大板块。分别为毕业生提供就业的各类信息帮助,属于非常优秀的网络资源站。通过对这些优秀网站的学习研究为本设计提供了一个很好的参考平台。
1.3 选题的目的及意义
J2EE平台的飞速发展,技术的成熟以及应用领域的不断扩大,为网上信息的交互提供了一个良好的平台和方便的操作界面。由于J2EE平台基于用户需求的设计方法,使得该系统的使用更加的人性化、个人化、更贴近用户。以J2EE平台的构建思想来实现网上信息管理系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。在系统中还采用了CSS层布局技术。使设计更加的简便。毕业生就业问题是大学毕业生至关重要的问题,每个合格的大学毕业生都都将就业途径视为命脉,而“毕业生就业信息管理系统”正是提供这种途径的最佳方式之一,具有极度的应用价值与实用性。
2 系统的开发环境及技术简介
2.1 系统开发环境
2.1.1 MyEclipse
在开发本平台中所用到的开发工具就是是知名的java项目开发工具MyEclipse。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的一种扩展,利用MyEclipse,我们可以在数据库和J2EE的开发、发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。
MyEclipse是一个功能非常丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。
省略
2.1.2 数据库简介
数据库使用的是MySQL开源数据库。
MySQL的特性:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。支持AIX、FreeBSD、HP-UX、Mac OS、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供API。
省略
2.1.3 Tomcat
Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
省略
2.2 系统开发的思想与技术
2.2.1 JSP技术与MVC模式以及系统的基本框架
本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。
2.2.2 S.S.H框架的优点
S.S.H框架是J2EE应用中struts2+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,它由以下3个框架构成:
1.Struts2框架
Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。
图2-1 Struts框架工作流程
2.Spring框架
Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。
图2-2 Spring框架构成
3.Hibernate框架
Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。
图2-3 Hibernate框架
3 系统总体设计
3.1 总体功能模块
本系统分系统管理员,老师用户,企业用户和毕业生用户4个用户角色。总功能图如图3-1所示。
图3-1 系统功能需求分析
3.2 系统管理员功能模块
系统管理员主要功能有系别管理、专业管理、老师管理员管理、站内新闻管理、企业用户管理、岗位管理、文档管理、公告管理、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。系统管理员的功能图如图3-2所示。
图3-2 系统管理员功能图
3.3 老师用户功能模块
老师用户的主要功能有毕业生用户管理、站内新闻查询、文档查询、公告查询、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。老师用户的功能图如图3-3所示。
图3-3 老师用户的功能图
3.4 企业用户功能模块
企业用户的主要功能有求职管理(包括岗位管理和查看应聘学生信息)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。
老师用户的功能图如图3-4所示。
图3-4 企业用户的功能图
3.5 毕业生用户功能模块
毕业生用户的主要功能有简历管理、求职管理(包括查询就业岗位和查看应聘信息,查看招聘单位)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。
图3-5 毕业生用户的功能图
3.6 系统业务描述
本系统分系统管理员,老师用户,企业用户和毕业生用户4个用户角色。系统管理员主要功能有系别管理、专业管理、老师管理员管理、站内新闻管理、企业用户管理、岗位管理、文档管理、公告管理、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。老师用户的主要功能有毕业生用户管理、站内新闻查询、文档查询、公告查询、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。企业用户的主要功能有求职管理(包括岗位管理和查看应聘学生信息)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。毕业生用户的主要功能有简历管理、求职管理(包括查询就业岗位和查看应聘信息,查看招聘单位)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。
用例图如图3-6所示如下:
图3-6 用例图
图3-7 招聘流程图
2.用户注册流程如图3-8所示:
图3-8 用户注册流程图
图3-9 用户登录流程图
4 系统详细设计与实现
4.1 系统和数据库的配置
系统按通用的B/S(浏览器、服务器)模式进行设计(如图4-1):
图4-1 B/S结构
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
4.2 概念模型设计
概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。
本系统E-R图如下:
图4-2 E-R图
4.3 数据库逻辑模型
公告表信息由主键、公告内容、添加时间、是否删除标志、公告标题组成;
简历表信息由主键、添加时间、是否删除标志、简历名称、简历路径、关联的求职者ID,外键组成;
就业表信息由主键、毕业前后就业、从事行业、添加时间、就业分布、是否删除标志、就业时间、性别、关联的老师ID、关联的学生ID、就业省份、就业月份组成;
留言表信息由主键、留言内容、留言时间、是否删除标志、留言标题、关联的用户ID组成;
投递记录表信息由主键、添加时间、是否阅读、应聘状态、关联的简历ID、关联的职位ID组成;
文档表信息由主键、添加时间、文档路径、文档标题、是否删除标志组成;
系表信息由主键、系名、是否删除标志组成;
新闻表信息由主键、新闻内容、添加时间、新闻标题要、是否删除标志组成;
用户表信息由主键、班级、从事行业、添加时间、法人代表、联系地址、联系方式、年级、密码、企业地址、企业联系电话、企业名称、企业区域、用户权限、真实姓名、是否上传标志、用户名、系、性别、学号、专业、关联的职位ID组成;
职位表信息由主键、添加时间、工作地点、工作类型、工作年限、性别、学历、有限期、月薪、招聘人数、职位类别、是否删除标志、职位描述、职位名称、职位发布人ID、工作省份组成;
专业表信息由主键、专业名、是否删除标志、关联的系ID组成。
4.5 平台数据表的设计
根据平台的需求分析和功能模块的划分,所涉及的实体有公告,简历,就业,留言,投递记录,文档,系,新闻,用户,职位,专业。因此系统的定义数据库主要包含11张表:公告表t_gonggao,简历表t_jianli,就业表t_jiuye,留言表t_liuyan,投递记录表t_toudijilu,文档表t_wendang,系表t_xi,新闻表t_xinwen,用户表t_user,职位表t_zhiwei,专业表t_zhuanye。
图4-3 公告表
建表的sql语句为:
CREATE TABLE`t_gonggao`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`content`text COMMENT'公告内容',
`createtime`datetime default NULL COMMENT'添加时间',
`gonggaolock`int(11)NOT NULLdefault'0'COMMENT'是否删除标志,0表示未删除,1表示删除',
`title`varchar(255)default NULL COMMENT'公告标题',
PRIMARY KEY(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
图4-4 简历表
建表的sql语句为:
CREATE TABLE`t_jianli`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`createtime`datetime default NULL COMMENT'添加时间',
`jianlilock`int(11)NOT NULL default'0'COMMENT'是否删除标志,0表示未删除,1表示删除',
`jianlimingchen`varchar(255)default NULL COMMENT'简历名称',
`path`varchar(255)default NULL COMMENT'简历路径',
`qiuzhirenid`bigint(20)default NULL COMMENT'关联的求职者ID,外键',
PRIMARY KEY(`id`),
KEY`FK37B456743C6BA8CD`(`qiuzhirenid`),
CONSTRAINT`FK37B456743C6BA8CD`FOREIGN KEY(`qiuzhirenid`)REFERENCES`t_user`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
图4-5 就业表
建表的sql语句为:
CREATE TABLE`t_jiuye`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`biyeqianhoujiuye`varchar(255)default NULL COMMENT'毕业前后就业',
`congshihangye`varchar(255)default NULL COMMENT'从事行业',
`createtime`datetime default NULL COMMENT'添加时间',
`jiuyefenbu`varchar(255)default NULL COMMENT'就业分布',
`jiuyelock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
`jiuyeshijian`varchar(255)default NULL COMMENT'就业时间',
`xingbie`varchar(255)default NULL COMMENT'性别',
`laoshiid`bigint(20)default NULL COMMENT'关联的老师ID,外键',
`userid`bigint(20)default NULL COMMENT'关联的学生ID,外键',
`jiuyeshengfen`varchar(255)default NULL COMMENT'就业省份',
`jiuyeyuefen`varchar(255)default NULL COMMENT'就业月份',
PRIMARY KEY(`id`),
KEY`FK9EB388F777C3030A`(`laoshiid`),
KEY`FK9EB388F7A3C379BB`(`userid`),
CONSTRAINT`FK9EB388F777C3030A`FOREIGN KEY(`laoshiid`)REFERENCES`t_user`(`id`),
CONSTRAINT`FK9EB388F7A3C379BB`FOREIGN KEY(`userid`)REFERENCES`t_user`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;
图4-6 留言表
建表的sql语句为:
CREATE TABLE`t_liuyan`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`content`text COMMENT'留言内容',
`createtime`datetime default NULL COMMENT'留言时间',
`liuyanlock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
`title`varchar(255)default NULL COMMENT'留言标题',
`userid`bigint(20)default NULL COMMENT'关联的用户ID,外键',
PRIMARY KEY(`id`),
KEY`FK3B274719A3C379BB`(`userid`),
CONSTRAINT`FK3B274719A3C379BB`FOREIGN KEY(`userid`)REFERENCES`t_user`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
图4-7 投递记录表
建表的sql语句为:
CREATE TABLE`t_toudijilu`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`createtime`datetime default NULL COMMENT'添加时间',
`readzhuangtai`varchar(255)default NULL COMMENT'是否阅读',
`yingpinzhuangtai`varchar(255)default NULL COMMENT'应聘状态',
`jianliid`bigint(20)default NULL COMMENT'关联的简历ID,外键',
`zhiweiid`bigint(20)default NULL COMMENT'关联的职位ID,外键',
PRIMARY KEY(`id`),
KEY`FKADCFF8BC1EC26877`(`jianliid`),
KEY`FKADCFF8BC91549B65`(`zhiweiid`),
CONSTRAINT`FKADCFF8BC1EC26877`FOREIGN KEY(`jianliid`)REFERENCES`t_jianli`(`id`),
CONSTRAINT`FKADCFF8BC91549B65`FOREIGN KEY(`zhiweiid`)REFERENCES`t_zhiwei`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
图4-8 文档表
建表的sql语句为:
CREATE TABLE`t_wendang`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`createtime`datetime default NULL COMMENT'添加时间',
`path`varchar(255)default NULL COMMENT'文档路径',
`title`varchar(255)default NULL COMMENT'文档标题',
`wendanglock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
PRIMARY KEY(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
图4-9 系表
建表的sql语句为:
CREATE TABLE`t_xi`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`name`varchar(255)default NULL COMMENT'系名',
`xilock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
PRIMARY KEY(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
图4-10 新闻表
建表的sql语句为:
CREATE TABLE`t_xinwen`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`content`text COMMENT'新闻内容',
`createtime`datetime default NULL COMMENT'添加时间',
`title`varchar(255)default NULL COMMENT'新闻标题',
`xinwenlock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
PRIMARY KEY(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
图4-11 用户表
建表的sql语句为:
CREATE TABLE`t_user`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`banji`varchar(255)default NULL COMMENT'班级',
`congshihangye`varchar(255)default NULL COMMENT'从事行业',
`createtime`datetime default NULL COMMENT'添加时间',
`farendaibiao`varchar(255)default NULL COMMENT'法人代表',
`lianxidizhi`varchar(255)default NULL COMMENT'联系地址',
`lianxifangshi`varchar(255)default NULL COMMENT'联系方式',
`nianji`varchar(255)default NULL COMMENT'年级',
`password`varchar(255)default NULL COMMENT'密码',
`qiyedizhi`varchar(255)default NULL COMMENT'企业地址',
`qiyelianxidianhua`varchar(255)default NULL COMMENT'企业联系电话',
`qiyemingchen`varchar(255)default NULL COMMENT'企业名称',
`qiyequyu`varchar(255)default NULL COMMENT'企业区域',
`role`int(11)NOT NULL default'0'COMMENT'用户权限',
`truename`varchar(255)default NULL COMMENT'真实姓名',
`userlock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
`username`varchar(255)default NULL COMMENT'用户名',
`xi`varchar(255)default NULL COMMENT'系',
`xingbie`varchar(255)default NULL COMMENT'性别',
`xuehao`varchar(255)default NULL COMMENT'学号',
`zhuanye`varchar(255)default NULL COMMENT'专业',
`zhiweiid`bigint(20)default NULL COMMENT'关联的职位ID,外键',
PRIMARY KEY(`id`),
KEY`FKCB5540D691549B65`(`zhiweiid`),
CONSTRAINT`FKCB5540D691549B65`FOREIGN KEY(`zhiweiid`)REFERENCES`t_zhiwei`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8;
图4-12 职位表
建表的sql语句为:
CREATE TABLE`t_zhiwei`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`createtime`datetime default NULL COMMENT'添加时间',
`gongzuodidian`varchar(255)default NULL COMMENT'工作地点',
`gongzuoleixing`varchar(255)default NULL COMMENT'工作类型',
`gongzuonianxian`varchar(255)default NULL COMMENT'工作年限',
`xingbie`varchar(255)default NULL COMMENT'性别',
`xueli`varchar(255)default NULL COMMENT'学历',
`youxianqi`varchar(255)default NULL COMMENT'有效期',
`yuexin`varchar(255)default NULL COMMENT'月薪',
`zhaopinrenshu`varchar(255)default NULL COMMENT'招聘人数',
`zhiweileibie`text COMMENT'职位类别',
`zhiweilock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
`zhiweimiaoshu`varchar(255)default NULL COMMENT'职位描述',
`zhiweimingchen`varchar(255)default NULL COMMENT'职位名称',
`zhiweifaburenid`bigint(20)default NULL COMMENT'职位发布人ID,外键',
`gongzuoshengfen`varchar(255)default NULL COMMENT'工作省份',
PRIMARY KEY(`id`),
KEY`FK52F78CCB3FC43E7D`(`zhiweifaburenid`),
CONSTRAINT`FK52F78CCB3FC43E7D`FOREIGN KEY(`zhiweifaburenid`)REFERENCES`t_user`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
图4-13 专业表
建表的sql语句为:
CREATE TABLE`t_zhuanye`(
`id`bigint(20)NOT NULL auto_increment COMMENT'主键',
`name`varchar(255)default NULL COMMENT'专业名',
`zhuanyelock`int(11)NOT NULL default'0'COMMENT'是否删除标志',
`xiid`bigint(20)default NULL COMMENT'关联的系ID,外键',
PRIMARY KEY(`id`),
KEY`FKC994A951CF1F907`(`xiid`),
CONSTRAINT`FKC994A951CF1F907`FOREIGN KEY(`xiid`)REFERENCES`t_xi`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf-8;
5 系统功能实现
5.1 程序的类图
5.1.1 公告Gonggao类图
图5-1 Gonggao类图
对应的程序代码:
public class Gonggao implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int gonggaolock;
private String title;
private String content;
private Date createtime;
图5-2 Jianli类图
对应的程序代码:
public class Jianli implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int jianlilock;
private String jianlimingchen;//简历名称
private String path;//简历路径
private User qiuzhiren;//求职者
private Date createtime;//时间
图5-3 Jiuye类图
对应的程序代码:
public class Jiuye implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int jiuyelock;
private User user;//关联学生
private Date createtime;//
private String jiuyefenbu;//就业分布南方北方
private String xingbie;//性别男,女
private String jiuyeshijian;//就业时间
private String biyeqianhoujiuye;//毕业前就业毕业后就业
private String congshihangye;//从事行业
private User laoshi;//关联老师
private String jiuyeshengfen;//就业省份
private String jiuyeyuefen;//就业月份
图5-4 Liuyan类图
对应的代码:
public class Liuyan implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private User user;
private int liuyanlock;
private String title;
private String content;
private Date createtime;
图5-5 Toudijilu类图
对应的代码:
public class Toudijilu implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private Zhiwei zhiwei;
private Jianli jianli;
private Date createtime;
private String readzhuangtai;//未阅读已阅读
private String yingpinzhuangtai;//应聘状态
图5-6 Wendang类图
对应的代码:
public class Wendang implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int wendanglock;
private String title;
private String path;//简历路径
private Date createtime;
图5-7 Xi类图
对应的代码:
public class Xi implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int xilock;
private String name;
图5-8 Xinwen类图
对应的代码:
public class Xinwen implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int xinwenlock;
private String title;
private String content;
private Date createtime;
图5-9 User类图
对应的代码:
public class User implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private String username;
private String password;
private Date createtime;
private String truename;
private int role;//4表示系统管理员,3表示老师管理员,2表示毕业生用户,1表示企业用户
private int userlock;
private String qiyequyu;//企业区域南方北方
private String qiyemingchen;//企业名称
private String qiyelianxidianhua;//企业联系电话
private String qiyedizhi;//企业地址
private String congshihangye;//从事行业
private String farendaibiao;//法人代表
private String xuehao;//学号
private String zhuanye;//专业
private String banji;//班级
private String nianji;//年级
private String lianxifangshi;//联系方式
private String lianxidizhi;//联系地址
private String xingbie;//性别
private Zhiwei zhiwei;//岗位
private String xi;//系
图5-10 Zhiwei类图
对应的代码:
public class Zhiwei implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int zhiweilock;
private String zhiweileibie;//职位类别
private String zhiweimingchen;//岗位名称
private String zhaopinrenshu;//招聘人数
private String gongzuodidian;//工作地点
private String yuexin;//月薪
private String xueli;//学历
private String gongzuonianxian;//工作年限
private String gongzuoleixing;//全职,兼职,不限
private String xingbie;//性别,男,女
private String zhiweimiaoshu;//岗位描述
private String youxianqi;//有效期
private Date createtime;
private User zhiweifaburen;//岗位发布人
private String gongzuoshengfen;//工作省份
图5-11 Zhuanye类图
对应的代码:
public class Zhuanye implements Serializable{
private static final long serialVersionUID=-7141419035239709511L;
private long id;
private int zhuanyelock;
private String name;
private Xi xi;
图5-14 就业模块时序图
5.2.4 留言模块时序图
图5-15 留言模块时序图
图5-16 投递记录模块程序流程图
5.2.6 文档模块时序图
图5-18 系别模块时序图
图5-19 新闻模块时序图
图5-20 用户模块时序图
5.3 系统功能实现的主要框架
5.3.1 SSH框架
SSH框架就是struts2,spring,hibernate的简称,运用3个框架的集成协作使用,可以有效的提高代码编写的效率,从而有效的降低程序开发的周期。
5.3.2 hibernate配置文件
<hibernate-configuration>
<session-factory>
<!--Database connection settings-->
<property name="proxool.pool_alias">DBPool</property>
<property name="proxool.xml">proxool.xml</property>
<property name="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<!--Echo all executed SQL to stdout-->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!--Enable Hibernate's automatic session context management-->
<property name="current_session_context_class">thread</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="model.User"/>
<mapping class="model.Xinwen"/>
<mapping class="model.Zhiwei"/>
<mapping class="model.Jianli"/>
<mapping class="model.Toudijilu"/>
<mapping class="model.Wendang"/>
<mapping class="model.Gonggao"/>
<mapping class="model.Liuyan"/>
<mapping class="model.Jiuye"/>
<mapping class="model.Xi"/>
<mapping class="model.Zhuanye"/>
</session-factory>
</hibernate-configuration>
这是Hibernate的配置文件,在该文件中<property name="proxool.xml">proxool.xml</property>
首先加载了连接池的一个配置,就是加载了数据库的连接信息,
<property name="show_sql">true</property>
<property name="format_sql">true</property>
表示控制台打印SQL语句,并格式化SQL语句
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
表示当前数据库的语言是MYSQL
<mapping class="model.User"/>
<mapping class="model.Xinwen"/>
<mapping class="model.Zhiwei"/>
<mapping class="model.Jianli"/>
<mapping class="model.Toudijilu"/>
<mapping class="model.Wendang"/>
<mapping class="model.Gonggao"/>
<mapping class="model.Liuyan"/>
<mapping class="model.Jiuye"/>
<mapping class="model.Xi"/>
<mapping class="model.Zhuanye"/>
都表示当前数据库建立起来的表和类之间的映射关系,比如表示User类和t_user表之间的建立起来的对应关系,其他也都类似。
5.3.3 struts配置文件
<struts>
<constant name="struts.objectFactory"value="spring"/>
<constant name="struts.i18n.encoding"value="UTF-8"/>
<package name="index"namespace="/"extends="struts-default">
<action name="index"method="index"class="manageAction">
<result name="success1">index.jsp</result>
<result name="success2">login.jsp</result>
</action>
<action name="method"class="manageAction">
<result type="dispatcher">${url}</result>
<result name="redirect"type="redirect">${url}</result>
</action>
</package>
</struts>
这是struts的配置文件,该文件的作用主要起到来自JSP的请求的跳转分配的作用。该struts配置文件是个总的配置文件。
5.3.4 spring配置文件
Spring在本项目中主要用到了IOC的功能,就是把对象实例化
<!--daos-->
<bean id="userDao"class="dao.impl.UserDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="xinwenDao"class="dao.impl.XinwenDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="zhiweiDao"class="dao.impl.ZhiweiDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="jianliDao"class="dao.impl.JianliDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="toudijiluDao"class="dao.impl.ToudijiluDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="wendangDao"class="dao.impl.WendangDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="gonggaoDao"class="dao.impl.GonggaoDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="liuyanDao"class="dao.impl.LiuyanDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="jiuyeDao"class="dao.impl.JiuyeDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="xiDao"class="dao.impl.XiDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="zhuanyeDao"class="dao.impl.ZhuanyeDaoImpl">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
本段代码是把DAO实例化的代码,通过spring的IOC模式。
<bean id="manageAction"class="action.ManageAction"scope="prototype">
<property name="userDao"><ref bean="userDao"/></property>
<property name="xinwenDao"><ref bean="xinwenDao"/></property>
<property name="zhiweiDao"><ref bean="zhiweiDao"/></property>
<property name="jianliDao"><ref bean="jianliDao"/></property>
<property name="toudijiluDao"><ref bean="toudijiluDao"/></property>
<property name="wendangDao"><ref bean="wendangDao"/></property>
<property name="gonggaoDao"><ref bean="gonggaoDao"/></property>
<property name="liuyanDao"><ref bean="liuyanDao"/></property>
<property name="jiuyeDao"><ref bean="jiuyeDao"/></property>
<property name="xiDao"><ref bean="xiDao"/></property>
<property name="zhuanyeDao"><ref bean="zhuanyeDao"/></property>
</bean>
本段代码是把ManageAction实例化的代码,原理也是spring的IOC模式。
图5-21 登录页面图
登陆代码:
//用户登录操作
public String login()throws IOException{
HttpServletRequest request=ServletActionContext.getRequest();
String username=request.getParameter("username");
String password=request.getParameter("password");
String role=request.getParameter("role");
User user=userDao.selectBean("where username='"+username+"'and password='"+password+"'and userlock=0 and role="+role);
if(user!=null){
HttpSession session=request.getSession();
session.setAttribute("user",user);
this.setUrl("index");
return"redirect";
}else{
HttpServletResponse response=ServletActionContext.getResponse();
response.setCharacterEncoding("gbk");
response
getWriter()
print(
"");
}
return null;
}
本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码还有用户的登陆角色,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。
图5-22 用户注册页面
注册代码:
//企业用户注册操作
public void register()throws Exception{
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
String username=java.net.URLDecoder.decode(request.getParameter("username"),"utf-8");
User user=userDao.selectBean("where username='"+username+"'and userlock=0");
if(user==null){
user=new User();
user.setUsername(username);
user.setPassword(request.getParameter("password"));
user.setTruename(java.net.URLDecoder.decode(request.getParameter("truename"),"utf-8"));
user.setQiyedizhi(java.net.URLDecoder.decode(request.getParameter("qiyedizhi"),"utf-8")); user.setQiyelianxidianhua(java.net.URLDecoder.decode(request.getParameter("qiyelianxidianhua"),"utf-8"));
user.setQiyemingchen(java.net.URLDecoder.decode(request.getParameter("qiyemingchen"),"utf-8")); user.setFarendaibiao(java.net.URLDecoder.decode(request.getParameter("farendaibiao"),"utf-8")); user.setCongshihangye(java.net.URLDecoder.decode(request.getParameter("congshihangye"),"utf-8")); user.setQiyequyu(java.net.URLDecoder.decode(request.getParameter("qiyequyu"),"utf-8"));
user.setCreatetime(new Date());
user.setRole(1);
userDao.insertBean(user);
response.setCharacterEncoding("utf-8");
response.getWriter().write("注册新用户成功!您的用户名"+user.getUsername()+",请妥善保管!");
}else{
response.setCharacterEncoding("utf-8");
response.getWriter().write("该用户名已经存在,请重新注册!");
}
}
本段代码是程序的注册代码,首先从获取从页面获取注册的信息,同时新建一个User对象,把从页面获取的信息都写在USER对象里面。同时在插入到数据库之前先调用userDao.selectBean(“where username='”+username+“'and userlock=0”);方法,验证下该用户名在数据库中是否存在,如果不存在,则调用userDao.insertBean(bean);方法,把该条记录写入数据库,如果该条记录存在,则返回到注册页面,同时提醒用户该用户已经注册,请不要重复注册。
图5-23 系统管理页面
代码:
//程序入口界面
public String index(){
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
if(user==null){
return"success2";
}else{
return"success1";
}
}
本段代码是主页面代码,判断用户的session的值是否为空,为空则跳转到登陆界面,不为空则根据session的值的不同跳转到不同的主页。
图5-24 教师用户管理主页面
代码:
//老师管理员列表
public String userlist(){
HttpServletRequest request=ServletActionContext.getRequest();
String username=request.getParameter("username");
String truename=request.getParameter("truename");
StringBuffer sb=new StringBuffer();
sb.append("where");
if(username!=null&&!"".equals(username)){
sb.append("username like'%"+username+"%'");
sb.append("and");
request.setAttribute("username",username);
}
if(truename!=null&&!"".equals(truename)){
sb.append("truename like'%"+truename+"%'");
sb.append("and");
request.setAttribute("truename",truename);
}
sb.append("userlock=0 and role=3 order by id desc");
String where=sb.toString();
int currentpage=1;
int pagesize=10;
if(request.getParameter("pagenum")!=null){
currentpage=Integer.parseInt(request.getParameter("pagenum"));
}
int total=userDao.selectBeanCount(where);
request.setAttribute("list",userDao.selectBeanList((currentpage-1)
*pagesize,pagesize,where));
request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,
currentpage,"method!userlist","共有"+total+"条记录"));
request.setAttribute("url","method!userlist");
request.setAttribute("url2","method!user");
request.setAttribute("title","老师管理员管理");
this.setUrl("user/userlist.jsp");
return SUCCESS;
}
图5-25 就业情况查询管理主页面
代码:
//就业情况查询
public String jiuyelist(){
HttpServletRequest request=ServletActionContext.getRequest();
String truename=request.getParameter("truename");
String jiuyefenbu=request.getParameter("jiuyefenbu");
String xingbie=request.getParameter("xingbie");
String congshihangye=request.getParameter("congshihangye");
String zhuanye=request.getParameter("zhuanye");
StringBuffer sb=new StringBuffer();
sb.append("where");
StringBuffer sb2=new StringBuffer();
sb2.append("where");
if(truename!=null&&!"".equals(truename)){
sb.append("user.truename like'%"+truename+"%'");
sb.append("and");
sb2.append("user.truename like'%"+truename+"%'");
sb2.append("and");
request.setAttribute("truename",truename);
}
if(jiuyefenbu!=null&&!"".equals(jiuyefenbu)){
sb.append("jiuyefenbu like'%"+jiuyefenbu+"%'");
sb.append("and");
sb2.append("jiuyefenbu like'%"+jiuyefenbu+"%'");
sb2.append("and");
request.setAttribute("jiuyefenbu",jiuyefenbu);
}
if(xingbie!=null&&!"".equals(xingbie)){
sb.append("xingbie like'%"+xingbie+"%'");
sb.append("and");
sb2.append("xingbie like'%"+xingbie+"%'");
sb2.append("and");
request.setAttribute("xingbie",xingbie);
}
if(congshihangye!=null&&!"".equals(congshihangye)){
sb.append("congshihangye like'%"+congshihangye+"%'");
sb.append("and");
sb2.append("congshihangye like'%"+congshihangye+"%'");
sb2.append("and");
request.setAttribute("congshihangye",congshihangye);
}
if(zhuanye!=null&&!"".equals(zhuanye)){
sb.append("user.zhuanye like'%"+zhuanye+"%'");
sb.append("and");
sb2.append("user.zhuanye like'%"+zhuanye+"%'");
sb2.append("and");
request.setAttribute("zhuanye",zhuanye);
}
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
if("admin".equals(user.getUsername())){
sb.append("1=1 order by id desc");
sb2.append("1=1");
}else{
sb.append("laoshi.id="+user.getId()+"order by id desc");
sb2.append("laoshi.id="+user.getId());
}
String where=sb.toString();
String where2=sb2.toString();
int currentpage=1;
int pagesize=10;
if(request.getParameter("pagenum")!=null){
currentpage=Integer.parseInt(request.getParameter("pagenum"));
}
int total=jiuyeDao.selectBeanCount(where2);
request.setAttribute("list",jiuyeDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));
request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,
currentpage,"method!jiuyelist","共有"+total+"条记录"));
request.setAttribute("url","method!jiuyelist");
this.setUrl("jiuye/jiuyelist.jsp");
return SUCCESS;
}
首先通过以下语句:
String truename=request.getParameter("truename");
String jiuyefenbu=request.getParameter("jiuyefenbu");
String xingbie=request.getParameter("xingbie");
String congshihangye=request.getParameter("congshihangye");
String zhuanye=request.getParameter("zhuanye");
这些代码从页面获取查询的选项,,然后通过
if(truename!=null&&!"".equals(truename)){
if(jiuyefenbu!=null&&!"".equals(jiuyefenbu)){
if(xingbie!=null&&!"".equals(xingbie)){
if(congshihangye!=null&&!"".equals(congshihangye)){
if(zhuanye!=null&&!"".equals(zhuanye)){
通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过jiuyeDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("jiuye/jiuyelist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该就业信息列表了对就业的打印,导出excel等操作。
图5-26 区域分布统计主页面
代码:
//统计列表(区域分布统计)
public String jiuyelist4()throws IOException{
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("xilist",xiDao.selectBeanList(0,999,"where xilock=0"));
String banji=request.getParameter("banji");
String xi=request.getParameter("xi");
String zhuanye=request.getParameter("zhuanye");
String nianji=request.getParameter("nianji");
StringBuffer sb=new StringBuffer();
sb.append("where");
StringBuffer sb2=new StringBuffer();
sb2.append("where");
if(banji!=null&&!"".equals(banji)){
sb.append("user.banji like'%"+banji+"%'");
sb.append("and");
sb2.append("user.banji like'%"+banji+"%'");
sb2.append("and");
request.setAttribute("banji",banji);
}
if(xi!=null&&!"0".equals(xi)){
Xi x=xiDao.selectBean("where id="+xi);
sb.append("user.xi like'%"+x.getName()+"%'");
sb.append("and");
sb2.append("user.xi like'%"+x.getName()+"%'");
sb2.append("and");
request.setAttribute("xi",x.getName());
}
if(zhuanye!=null&&!"0".equals(zhuanye)){
Zhuanye z=zhuanyeDao.selectBean("where id="+zhuanye);
sb.append("user.zhuanye like'%"+z.getName()+"%'");
sb.append("and");
sb2.append("user.zhuanye like'%"+z.getName()+"%'");
sb2.append("and");
request.setAttribute("zhuanye",z.getName());
}
if(nianji!=null&&!"".equals(nianji)){
sb.append("user.nianji like'%"+nianji+"%'");
sb.append("and");
sb2.append("user.nianji like'%"+nianji+"%'");
sb2.append("and");
request.setAttribute("nianji",nianji);
}
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
if("admin".equals(user.getUsername())){
sb.append("jiuyefenbu='南方'");
sb2.append("jiuyefenbu='北方'");
}else{
sb.append("jiuyefenbu='南方'and laoshi.id="+user.getId());
sb2.append("jiuyefenbu='北方'and laoshi.id="+user.getId());
}
int count1=jiuyeDao.selectBeanCount(sb.toString());
int count2=jiuyeDao.selectBeanCount(sb2.toString());
int count3=count1+count2;
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(((double)count1/count3)*100,"南方就业","南方就业"+count1+"人");
dataset.addValue(((double)count2/count3)*100,"北方就业","北方就业"+count2+"人");
JFreeChart chart=ChartFactory.createBarChart3D(null,"区域分布","百分比(%)",dataset,PlotOrientation.VERTICAL,true,false,false);
//柱状图(CategoryPlot):
CategoryPlot plot=chart.getCategoryPlot();
//获取图表区域对象
CategoryAxis domainAxis=plot.getDomainAxis();
//水平底部列表
domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));
//水平底部标题
domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));
//垂直标题
ValueAxis rangeAxis=plot.getRangeAxis();
//获取柱状
rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));
chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,15));
String s=new Date().getTime()+"";
request.setAttribute("time",s);
String savaPath=ServletActionContext.getServletContext().getRealPath(
"/")
+"/uploadfiles/"+s+".png";
ChartUtilities.saveChartAsPNG(new File(savaPath),chart,600,400);
this.setUrl("jiuye/jiuyelist4.jsp");
return SUCCESS;
}
统计的图标表示主要通过jfreechart组件来完成的。首先通过以下方法:
String banji=request.getParameter("banji");
String xi=request.getParameter("xi");
String zhuanye=request.getParameter("zhuanye");
String nianji=request.getParameter("nianji");
这句代码从页面获取查询的选项,,然后通过:
if(banji!=null&&!"".equals(banji)){
if(xi!=null&&!"".equals(xi)){
if(zhuanye!=null&&!"".equals(zhuanye)){
if(nianji!=null&&!"".equals(nianji)){
通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过jiuyeDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在把取出来得数据库通过jfreechart组件生成对应的图片,
通过this.setUrl("jiuye/jiuyelist4.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据统计功能的实现。
图5-27 岗位管理页面
代码:
//岗位列表
public String zhiweilist(){
HttpServletRequest request=ServletActionContext.getRequest();
String zhiweimingchen=request.getParameter("zhiweimingchen");
String zhiweileibie=request.getParameter("zhiweileibie");
StringBuffer sb=new StringBuffer();
sb.append("where");
StringBuffer sb2=new StringBuffer();
sb2.append("where");
if(zhiweimingchen!=null&&!"".equals(zhiweimingchen)){
sb.append("zhiweimingchen like'%"+zhiweimingchen+"%'");
sb.append("and");
sb2.append("zhiweimingchen like'%"+zhiweimingchen+"%'");
sb2.append("and");
request.setAttribute("zhiweimingchen",zhiweimingchen);
}
if(zhiweileibie!=null&&!"".equals(zhiweileibie)){
sb.append("zhiweileibie like'%"+zhiweileibie+"%'");
sb.append("and");
sb2.append("zhiweileibie like'%"+zhiweileibie+"%'");
sb2.append("and");
request.setAttribute("zhiweileibie",zhiweileibie);
}
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
sb.append("zhiweilock=0 and zhiweifaburen.id="+user.getId()+"order by id desc");
String where=sb.toString();
sb2.append("zhiweilock=0 and zhiweifaburen.id="+user.getId());
String where2=sb2.toString();
int currentpage=1;
int pagesize=10;
if(request.getParameter("pagenum")!=null){
currentpage=Integer.parseInt(request.getParameter("pagenum"));
}
int total=zhiweiDao.selectBeanCount(where2);
request.setAttribute("list",zhiweiDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));
request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,
currentpage,"method!zhiweilist","共有"+total+"条记录"));
request.setAttribute("url","method!zhiweilist");
request.setAttribute("url2","method!zhiwei");
this.setUrl("zhiwei/zhiweilist.jsp");
return SUCCESS;
}
首先通过String zhiweimingchen=request.getParameter("zhiweimingchen")和 String zhiweileibie=request.getParameter("zhiweileibie");这句代码从页面获取查询的选项,再用if(zhiweimingchen!=null&&!"".equals(zhiweimingchen))if(zhiweileibie!=null&&!"".equals(zhiweileibie)),通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过zhiweiDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("zhiwei/zhiweilist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该岗位列表页面定义了对岗位信息的增加,修改,删除等操作。
6 系统的调试与测试
6.1 软件测试的目的
省略
6.2 软件测试的任务
测试总的目标是:确保软件的质量。
1.寻找Bug;
2.避免软件开发过程中的缺陷;
3.衡量软件的品质;
4.关注用户的需求。
6.3 测试环境
Apache提供的Web服务器Tomcat 6.0使得用户可以在Windows 2000以上操作系统下发布自己设计的动态网页。因此对论坛的调试工作主要是利用Tomcat 6.0的强大功能在本机下完成的。为了在本机下浏览Web页面,首先在创建该系统的站点上(该系统使用的是Web的默认站点)将IP地址设定为127.0.0.1,它的缺省域名值为localhost。然后向IE浏览器输入本地动态网页的URL,Web服务器在收到浏览器传送的URL之后找到网页文件,并在服务器端执行该文件后将此文件以HTML文件的形式返回该浏览器。
结 论
省略
参考文献
[1]冯燕奎,赵德奎.JSP实用案例教程[M]清华大学出版社,2004,5:70-100
[2]王家华软件工程[M]东北大学出版社2001年3月303页
[3]王宜贵软件工程[M]北京:机械工业出版社,2002:20-79
[4]孙卫琴精通struts[M]电子工业出版社2004年8月50-70
[5]孙卫琴精通hibernate[M]电子工业出版社2005年4月100-120
[6]张洪斌java2高级程序设计[M]中科多媒体出版社2001年11月85-90
[7]Jim Arlow UML2.0 and the Unified Process[M]机械工业出版社2006年6月30-40
[8]林信良spring2.0技术手册[M]电子工业出版社2006年6月50-100
[9]熊节、林仪明、张凯峰、陈玉泉等主编[《CSDN社区电子杂志——Java杂志》创刊号]
[10]《程序员》杂志2007年第4期
[11]Zoya Ali.Designing Object Oriented Software Applications within the Context of Software Frameworks[D].Ohio State University,2011
[12]Rachit Mohan Garg,YaminiSood,Balaji Kottana,Pallavi Totlani.A Framework Based Approach for the Development of Web Based Applications Waknaghat[J].Jaypee University of Information Technology,2011,1(1):1-4
[13]Alice Woudhuysen.China internet:The long march toward e-commerce[J].the economist intelligence unit.2007
致 谢
省略
外文原文
省略
中文翻译
省略
本项目源码及论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于javaEE+ssh+jsp+MySqL的大学生就业信息管理系统设计与实现(源码+文档)_JAVAEE_JSP…zip |