APP下载

大学生就业统计分析系统

2014-04-29张艳璐等

计算机时代 2014年1期
关键词:页面框架毕业生

张艳璐等

摘 要: 传统模式下的高校毕业生信息管理效率低、保密性差;而基于面向对象Java语言与ExtJS Web开发技术的学生就业信息管理系统,能满足数据信息集中管理和维护、实时查询的需求,提高管理的效率和质量。本系统为B/S系统,采用tomcat进行部署运行,所有的页面统一为JSP,后台使用主流的SSH框架,运用MVC模式进行系统设计。

关键词: 信息管理系统; Java; ExtJS Web; B/S系统; SSH框架; MVC

中图分类号:TP311.1 文献标志码:A 文章编号:1006-8228(2014)01-38-04

0 引言

目前,将Web技术和数据库技术相结合,开发动态交互式数据库网页,已成为当今Web技术研究的热点;高校毕业生数量急剧增加,有关高校毕业生的各种信息量也成倍增长,高校毕业生信息的管理工作量与工作难度也在增长。本文提出一种基于Web的毕业生就业管理系统的方案,它对于学校的决策者和管理者来说都至关重要,能够为用户提供充足的信息和快捷的查询手段。能有效地帮助学校和老师掌握高校毕业生的情况,为高校毕业生提供成绩、就业信息等方面的查询。

1 系统总体架构

本系统采用主流的Java EE三层结构,分为表现层、业务逻辑层和数据服务层。三层体系将业务规则、数据访问等工作放在中间层处理,客户端不直接与数据库交互,而是通过控制层与中间层建立连接,再由中间层与数据库交互。系统的表现层全部使用JSP页面来显示,结合EL表达式以及JS技术来生成页面显示效果。中间层采用Struts 2+Spring 3+Hibernate 2框架,為了对控制层与业务逻辑层进行分离,又可按以下细分。

⑴ Web层:即MVC模式里面的Controller,主要负责对控制层与业务逻辑层,调用业务逻辑层的分离,并将业务数据返回给表现层,本系统的MVC框架主要使用Struts 2。

⑵ Service层(业务逻辑层):主要负责实现各种业务逻辑,对DAO对象进行封装。

⑶ DAO层(数据访问对象层):负责与持久化对象交互,实现数据的增、删、改、查原子操作。

⑷ Domain层(持久化对象域层):将关系型数据库的数据映射成对象,可直接通过面向对象方式操作数据库,用Hibernate的ORM框架实现该层。

MVC模式[1]下,所有从前台返回的用户请求都由Struts 2的Action负责拦截,然后通过Spring提供的IOC(控制反转)功能,定位Spring容器中的Service对象,来处理具体的用户请求,如图1所示。

1.1 JSP技术

JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计。JSP页面由HTML代码和嵌入其中的Java代码所组成,服务器在页面被客户端请求以后对Java代码进行处理,然后将生成的结果同HTML代码返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

1.2 Struts 2技术

Struts 2以WebWork[2]为核心,采用拦截器的机制来处理用户请求,且基于Model(提供内部数据)-View(显示数据)-Controller(决定执行过程)架构。Web应用程序启动时,浏览器所有请求都被提交给ActionServlet处理;提交表单时,ActionForm对象将被创建,并被填入表单中相应的数据;ActionServlet根据struts-config.xml文件中的配置,如果需要验证,则成功后选择将请求转发给某个Action,若Action对象不存在则先创建,再调用其execute()方法,即从ActionForm对象中获取数据,返回一个ActionForward对象,再由其指向的JSP组件生成动态网页。

1.3 Spring框架

基于JavaBean的Spring是一个开源框架,它的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益,即Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.4 Hibernate框架

Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存,这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。

2 就业统计分析系统的设计与实现

采用面向对象的分析方法[3]对系统进行需求分析,按不同角色分类,可划分为系统管理员对系统的需求、学生对系统的需求两大功能需求,再建立用例模型,并考虑界面需求进行系统设计,主要涉及模块结构、类、数据库设计,界面是基于ExtJS Web技术的[4]。

2.1 模型结构及类模型

模型结构及类模型如表1所示。

从表1中的模块看,至少需要五个类:公司基本信息类,公司招聘信息类,学生类,学生求职意向类和学生就业信息类,这些类之间的基本关系如图2所示。

2.2 数据库设计

分析本系统所涉及到的实体,主要包括公司基本信息、公司招聘信息、学生基本信息、学生求职信息、学生就业信息。如图3所示,表为一个实体,表里面的字段属性(如数据库表company_info表示公司的基本信息,里面的company_name表示公司的名称),表中带虚线的箭头代表表之间的依赖关系(如company_recruit中的recruit_company字段依赖于company_info数据库表)[5]。

2.3 系统框架搭建

在Eclipse下搭建SSH框架,对Struts 2、Spring、Hibernate三者进行整合:在Eclipse下新建Web Project;导入Struts 2、Spring、Hibernate类库,将jar包(已解决他们之间的冲突)复制到项目的WebRoot/WEB-INF/lib目录下;在web.xml文件中增加struts 2所需的核心控制器和spring监听,拷贝struts.xml文件到src根目录下并进行相应的常量配置(如拦截器的配置);采用spring依赖注入[6]。

2.4 登录界面

公司用户进入登录界面后,可以在中间看到最新的公告,点击相应的链接,可以得到详细信息和更多的公告;用户输入正确的用户名和密码后会根据用户的权限进入后台。登录流程为:用户发送登录请求到系统的控制层,先通过数据库的查询,判断用户输入的用户名是否存在和用户输入的密码是否正确,如果用户名和密码都正确,则进行权限判断,否则,返回到登录页面。系统根据用户的不同权限,分别进入到管理员后台和学生后台。

2.5 公司基本信息管理

公司基本信息管理包括对公司信息的添加、修改、删除,点击公司管理导航栏下的公司列表可以显示所有公司。该列表显示了公司名称,公司地址以及公司类型等(如图5所示),表格的上面可以输入各种条件的组合,点击查询后可以找到符合条件的公司,查询代码演示如下:

if (!companyInfo.getCompanyName().equals(""))

query.add("companyName like '%"+companyInfo

.getCompanyName()

+ "%' ");

if (!companyInfo.getCompanyAddr().equals(""))

query.add(" companyAddr like '%" + companyInfo

.getCompanyAddr()

+ "%' ");

……

上述query用來存储HQL语句中的各种查询条件,再经过适当地处理,最后会得到一个完整的HQL查询语句,并由DAO层执行此HQL语句,得出查询结果。

2.6 公司招聘管理

公司招聘管理负责维护该系统所管理的所有公司发布的招聘信息,包括浏览公司的招聘列表,增加、删除和修改招聘信息等;一个项招聘信息包括招聘的公司、招聘职位、招聘待遇和所需技术等信息。查看某个公司信息如图6所示。

当点击“查看详情”时,可看到该公司的招聘信息。

2.7 学生就业信息统计

点击在学生统计模块下的就业统计,默认会显示所有学生的签约率、违约率、待业率,并且通过下拉菜单选择相应的分类统计,如图7所示的为按专业统计结果。

图7的列表中的统计信息都是通过后台业务层对数据里面的数据进行查询和计算得出来的。例如,要统计某个专业的待业率,在后台收到请求后,先判断统计是不是按照专业来的,然后通过数据库查询得到专业的名称,接着判断统计的是不是待业率,如果是,则通过查询数据库的结果计算出专业的待业率,而待业人数和总人数则通过使用多表之间的组合查询而得到,求得前者的主要代码如下:

HibernateTemplate htp=this.getHibernateTemplate();

String hql="select count(*) from StudentInfo si, StudentEmploy se

where se.status=0"

+ "and si.studentName=se.studentName"

+ "and si.studentMajor='"+major+"'";

return (Long) (htp.find(hql).get(0));

代码中HibernateTemplate是一个Hibernate的模板对象,里面的数据库连接等底层实现都已经封装好,可以直接通过调用它的相关方法来对数据库表进行操作,se.status=0表示为待业状态。执行上述代码可得到某个专业的待业人数,再通过待业人数除以该专业总人数得出该专业的待业率。

2.8 就业匹配模块

就业匹配是指,能够按照企业招聘信息、毕业生求职信息和毕业生成绩等基本信息进行自动智能匹配,力求使毕业生能够找到合适的岗位,从而减轻企业和学生的工作量。例如,系统根据输入的学生姓名,通过数据库的查询,得到此学生的求职意向,然后在业务层根据具体的匹配规则对公司的求职信息进行筛选,该匹配的部分演示代码如下:

if (!studentHunt.getHuntPost().equals(""))

query.add("recruitPost like '%"+studentHunt.getHuntPost()

+ "%' ");

if (studentHunt.getHuntTreate()!=null)

query.add("recruitTreate>="+studentHunt.getHuntTreate());

}

点击导航栏下面的就业匹配,在上面的文本框输入学生姓名点击匹配后,系统会根据学生的求职意向,从所有公司的招聘信息中招出符合条件的招聘信息显示出来,如图8所示。

3 结束语

SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架,且struts的view层标签丰富可操作性强,很适合用户体验。本文在这个框架基础上,采用了面向对象的Java语言分析并实现学生与公司的需求,使层次和结构更加清晰,便于程序的编写;采用与后台技术无关且功能丰富的ExtJs技术进行页面的设计,使设计更加完美。

参考文献:

[1] 寇毅,吴力文.基于MVC设计模式的Struts框架的应用方法[M].计算

机应用,2003.23(11):91-9

[2] 李刚.Struts2权威指南—基于WebWork核心的MVC开发[M].电子

工业出版社,2007.

[3] 牛丽平,郭新志,宋强,杨继萍等.UML面向对象设计与分析基础教程[M].

清华大学出版社,2007.

[4] 张祖良,孙纯,肖景海.Learning Ext JS[D].人民邮政出版社,2009.

[5] 邱壮志剑,宋建民等.数据库原理与SQL Server[M].高等教育出版社,

2008.

[6] 杨俊生,唐琳,张坤编.Java Web开发实践教程[M].清华大学出版社,

2010.

猜你喜欢

页面框架毕业生
9岁的高中毕业生
刷新生活的页面
框架
你根本不知道,这届毕业生有多难
广义框架的不相交性
一个没什么才能的北大毕业生
WTO框架下
一种基于OpenStack的云应用开发框架
最“叛逆”的毕业生
网站结构在SEO中的研究与应用