校友录设计

校友录网站。作为毕业设计,为母校设计校友交流平台。基于javaWeb,由Maven构建管理,采用Spring+SpringMVC+MyBatis框架,用EhCache做数据缓存。门户网站采用BootStrap设计界面,后台管理网站用AmazeUI设计界面。

项目地址:https://github.com/blackist/ar

摘要

校友作为高校的一种重要资源,在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。然而目前我校并没有一个系统可以追溯毕业生的情况。因此,校友们需要一个平台,来了解母校的新闻,校友们的近况,同时也能够让院校充分了解毕业生的就业状况。

为了给校友们的提供一个了解母校动态的平台,本设计首先确定以毕业生以及高校为主要用户对象,采用目前业内流行的SpringMVC+Spring+MyBatis轻量级JavaEE框架,用Maven构建和管理,开发基于B/S结构的校友录系统。其次,通过系统建模对系统的各项功能进行了分析,确定了校友录系统的功能模块,并阐述了数据库的设计过程。再次对系统的功能模块进行了详细的设计,并对系统功能模块的界面进行了展示。最后对论文所阐述的内容进行总结,并分析了校友录系统对毕业生和院校带来的便利。

校友录系统是在对师生、院校进行充分的调研分析之后设计的,校友更多关注的是院校新闻、班级动态、校友信息以及社团学生会等团体,院校更多关注的是毕业生的就业情况、对本校毕业生招聘信息的推送。为满足院校和毕业生的需求,校友录系统设计了新闻中心模块、班记录模块、校友组织模块、校友论坛模块、职业招聘模块、校园服务模块。

校友录系统不仅能够很好地满足校友了解母校、校友动态的需求,也提供职业招聘、校园服务功能,使院校能够更好地了解毕业生就业情况、为毕业生提供就业服务。

关键词 毕业;校友录;就业;JavaEE

Abstract

Youth is the best time in life, and this period of youth spent in the university will undoubtedly become the most valuable memories of our lives.Although time goes by fast, university life, the impressive community, the memorable alumni, the unforgettable teaching building, will be a subsequent stream of water in the memories. After graduation, we left school, along with the alumni miss and the alma mater's attention. Thus, alumni desire for a platform to follow the news of alma mater, the status of alumni, and the dynamics of the group that they have joined.

In order to provide a sustenance for alumni's emotions, this design, taking graduates and colleges as the main user object, using the current industry-popular SpringMVC + Spring + MyBatis lightweight JavaEE framework, develops the computer-based web pages Version of the simple and elegant Alumni Record System ( AR), built and managed by Maven.

AR is designed after a full investigation and analysis is conducted in the teachers, students and institutions. Alumni pay more attention to the school news, class dynamics, alumni information, community students and other groups. Institutions concern more about the graduates’ employment situation, new enrollment situation and delivery of recruit information about school graduates. AR designs the news center module, class record module, alumni organization module and alumni forum module. And album function is added into the class record and alumni organization, which aims to meet the needs of alumni better. At the same time, AR includes professional recruitment module, campus service module, so that institutions can understand the employment situation of graduates and help graduates better.

AR system not only can meet alumni to understand the alma mater, alumni dynamic needs, but also provide professional recruitment, campus service function, so that institutions can better understand the employment situation of graduates, to provide employment services for graduates.

Keywords graduation alumni-record employment javaee

摘要... I

Abstract II

1 绪论... 1

1.1 课题背景... 1

1.2 课题意义... 1

1.3 课题内容... 1

1.4 论文的组织结构... 1

2 系统需求分析... 3

2.1 需求分析... 3

2.2 功能分析... 4

2.2.1 院校新闻发布功能... 4

2.2.2 班级管理功能... 5

3.2.3 院校组织管理功能... 6

3.2.4 校友论坛功能... 6

3.2.5 院校职业招聘功能... 7

3.2.6 校园服务功能... 7

3.2.7 用户个人中心功能... 8

2.4 技术路线... 9

3 系统总体设计... 11

3.1 系统总体设计... 11

3.1.1 系统登录... 11

3.1.2 新闻中心... 11

3.1.3 班级录... 11

3.1.4 校友组织... 11

3.1.5 校友论坛... 11

3.1.6 职位招聘... 12

3.1.7 校园服务... 12

3.1.8 个人中心... 12

3.2 系统功能设计... 12

3.2.1 新闻中心... 12

3.2.2 班记录... 13

3.2.3 校友组织... 14

3.2.4 校友论坛... 14

3.2.5 职业招聘... 15

3.2.6 校园服务... 16

3.2.8 个人中心... 16

3.3 数据库设计... 17

3.3.1 概念模型设计... 17

3.3.2 逻辑结构设计... 25

4 系统详细设计... 37

4.1 班级录... 37

4.1.1 班级首页... 38

4.1.2 班级动态... 40

4.1.3 班级通讯录... 42

4.1.4 班级相册... 43

4.2 职业招聘... 44

4.2.1 发布招聘... 44

4.2.2 查询招聘... 45

4.2.3 招聘详情... 46

4.2.4 投递简历... 47

4.3 校友论坛... 48

4.3.1 论坛广场... 48

4.3.2 发布新帖... 49

4.3.3 帖子详情... 49

结论... 51

致谢... 52

参考文献... 53

1 绪论

1.1 课题背景

青春是人生最美好的时光,而在大学度过的这一段青春岁月无疑将成为我们人生中最为宝贵的回忆。大学生活如白驹过隙匆匆流逝,却又将在而后的回忆里细水长流,忘不掉的社团,忘不掉的校友, 忘不掉的教学楼。毕业后,我们离开学校,一同带走的还有对校友的思念和对母校的关注。因此,校友们需要一个平台,来了解母校的新闻,校友们的近况,自己曾加入的团体的动态等等。

同时,院校对毕业生的培养与关怀也不会停止,院校希望了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。并且,校友作为高校的一种重要资源,在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。这也有助于改善教学方案,从而使本校毕业生更好地适应社会需求。

1.2 课题意义

中国同学录网的调查显示,用户最关心的是班级信息、班级留言、同学联系方式和同学照片等。不同用户对系统的需求不同,但是基本功能需求是一致的,包括:对班级管理,用户可以创建自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。

此系统还可以让校友了解母校的新闻,校友们的近况,自己曾加入的团体的动态,也提供了职业招聘功能,此功能是院校和毕业生交互的重要平台。院校可在职业招聘模块发布招聘信息,毕业生可以浏览招聘信息、投递简历、在线制作简历,毕业生可以发布自己所在单位的招聘信息,经管理员审核后发布到招聘广场,为其他毕业校友提供有力的就业帮助。校友的信息反馈在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。

1.3 课题内容

此系统是在对师生、院校进行充分的调研分析之后设计的,校友更多关注的是院校新闻、班级动态、校友信息以及社团学生会等团体,院校更多关注的是毕业生的就业情况、新生的招生情况以及对本校毕业生招聘信息的投送。此系统设计了新闻中心模块、班记录模块、校友组织模块、校友论坛模块,并在班记录和校友组织中加入相册功能,更好地满足校友的需求。同时,此系统包含职业招聘模块、校园服务模块,使院校更好地了解毕业生就业情况、为毕业生提供帮助。

1.4 论文的组织结构

论文主要内容包括五大部分,主要包括:

第一章 绪论。本章介绍了课题背景、课题意义以及本课题研究的主要内容。

第二章 系统需求分析。本章介绍了本系统的业务需求分析、系统功能分析以及相关业务的流程,开发过程中具体的开发环境、开发工具、相关技术。

第三章 系统总体设计。本章介绍了本系统的总体设计、系统各项功能的设计以及数据库的设计。

第四章 系统详细设计。本章介绍了系统的详细设计,包括各项系统功能的界面设计、代码逻辑设计以及实现。

2 系统需求分析

2.1 需求分析

中国同学录网的调查显示,用户最关心的是班级信息、班级留言、同学联系方式和同学照片等。不同用户对系统的需求不同,但是基本功能需求是一致的,包括:对班级管理,用户可以查询并加入自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。考虑到网络的现况和同学们以及毕业生跟踪调查的各种需求,系统应该具有各方面的交流能力和实时的用户反馈信息,能够实现留言、上传照片、评论等功能,同时具有方便的后台管理功能。同学录系统能够实现同学们生活中的交流,拥有自己的空间,与此同时,校方管理员能够了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。这也有助于改善教学方案,从而更好地让本校毕业生适应社会需求。系统主要功能有:

(1)系统用户的登录、注册。注册,由管理员将历届学生的学号、姓名导入数据库,学号作为用户的用户名;登录,输入用户输入用户名(学号)和密码登录系统;

(2)校园新闻发布中心功能:新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载地评论;新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息;

(3)同学交流的班级录功能。班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成;

(4) 校友互动的团体组织功能。校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理;

(5)校友话题参与的论坛功能。帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子;

(6) 职位招聘信息推送功能。招聘广场,浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场;

(7)招生就业的校园服务。校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息;

(8)用户个人管理中心。个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户早论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。

2.2 功能分析

基于对校友录系统的需求分析,校友录系统有新闻中心功能,管理员发布管理图文信息,用户可以浏览、评论新闻信息。校友录系统设置班记录功能,给班级同学提供班级空间,班级空间内有交流平台、班级相册,这是同学比较关心的功能。同时,校友录系统具有校友组织功能,校友可以加入校内的组织和团体,组织有自己的空间给组织成员提供交流平台。为给广大校友提供更大的交流平台,校友录系统提供校友论坛功能,校友可以浏览话题并参与讨论。为满足院校对招聘信息推送的需求,校友录系统应加入职业招聘模块,院校管理员发布招聘信息,用户浏览并投递简历,用户也可以发布自己所在单位的招聘信息,经管理员审核后发不到招聘广场。为更好地微笑有提供入学、就业服务,校友录系统设有校园服务,为校友提供校园指南和就业服务。最后,校友录系统为用户提供个人中心功能,对个人信息以及在站内的应用进行管理。

2.2.1 院校新闻发布功能

1.新闻中心用例分析

新闻中心包括新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息。新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载评论。新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息。新闻中心用例如图2-1所示。

图2-1 新闻中心用例图

2.2.2 班级管理功能

1、班记录用例分析

班记录包括班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成。班记录用例如图2-2所示。

图2-2 班记录用例图

2.2.3 院校组织管理功能

1.校友组织用例分析

校友组织包括:校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理;校友组织用例如图2-3所示。

图2-3 校友组织用例

2.2.4 校友论坛功能

1.校友论坛用例分析

校友论坛包括:帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子;校友论坛用例如图2-4所示。

图2-4 校友论坛用例图

2.2.5 院校职业招聘功能

1.业招聘用例分析

职位招聘包括:招聘广场。浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场。职业招聘用例如图2-5所示。

图2-5 职业招聘用例图

2.2.6 校园服务功能

1.校园服务用例分析

校园服务:校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息。校园服务用例如图2-6所示。

图2-6 职业招聘用例图

2.2.7 用户个人中心功能

1.个人中心用例分析

个人中心:个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户早论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。个人中心用例如图2-7所示。

图2-7 个人中心用例图

2.4 技术路线

本系统采用业内流行的SpringMVC+Spring+MyBatis框架(简称SSM),由项目构建工具Maven构建,并使用Git版本控制系统辅助项目开发。

Git是一个便捷的分布式版本控制工具,本项目用Git进行管理,可以轻松地备份项目,控制项目的版本,并且能够更安全地开发、调试。

Maven可以通过项目对象模型配置文件(pom.xml)轻松地构建项目,不用将jar包添加到项目,缩小了项目的体积。本系统使用Maven构建父模块ar-parent,并聚合了三个子模块ar-common、ar-manage、ar-portal。ar-common是项目的公共基础模块,java应用类的模型,包含实体类、工具类、数据访问对象等,依赖Spring、MyBatis等。ar-manage是本系统的后台管理模块,web应用类的模型,依赖ar-common、Spring、SpringMVC等。Ar-poratl是本系统的门户网站模块,依赖ar-common、ar-manage、Spring、SpringMVC等。Maven可以将web应用类项目打包成war并发布到tomcat服务器运行测试。

本系统充分利用Spring的IoC(控制反转)和AOP(面向切面)特性,将创建用户的SpringMVC控制器Controller、业务逻辑类Service、数据访问类Mapper交由Spring Container管理,生成对应的bean(也称组件), 并把实现类的类名作为bean的id。当控制器、业务逻辑类、数据访问类需要Spring Container中bean对应的实现类时,Spring Container通过依赖注入机制为其注入对应的bean。通过这种配置,系统实现了控制器和业务逻辑类分离,业务逻辑类和数据访问类分离。SpringMVC中的DispatcherServlet接收请求,并交由控制器Controller处理,Controller接收参数、调用业务逻辑类中的方法,通过ModelAndView视图模型返回jsp页面、json数据。

本系统的视图层采用jsp、HTML,通过事件触发机制向服务器端发送请求,并采用Bootstrap、AmazeUI、HTML5、CSS3等前台样式,通过c标签、javascript、jquery处理前台数据。

技术路线如图2-8所示。

图2-8 技术路线图

3 系统总体设计

3.1 系统总体设计

根据系统功能分析,本系统应该具备的功能包括:登录注册、新闻中心、班级录、校友组织、校友论坛、职位招聘、校园服务、个人中心等功能。

3.1.1 系统登录

(1)注册:由管理员将历届学生的学号、姓名导入数据库,学号作为用户的用户名;

(2)登录:输入用户输入用户名(学号)和密码登录系统。

3.1.2 新闻中心

(1)新闻发布:后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;

(2)新闻评论:用户可以对新闻信息发表评论,回复评论,动态加载评论;

(3)新闻热度:用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息。

3.1.3 班级录

(1)班级检索:按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;

(2)班级排名:根据班级人数、活跃时间对班级进行热度排名;

(3)班级主页:每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;

(4)班级管理:班级的新增、管理员的设置由后台管理员完成。

3.1.4 校友组织

(1)校友总会:院校总会;

(2)院系分会:各学院的校友组织;

(3)社团分会:院校内的各种社团、协会的组织;

(4)学生协会:院校内的各学生协会组织;

(5)组织主页:个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理。

3.1.5 校友论坛

(1)帖子浏览:按作者、主题检索帖子,查看详情;

(2)评论帖子:对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;

(3)热帖推送:用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;

(4)发布新帖:用户登录后可以发布帖子;

(5)贴子管理:管理员可审核、置顶、删除帖子。

3.1.6 职位招聘

(1)招聘广场:浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;

(2)简历投送:用户可以向喜欢的招聘信息投送个人简历;

(3)简历管理:用户可以新增简历、编辑简历、删除简历;

(4)单位管理:用户可以登记、编辑自己所在单位的信息;

(5)发布招聘:用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场。

3.1.7 校园服务

(1)校内服务:包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;

(2)招生就业服务:包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息。

3.1.8 个人中心

(1)个人资料:基本资料、 详细资料、 工作信息、 头像设置;

(2)账户设置:密码修改、邮箱绑定;

(3)我的班级:用户加入的班级相关信息;

(4)我的论坛:用户早论坛的相关信息;

(5)我的招聘:用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。

3.2 系统功能设计

3.2.1 新闻中心

新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载评论;新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息。新闻中心功能如图3-1所示。

图3-1 新闻中心功能图

3.2.2 班记录

班级录功能包括:班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成。班级录功能如图3-2所示。

图3-2 班记录功能图

3.2.3 校友组织

校友组织包括:校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理。校友组织功能如图3-3所示。

图3-3 校友组织功能功能图

3.2.4 校友论坛

校友论坛:帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子。校友论坛功能如图3-4所示。

图3-4 校友论坛功能图

3.2.5 职业招聘

职位招聘:招聘广场。浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场。职业招聘功能如图3-5所示。

图3-5 职业招聘功能图

3.2.6 校园服务

校园服务包括:校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息。校园服务功能如图3-6所示。

图3-6 校园服务功能图

3.2.7 个人中心

个人中心:个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户在论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。个人中心功能如图3-7所示。

图3-7 个人中心功能图

3.3 数据库设计

3.3.1 概念模型设计

根据系统总体设计和功能设计,设计出系统涉及到的实体信息,包括用户实体,个人信息实体,职业信息实体,简历实体,地址实体,留言实体,评论回复实体,年级实体,组织实体,活动实体,相册实体,图片实体,信息实体,评论实体,分享实体,收藏实体,订阅实体,招聘信息实体,招聘单位实体,附件实体,角色实体,权限实体,字典实体,字典数据实体,各实体信息的概念模型如下所示。

(1)用户实体模型如图3-8所示。

图3-8 用户实体模型

(2)职业信息实体模型如图3-9所示。

图3-9 职业信息实体模型

(3)简历实体模型如图3-10所示。

图3-10 简历实体模型

(4)地址实体模型如图3-11所示。

图3-11 地址实体模型

(5)留言实体模型如图3-12所示。

图3-12 留言实体模型

(6)评论回复实体模型如图3-13所示。

图3-13 回复实体模型

(7)年级实体模型如图3-14所示。

图3-14 年级实体

(8)组织实体模型如图3-15所示。

图3-15 组织实体模型

(9)相册实体模型如图3-16所示。

图3-16 相册实体模型

(10)活动实体模型如图3-17所示。

图3-17 活动实体模型

(11)字典数据实体模型如图3-18所示。

图3-18 字典数据实体模型

(12)图片实体模型如图3-19所示。

图3-19 图片实体模型

(13)信息实体模型如图3-20所示。

图3-20 信息实体模型

(14)评论实体模型如图3-21所示。

图3-21 评论实体模型

(15)分享实体模型如图3-22所示。

图3-22 分享实体模型

(16)收藏实体模型如图3-23所示。

图3-23 收藏实体模型

(17)订阅实体模型如图3-24所示。

图3-24 订阅实体模型

(18)招聘信息实体模型如图3-25所示。

图3-25 招聘实体模型

(19)招聘单位实体模型如图3-26所示。

图3-26 招聘单位实体模型

(20)附件实体模型如图3-27所示。

图3-27 附件实体模型

(21)角色实体模型如图3-28所示。

图3-28 角色实体模型

(22)权限实体模型如图3-29所示。

图3-29 权限实体模型

(23)字典实体模型如图3-30所示

图3-30 字典表模型

(24)简历投递实体模型如图3-31所示

图3-31 简历投递模型

3.3.2 逻辑结构设计

根据系统的概念模型设计,设计出适应大多数数据库的数据表逻辑结构,共设计31张表,如表3-1所示。

表3-1 数据表汇总

序号 名称 用途与约束
1 user 用户表
2 user_info 用户个人信息表
3 user_job 用户工作信息表
4 user_resume 用户个人简历
5 resume_post 简历投递信息
6 user_origin 用户加入组织信息表
7 user_role 用户角色设定表
8 role 角色表

续表3-1

序号 名称 用途与约束
9 role_right 角色权限分配表
10 right 权限表
11 Address 地址信息表
12 message 消息表
13 reply 回复表
14 grade 年级表
15 origin 组织表
16 activity 活动表
17 album 相册信息表
18 album_image 相册图片信息表
19 image 图片信息表
20 information 信息表
21 comment 评论表
22 share 信息分享表
23 collect 信息收藏表
24 subscription 信息订阅表
25 recruit 招聘信息表
26 recruit_unit 招聘单位信息表
27 attachment 附件信息表
28 attachment_info 信息附件关系表
29 dictionary 数据字典表
30 dictionary_data 数据字典数据表
31 log 日志表

表3-2 用户表

字段名称 字段类型(长度) 字段含义 备注
id int 主键 自动增长
account char(20) 用户名
is_admin char(1) 管理员标识
email varchar(20) 用户邮箱
password char(32) 用户密码
head_image_id int(8) 头像图片标识
create_time datetime 用户注册时间

续表3-2

字段名称 字段类型(长度) 字段含义 备注
state char(5) 此条记录状态
state_time datetime 状态日期

表3-3 用户个人信息表

字段名称 字段类型(长度) 字段含义 备注
user_info_id int(8) 主键 自动增长
ture_name Nvarchar(20) 用户名
age char(5) 年龄
sex char(5) 性别
birthday datetime 生日
introduce varchar(200) 个人简介
phone varchar(20) 联系电话
email varchar(50) 邮箱
qq varchar(20) QQ
microblog varchar(50) 微博
wechat varchar(20) 微信
address Nvarchar(50) 住址
user_id int 用户id 外键
state char(2) 此条记录状态
state_time datetime 状态时间

表3-4 职业信息表

字段名称 字段类型(长度) 字段含义 备注
job_id int 主键 自动增长
job_name Varchar(20) 职业名称
job_unit Varchar(20) 就业单位
date_start date 就职时间
date_end date 离职时间
job_desc varhar(200) 职业简述
create_time datetime 工作登记时间
user_id int 就业者 外键
state char(1) 此条记录的状态
state_time datetime 记录状态

表3-5 个人简历表

字段名称 字段类型(长度) 字段含义 备注
resume_id int 主键 自动增长
resume_title varchar(20) 简历标题
prof_type vatchar(20) 职业类别
exp_salary varchar(10) 期望薪资
name varchar(10) 姓名
sex char(1) 性别
domicile varchar(20) 现在居住地
contact varchar(30) 联系方式
introduce varchar(200) 个人简介
userId int 用户id 外键
statusValue char(5) 状态值 a x t

表3-6 简历投递表

字段名称 字段类型(长度) 字段含义 备注
recruit_id int 招聘信息id 外键
resume_id int 简历id 外键
create_time datetime 投递日期
state char(2) 投递状态
state_time datetime 状态日期

表3-7 角色权限配置表

字段名称 字段类型(长度) 字段含义 备注
user_id int 用户id 外键
role_id int 角色id 外键

表3-8 权限信息表

字段名称 字段类型(长度) 字段含义 备注
role_id int 主键 自动增长
role_name varchar(20) 角色名称
role_value varchar(20) 角色类型
create_time datetime 创建时间
state char(2) 此条记录状态
state_time datetime 状态日期

表3-9 角色权限表

字段名称 字段类型(长度) 字段含义 备注
role_id int 角色id 自动增长
right_id int 权限id

表3-10 权限信息表

字段名称 字段类型(长度) 字段含义 备注
right_id int 主键 自动增长
right_name varchar(20) 权限名称
right_pos int 权限位
right_code bigint 权限码
right_URL varchar(50) 权限路径
is_public char 是否是公共资源
state char(2) 此条记录状态
state_time datetime 状态日期

表3-11 地址表

字段名称 字段类型(长度) 字段含义 备注
addr_id int 主键 自动增长
province varchar(10) 省份
city varchar(10)
district varchar(10)
detail varchar(50) 详细地址
zip_code char(6) 邮编
create_time datetime 创建日期
state char(2) 状态值
state_time datetime 状态日期

表3-12 留言表

字段名称 字段类型(长度) 字段含义 备注
msg_id int(11) 主键 自动增长
title varchar(20) 标题
content varchar(500) 留言内容
sender_id int(8) 发送者id
receiver_id int(8) 接收者id
create_time datetime 发表日期

表3-13 留言回复表

字段名称 字段类型(长度) 字段含义 备注
reId int 主键 自动增长
content varchar(500) 回复内容
create_time datetime 回复时间
msg_id int(11) 被回复的留言的id 外键
user_id int 回复人id 外键

表3-14 年级表

字段名称 字段类型(长度) 字段含义 备注
grade_id int 主键 自动增长
grade_value char(4) 年份
class_num int(4) 班级数
create_time datetime 创建日期
state char(2) 此条记录状态
state_time datetime 状态日期

表3-15 组织信息表

字段名称 字段类型(长度) 字段含义 备注
origin_id int 主键 自动增长
origin_name varchar(20) 组织编号
origin_no varchar(20) 组织名
origin_type varchar(20) 组织类型
origin_desc varchar(500) 组织简介
origin_grade varchar(4) 组织年级
members int(4) 组织人员数量
create_time datetime 组织成立的年份
mgr_id int 组织的管理员id 外键
creator_id int 组织创建人 外键
state char(2) 此条记录状态
state_time datetime 状态日期

表3-16 校友活动表

字段名称 字段类型(长度) 字段含义 备注
act_id int(8) 主键 自动增长
act_name varchar(20) 活动名称

续表3-16

字段名称 字段类型(长度) 字段含义 备注
start_time datetime 活动开始时间
end_time datetime 活动结束时间
act_place varchar(50) 活动地点
act_desc text 活动描述
act_num int(4) 活动人数
sign_num int(4) 活动已报名人数
interests int(4) 感兴趣数
leader_name varchar(10) 负责人姓名
leader_phone varchar(30) 负责人联系方式
origin_id int(8) 活动所属组织 外键
user_id int(8) 活动发起人 外键
state char(2) 此条记录状态
state_time datetime 状态日期

表3-17 相册表

字段名称 字段类型(长度) 字段含义 备注
album_id int(8) 主键 自动增长
album_name varchar(20) 相册名名
albm_desc varchar(200) 相册描述
create_time datetime 创建时间
interests int(4) 感兴趣的人数
cover_image int(11) 相册封面标识
origin_id int 相册所属组织 外键
user_id int 相册创建人 外键
state char(2) 此条记录状态
state_time datetime 创建时间

表3-18 相册图片表

字段名称 字段类型(长度) 字段含义 备注
album_id int 相册id 外键
image_id int 图片id 外键
create_time datetime 创建时间

表3-19 图片信息表

字段名称 字段类型(长度) 字段含义 备注
image_id int(11) 主键 自动增长
image_name varchar(32) 图片名
is_remote char(1) 远程文件
image_size varchar(5) 图片大小
image_path varchar(255) 图片路径
image_type varchar(20) 图片类型
is_thumb char(1) 缩略图标识
thumb_path varchar(255) 缩略图路径
create_time datetime 上传日期
state char(2) 图片状态

表3-20 信息表

字段名称 字段类型(长度) 字段含义 备注
info_id int(11) 主键 自动增长
info_title varchar(50) 信息标题
content text 内容
theme varchar(2) 主题
thumb_image varchar(255) 图文信息缩略图
views int(4) 浏览量
comments int(4) 评论数
shares int(4) 分享次数
create_time datetime 创建日期
is_top char(1) 置顶标识
info_type varchar(20) 信息类型
user_id int(8) 用户id
origin_id int(8) 信息所属组织id
state char(2) 状态
state_time datetime 状态日期

表3-21 评论表

字段名称 字段类型(长度) 字段含义 备注
comment_id int(11) 主键 自动增长
content varchar(500) 评论内容

续表3-21

字段名称 字段类型(长度) 字段含义 备注
create_time datetime 评论日期
user_id int 评论人 外键
info_id int 评论的信息id 外键

表3-22 信息转发表

字段名称 字段类型(长度) 字段含义 备注
create_time datetime 转发时间
info_id int(11) 被转发的信息id 外键
user_id int(8) 转发人id 外键
where varchar(20) 转发方式

表3-23 收藏表

字段名称 字段类型(长度) 字段含义 备注
collect_id int 主键 自动增长
create_time datetime 收藏时间
info_id int 收藏信息的id 外键
user_id int 收藏人 外键
state char(2) 此条记录状态
state_time datetime 状态日期

表3-24 信息订阅表

字段名称 字段类型(长度) 字段含义 备注
sub_id int(11) 主键 自动增长
create_time datetime 订阅时间
info_type varchar(20) 订阅信息类型
is_email char(1) 邮箱订阅标识
user_id int(8) 用户id
state char(2) 状态
state_time datetime 状态日期

表3-25 招聘信息表

字段名称 字段类型(长度) 字段含义 备注
recruitId int 主键 自动增长
title varchar(20) 招聘标题
create_time datetime 创建时间

续表3-25

字段名称 字段类型(长度) 字段含义 备注
end_time datetime 招聘结束时间
members int(4) 招聘人数
resumes int(4) 简历投送数
leader_name varchar(20) 联系人
leader_phone varchar(30) 联系方式
is_top char(1) 置顶标识
pos_name varchar(20) 职位名称
pos_desc varchar(500) 职位描述
benefit varchar(50) 职位福利
work_place varchar(50) 工作地点
unit_id int(8) 招聘单位id
user_id int 发布人id 外键
state char(1) 状态
state_time datetime 状态日期

表3-26 招聘单位信息表

字段名称 字段类型(长度) 字段含义 备注
unit_id int(8) 主键 自动增长
unit_name varchar(30) 招聘单位名称
industry varchar(30) 单位所属行业
property varchar(20) 单位性质
scale varchar(20) 单位规模
unit_desc text 单位简介
unit_web varchar(30) 单位网站
user_id int(8) 发布者id 外键
state char(1) 此条记录状态
state_time datetime 状态日期

表3-27 附件表

字段名称 字段类型(长度) 字段含义 备注
atta_id int 主键 自动增长
atta_name varchar(32) 附件文件名
atta_type varchar(20) 附件类型

续表3-27

字段名称 字段类型(长度) 字段含义 备注
is_romote char(1) 远程文件标识
file_path varchar(255) 文件路径
file_size char(10) 文件大小
dowmloads int(4) 文件下载次数
create_time datetime 上传日期

表3-28 信息附件表

字段名称 字段类型(长度) 字段含义 备注
attachment_id int 附件id 外键
info_id int 信息id 外键

表3-29 数据字典表

字段名称 字段类型(长度) 字段含义 备注
dict_value varchar(20) 字典值 主键
dict_name varchar(50) 字典名
remark varchar(200) 字典备注

表3-30 数据字典数据表

字段名称 字段类型(长度) 字段含义 备注
id int(8) 数据id 主键
dict_value varchar(20) 数据字典 外键
dictdata_name varchar(50) 数据名
dictdata_value varchar(20) 数据值
is_fixed char(1) 固定标识
is_cancel char(1) 数据取消标识
parent_id int(8) 父节点

表3-31 日志表

字段名称 字段类型(长度) 字段含义 备注
log_id int(11) 日志id 主键
operator varchar(100) 操作员
oper_name varchar(100) 操作名称
oper_params varchar(255) 操作参数
oper_result varchar(100) 操作结果
oper_time datetime 操作时间

表3-32 用户组织表

字段名称 字段类型(长度) 字段含义 备注
user_id int 用户id 外键
origin_id int 组织id 外键
create_time datetime 加入时间
state varchar(2) 状态
state_time datetime 状态时间

4 系统详细设计

4.1 班级录

(1) 功能实现

班级录主要实现给用户提供班级空间的功能,班级录总览界面按年级信息统计并展示院校当前班级的信息,按年级、校友姓名、班级专业条件查询班级并且能够在侧边栏按班级人数对班级进行热度排名,展示当前用户加入的班级,最近加入班级录的校友等信息。

(2) 实现方法

点击班级录标签页,请求class.action访问到Class控制器中的index()方法,index()调用ClassService业务逻辑类中的getAll(),查询年级信息,返回List<Grade>类型的数据,添加到视图模型model中。Grade类对象中包含年级、班级个数等信息,index()方法跳转到class-index.jsp页面,展示年纪列表信息,并将年级列表加载到条件查询框中的下拉框中。页面加载时引入javascript,使用$.post()方法请求侧边栏数据。侧边栏数据包括班级录信息统计、班级排名、当前用户加入的班级、最近加入的校友等信息。在条件查询框中选择年级、填入校友姓名或专业关键字可以查询相关班级,提交查询时请求Class控制器中的queryClass()方法,传递grade、queryStr参数。queryClass()调用ClassService()业务逻辑类中的queryClasses()方法,queryClasses()方法的参数为Page<>类型的对象、grade、queryStr,queryClasses()执行查询,并返回 List<Map<String,Object>>类型的数据。类型为Page<>的参数是分页对象,分页对象中包含分页的所有信息,包括页码pageIndex、pageSize、beanList等,新建分页对象时,如果没有设置参数,则pageIndex默认为1,pageSize默认为10。将page对象加入到视图模型model中,queryClass()返回class-query.jsp页面。jsp页面将班级信息列表展示出来,并追加页码执行翻页功能。

(3) 界面设计

班级录总览界面如图4-1所示,总体分为导航栏、年级列表和侧边信息栏。班级查询界面如图4-2所示。

图4-1 班级录总览界面

图4-2 班级查询界面

4.1.1 班级首页

(1)功能实现

班级主页主要对班级进行一些简介,并展示班级的一些近期信息,如班级简介、班级最新动态、班级最新照片、班级管理员信息、当前用户信息以及当前用户是否加入班级等。班级简介为班级实体中描述班级的字段,包括班级名称、班级人数、班级简介、班级所属年级。班级最新动态是班级动态按照日期降序排列后,选择最新的几条记录显示。班级最新照片是班级成员上传到班级相册照片,按照上传日期降序排列后选择最新的几张进行展示。班级管理员信息展示管理员的头像、姓名、简介等信息。当前用户信息展示当前用户的头像、姓名、简介、是否加入班级。

(2)实现方法

点击班级名称超链接,请求classroom.action,并传入班级id参数,Classroom控制器中index()方法接收参数,调用业务逻辑类ClassService中的classIndex()、classInfo()、classImage()、getAllMemberId()方法。clasIndex()方法查询班级的详细信息,返回Map<String, Object>类型的数据,赋值给classroom,将返回数据classroom添加到视图模型model中。classInfo()查询班级的动态消息,动态消息按照日期降序排列,以List<Map<String, Object>>类型返回日期最新的几条记录,赋值给infoList,将infoList添加到视图模型model中。classImage()方法查询班级成员上传的照片,照片按照上传日期降序排列,以List<Map<String, Object>>类型返回上传日期最新的几条记录,赋值给imageList,将imageList添加到视图模型model中。getAllMemberId()查询所有班级成员的id,以List< Integer>类型返回,赋值给classIds,并将classIds添加到视图模型model中。Classroom控制器方法index()跳转到classroomdex.jsp页面,将classroom、infoList、imageList中的信息遍历展示在jsp页面中,将SESSION_USER环境变量中的当前用户信息展示为当前用户信息,并将SESSION_USER中的userId与classIds中的数据进行比较,如果userId存在与classIds中,则显示用户已经加入班级,否则显示加入班级按钮。Classroom-index.jsp加载的时候引入javascript,使用$.post()方法请求班级官员信息,并返回到jsp页面进行展示。

(3)界面设计

班级主页界面设计如图4-3所示。

图4-3 班级主页界面

4.1.2 班级动态

1.班级动态列表

(1) 功能实现

班级动态列表展示班级成员发布的动态信息,查询以当前班级id和信息类型作为条件查询信息,并进行分页处理,将查询到的信息分页展示。

(2) 实现方法

点击班级动态标签页,请求classroom/info.action,传递参数classId,Classroom控制器中的info()方法接收参数,info()调用ClassService业务逻辑类中的classIndex()、classInfo()方法。clasIndex()方法查询班级的详细信息,返回Map<String, Object>类型的数据,赋值给classroom,将返回数据classroom添加到视图模型model中。classInfo()方法参数为Page<>类型数据、班级id和信息类型(数据字典中的信息类型数据),方法返回List<Map<String, Object>>类型的数据。类型为Page<>的参数是分页对象,分页对象中包含分页的所有信息,包括页码pageIndex、pageSize、beanList等,新建分页对象时,如果没有设置参数,则pageIndex默认为1,pageSize默认为10。将page对象加入到视图模型model中,info()返回classroom-info.jsp页面。jsp页面将班级信息、班级动态信息列表展示出来,并追加页码执行翻页功能。

(3) 界面设计

班级动态列表界面如图4-4所示。

图4-4 班级动态界面

2.班级动态详情

(1)功能实现

班级动态详情实现动态消息的详情展示,作者信息,消息评论区,以及班级相关动态和作者相关动态。班级动态消息详情包括图文信息、发布时间、浏览量、喜欢数、评论数,消息加载时动态消息的浏览量自增1。作者信息栏展示作者的头像、名字、简介等信息。评论区默认加载10条评论,点击加载更多评论按钮则再次加载10条评论,知道所有评论被加载完毕,用户可以在评论区发表评论。页面加载时,通过ajax方式将班级相关动态和作者相关动态加载到侧边栏。

(2)实现方法

点击消息详情按钮,请求classroom/infoDetail.action,传递班级id和消息id,Classroom控制器中的infoDetail()方法接收参数,调用ClassroomService业务类中的classInfoDetail()方法查询动态信息详情和作者信息,返回Map<String, Object>类型的数据,赋值给info,将info添加到视图模型model中。infoDetail()返回classroom-info-detail.jsp页面,将info中的信息展示,并引入javascript使用ajax方式加载评论和侧边栏信息。

(3)界面设计

班级动态信息详情界面和评论区界面如图4-5和图4-6所示。

图4-5 班级动态详情界面

图4-6 班级动态消息评论区界面

4.1.3 班级通讯录

(1)功能实现

班级通讯录五章表关联查询班级成员的用户信息、所在地、电话、邮箱、QQ、微信等通讯信息,分页显示,并且支持下载班级通讯录信息,以Excel文件形式下载到本地。

(2)实现方法

点击通讯录标签页,请求classroom/directory.action,传递参数班级id,Classroom控制器中的directory()方法接收参数,并调用ClassrommService业务类中的classDirector()方法。classDirectory()关联user表、user_origin表、origin表、user_info表、image表,查询用户信息、用户通讯信息,以List<Map<String, Object>>的形式返回通讯录列表,赋值给分页对象page中的beanList,并将page添加到视图模型model中。Directory()方法跳转classroom-directory.jsp页面,将beanList里的通讯录信息遍历出来。

(3)界面设计

班级通讯录的界面设计如图4-7所示。

图4-7 班级通讯录界面

4.1.4 班级相册

(1)功能实现

在班级相册中,班级成员可以查看相册、新建相册、上传图片、删除图片、设置相册封面、下载图片。上图图片支持批量上传,相册封面可以选择相册内的任意图片作为封面。

(2)实现方法

点击班级相册标签页,请求classroom/album.action,传递参数班级id,Classroom控制器中的album()方法接收参数,调用AlbumService业务类中的getAlbums()方法,以List<Album>形式返回相册信息,赋值给分页对象page的beanList属性,返回classroom-album.jsp界面,将相册列表分页显示。

(3)界面设计

班级相册界面设计如图4-8所示。

图4-8 班级相册界面

4.2 职业招聘

4.2.1 发布招聘

(1)功能实现

发布招聘时,系统判断当前用户是否已经登记公司信息,如果没有登记则跳转公司信息登记界面,否则跳转招聘登记界面。在招聘登记界面填写招聘信息后提交审核,后台管理员可以审核、置顶招聘。

(2)实现方法

点击发布招聘按钮,请求recruit/addRecruit.action,Recruit控制器中的addRecruit()方法接收请求,首先调用UnitService业务类中的getUnitsByUserId()方法查询当前用户的公司信息。如果公司信息,则返回redirect:/unit/addUnit.action,重定向到公司信息登记界面,否则addRecruit()将招聘常量positionSalary、positionBenefit、positionProf添加到视图模型model中,跳转至招聘信息登记界面。招聘信息表单填写完成后,提交至recruit/addRecruitSubmit.action,Recruit控制器调用RecruitService业务类中的createRecruit()方法,保存招聘信息,等待审核。

(3)界面设计

招聘单位信息登记界面设计如图4-9所示,招聘信息登记界面如图5-10所示。

图4-9 招聘单位登记界面

图4-10 招聘信息登记界面

4.2.2 查询招聘

(1)功能实现

招聘查询可以招聘信息标题、招聘单位名称、职位信息、工作地点等查询招聘信息,并将查询到的记录分页显示。

(2)实现方法

点击职业招聘按钮,请求recruit.action,传递查询条件queryStr,Recruit控制器中的indexRecruit()方法,调用RecruitService业务类中的queryRecruit()方法执行查询,返回分页对象page,跳转到recruit-index.jsp页面,将招聘信息遍历出来并追加页码,执行翻页功能。

(3)界面设计

招聘查询界面如图4-11所示。

图4-11 招聘查询界面

4.2.3 招聘详情

(1)功能实现

招聘详情展示招聘的详细信息,包括招聘单位信息、职位信息、联系人信息,并且能够加载此招聘信息的申请记录以及本招聘单位的相关招聘信息。

(2)实现方法

点击招聘信息标题超链接,请求recruit/detailRecruit.action,传递招聘信息id,Recruit控制器中的detailRecruit()方法接收参数,调用RecruitService业务类中的getDetailRecruit()、loadResumesToPost()、postResumeRecord()、loadOtherRecruits()等方法。getDetailRecruit()方法查询招聘的详细信息,返回Map<String,Object>类型的数据,并添加到视图模型对象model中。postResumeRecord()方法关联recruit_post表、user表、image表查询出对此招聘信息投递简历的用户列表,返回List<Map<String,Object>>类型的数据,并添加到视图模型对象中。LoadOtherRecruits()方法关联recruit_post表、recruit表,查询出此招聘单位的相关招聘信息,返回List<Map<>>类型的数据,并添加到数图模型对象model中。

(3)界面设计

招聘查询界面如图4-12所示。

图4-12 招聘查询界面

4.2.4 投递简历

(1)功能实现

在简历详情界面中,有简历投递选项,用户选择自己的简历投送至当前招聘信息。如果当前用户没有简历,则可以选择创建简历。

(2)实现方法

如果用户已经申请当前职位,则显示已申请职位,否则显示申请职位按钮。点击申请职位按钮,页面弹出简历投递模态框,通过c标签将用户简历列表加载到下拉框中,选择一个简历,点击确认申请按钮,请求my/resume/postResume.action,传递招聘信息id,用户简历id,用户信息控制器中的postResume()接收参数,并调用ResumeService服务类中的postResume()方法,保存简历投递信息。

(3)界面设计

简历投递界面如图4-13所示。

图4-13 简历投递界面

4.3 校友论坛

4.3.1 论坛广场

(1)功能实现

论坛广场分页展示校友论坛的所有帖子,可以按照帖子标题、帖子主题和帖子作者进行模糊查询,并按照帖子的热度进行排名。

(2)实现方法

点击校友论坛,请求forum.action,Forum控制器中的index()方法接收请求,调用PostService中的queryPosts()方法,按日期降序排列并分页查询帖子,返回List<Map<String,Object>>类型的数据,赋值给分页对象page,将page添加到视图模型对象model中。返回forum-index.jsp页面,将page中beanList的帖子信息分页显示。

(3)界面设计

论坛广场界面设计如图4-14所示。

图4-14 校友论坛广场界面

4.3.2 发布新帖

(1)功能实现

用户可以在校友论坛广场发布新贴,帖子会被推送到广场并可以被搜索。

(2)实现方法

点击发布新贴按钮,请求post/add.action,Post控制器中的addPost()方法接收请求,将环境变量themeList添加到视图模型对象model中,加载帖子发布界面。在帖子发布界面填写post表单并提交,post信息存储至数据库,重新加载招聘广场即可看到新发布的帖子。

(3)界面设计

发布新贴界面如图4-15所示。

图4-15 发布新贴界面

4.3.3 帖子详情

(1)功能实现

用户可以查看帖子详情,包括帖子内容、浏览量、评论量、喜欢数、作者信息,在帖子内容下方有评论区,加载评论内容或发表评论。在详情界面侧边栏显示相关主题的帖子和作者相关的帖子。

(2)实现方法

用户点击帖子标题超链接,请求post/detail.action,Post控制器中的detail()方法接收请求,调用PostService业务类中的postDetail()方法查询帖子详情,将返回的数据添加到视图模型对象model中,返回jsp页面显示帖子内容。页面加载完毕后,通过jquery的$.post()方法请求post/commentList.action和post/outLine.action加载评论区内容和侧边栏内容,Post控制器调用PostService业务类中的getOtherPost()f方法和CommentService业务类中的dynamicComment()方法查询信息,将返回的信息追加到页面,完成动态加载评论的功能。

(3)界面设计

帖子详情界面设计如图4-16所示。

图4-16 帖子详情界面

结论

经过持久层、数据访问层、业务逻辑层、系统控制层、视图层的设计和实现,本系统基本实现了对班级管理,用户可以加入自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。系统已经能够实现留言、上传照片、评论等功能,同时具有方便的后台管理功能。同学录系统能够实现同学们生活中的交流,拥有自己的空间。校友论坛为广大校友提供了更加宽阔的平台,促进校友们之间的交流。与此同时,通过职业招聘模块、校园服务模块,校方管理员能够了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。因此,此系统能够在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面带来巨大效益。

当然,本系统还不够完善,有一部分功能尚未实现。新闻中心应该具备热文推送和邮箱订阅功能,这样才能让校友更好的了解母校的动态消息。 网站内的消息应该支持富文本格式,这样可以使消息更具可读性和吸引力,同时富文本编辑器可以让用户更方便地编写内容。在消息发布和图片上传时,图片经过剪辑之后才可以更好地展示和存储。由于个人能力的限制,网站的邮箱订阅功能、富文本编辑存储功能和图片剪辑功能并没有实现。这些功能对本系统也显得尤为重要,因此以后必须实现。

经过对校友录系统的设计和实现,我对MVC模式有了更深层次的理解和应用。同时,我也学会许多新的框架和工具,包括SpringMVC、MyBatis、EhCache、Bootstrap、AmazeUI等框架,Maven、Git、IntelliJ IDEA等工具。因此,我相信在以后面临的工作和项目中本系统对我有很大帮助。

致谢

本论文的编写和修改是在胡局新老师悉心指导下完成的。胡老师有着严谨有致的教学态度,兢兢业业的工作作风,诲人不倦的高尚师德。在胡老师的每一堂课上,我都能感受到他的格物致知、敬业乐群,这也正是我在专业知识学习中保持热情的关键所在。在临近毕业的这段时间,胡老师也依然百忙之中为我讲解技术、指导论文,其崇高的责任心将是我受益一生的宝贵财富。在此,谨向我可敬可爱的胡老师致以诚挚的谢意。

不知不觉,四年的大学生活如白驹过隙般逝去,但这宝贵的四年无疑会在而后的回忆里细水长流。在徐州工程学院四年时间里我有过喜悦,有过沮丧,也学习了很多专业知识,参加了很多活动和比赛,获得了飞思卡尔智能汽车竞赛国赛奖项,电子设计大赛省级奖项。没有志同道合的校友,没有对我谆谆教诲的辅导员,没有对我坚定支持的母校,我不可能取得这些成就,也很难在低谷时战胜困难。因此,我想对帮助我的校友,关爱我的辅导员,坚定支持我的母校致以崇高的谢意。

同时,我也要感谢生我育我的父母。我的家庭生活并非想象中那么美好,父母的艰辛也许我无法体会,但是即使再困难,父母都会给予我精神、物质上的支持。父母不曾亏待我,我又能拿什么面对父母。唯有不懈的努力,让自己成功的速度快于他们老去的速度,我才能回报他们对我的爱。对于父母所给予我的这一切,我会用生命去珍惜,用感恩去呵护。

最后,我想再一次向精心教导我的胡老师,关爱我的辅导员,志同道合的校友,给予我支持的父母表达我的感恩之情,没有你们就没有如今的我,谢谢你们伴我走过青春的这段旅途,谢谢!

参考文献

[1] 盛仲飙 乔道迹.基于Java的通讯软件设计与实现[J].福建电脑,2015

[2] 陈衍席.基于Java网络聊天系统的设计及实现研究[J].通讯世界,2016

[3] 钱雪忠著,数据库原理与应用(第二版)[M].北京邮电大学出版社,2007

[4] 唐汉明 翟振兴 关宝军.深入浅出MySQL数据库开发优化与管理维护第2版[M].人民邮电出版社,2014

[5] 吴海星.Java程序员修炼之道[M].人民邮电出版社,2013

[6] 缪忠剑.基于Spring的集成化Web开发平台的研究与实现[M].北京机械工业出版社,2013

[7] 宋佳颖,基于Java的邮件接收系统分析[J].无线互联科技,2015

[8] 耿祥义,张跃平著.Java设计模式[M].清华大学出版社,2009

[9] 彭晓青,MVC模式的应用架构系统的研究与实现[J].电子工业出版社,2013

[10] 赵争东,基于Java的数据库应用框架的研究设计和探索[J].信息系统工程,2015

[11] 软件开发技术联盟著,Java Web开发实战[M].清华大学出版社,2013

[12] 贾蓓.镇明敏.杜磊著,Java Web整合开发实战[M].清华大学出版社,2013

[13] 李运莉著,web数据库应用系统性能优化[M].北京人民邮电出版社,2011

(完)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 每天进步一点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点~~从开始只能写几句话、模仿别人的观点,到现...
    一个帅气的名字呀阅读 18,026评论 4 31
  • 今天跟妈妈出车去天津了。一路上我的心情很高兴,因为可以和妈妈一起去天津卖票。车上因为是礼拜人很多,差不多快...
    岁月静好_2807阅读 53评论 0 0
  • 不知道还能玩多久.
    青丹wil阅读 286评论 0 0
  • 不知道你会不会有这样的时候,在胃痛的清晨蜷缩在床的一角,莫名其妙的疼痛弄得心烦意乱。打开歌单听着某个人推给你的吉他...
    A_Mulberry阅读 312评论 0 0
  • 噼里啪啦的鞭炮声吓飞了树梢上的几只麻雀,今天是四爷入殡的日子,送葬的人越聚越多,于是也看不出谁哭得用心了,...
    三月不冷阅读 277评论 0 3