人力资源管理系统毕业论文设计范文(JSP)(5)
5.2.4 加班管理模块
1.界面设计
加班管理模块界面设计如图5-15:
图5-15加班管理界面设计
2.模块功能
实现员工的加班考勤功能,对员工的加班考勤记录进行保存、删除、修改,并能按一定条件进行查询。
3.设计要点
1. 用户输入日期,输入员工编号后,当焦点离开输入框后,使用dwr技术到员工信息表用员工编号查询取得员工的相应信息,自动填充员工姓名,部门,职位等信息.
2. 加班天数用户输入的是字符型数据,写入数据库要转换成数字整形.
3.加班事由,事务交接两项内容包含的字符串比较长,应该注意数据库中相应的字段数据类型的长度.
5.2.5考勤数据分析
考勤数据分析包括四部分:请假考勤报表、出差考勤报表、日常考勤报表、加班考勤报表。
四部分的内容大体相同,所有界面进行统一设计。
1.界面设计
报表设计界面如图5-16:
图5-16报表界面设计
3.模块功能
报表设计主要是对记录的考勤数据进行具体分析并以直观的视图给我们显示出来,方便进行统计分析。例如:出勤报表:可以统计某段时间里各个部门的迟到、早退和矿工次数比例。
[资料来源:http://www.doc163.com]
4.设计要点
开始时间结束时间都是用JavaScript实现,通过单击时间触发可以选择自己要统计的时间段。报表实现技术是jfreechar报表技术实现。
5.3权限管理
5.3.1用户管理
1.界面设计
用户管理的界面设计如图5-17:
图5-17用户管理的界面设计
2.模块功能
本模块是用户管理的主界面,一般只有管理员才有权使用,可以对用户进行添加、选择,浏览,删除与修改操作。
3.设计要点
用户描述应为用户的员工号(如果有的话)、真实姓名、所在部门、职务为系统管理员分配角色和权限提供参考。
删除用户时需有出现提示框,防止管理员误删用户。
5.3.2密码修改
1. .界面设计
密码修改界面设计如图5-18
图5-18密码修改界面设计
2.模块功能
本模块用以修改单前用户自己的密码,本功能只有当前用户能使用,即使是系统管理员也不能修改其它用户的密码。
3.设计要点
用户权限管理与用户名和密码有关的模块都需要用到“字符合法性检测”和防止Sql注入漏洞。
5.3.3角色管理
1. .界面设计
角色管理界面设计如图5-19:
图5-19角色管理界面设计
2.模块功能
本模块用于对角色的综合管理包括:添加新角色、删除已有角色、为角色分配权限,浏览系统所有角色。
3.设计要点
成功添加角色后角色并没有权限,需要调用“权限分配”模块,为角色分配权限。
5.3.4资源权限管理
1.界面设计
资源权限管理界面设计如图5-20:
图5-20资源权限管理界面设计
2.模块功能
对“权限”进行增、删、改、查操作。
3.设计要点
权限编号为主键,但权限名称也不允许重复。 [资料来源:Doc163.com]
第6章 系统实现
本系统是一个典型的MVC框架的扩展应用,首先表示层用jsp+servlet来实现,包括视图和控制器。模型层包括业务逻辑层和数据库持久层。业务逻辑层主要是应用了Fileter技术[8]进行过滤Action事务,数据库持久层主要是用了数据访问对象(DAO)和Factory设计模式来实现。
6.1系统开发环境
本系统采用java开发环境JDKI.6,Web服务器使用Apache的tomcat6.0,数据库使用SqlServer2005,开发工具为Eclipse5.5.
向开发的Java Web项目加入数据库驱动包、dwr包、jstl包、xml解析的jdom包;项目用到的库文件如图6-1所示。
图6-1项目用到的库文件
6.2创建配置文件
(1)web.Xml
通常所有的MVC框架都需要Web应用加载一个核心控制器,对于本本系统而言,需要加载ActionServlet,它就是本系统的核心控制器,只要Web应用加载了ActionServlet,就可以获得整个MVC框架所提供的服务。Web.xml_里<filter>元素用来指定要加载MVC框架的核心控制器ActionServlet,<Servlet—mapping>元素用来指定让MVC框架来处理用户的哪些请求(URL),当它的子元素<url—pattern>的值为“*”时表示用户的所有请示都使用此框架来处理。在系统的实现过程中使用到了dwr技术、上传下载(Upload)技术和报表处理等都要求在web.xml文件中配置。web.xml文件部分如下: [版权所有:http://DOC163.com]
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
com.softstone.controller.action.ActionServlet
</servlet-class>
<init-param>
<param-name>action-config</param-name>
<param-value>/WEB-INF/action-config.xml</param-value>
</init-param>
<init-param>
<param-name>db-config</param-name>
<param-value>/WEB-INF/db-config.xml</param-value>
</init-param>
<init-param>
<param-name>sys-config</param-name>
<param-value>/WEB-INF/sys-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> [资料来源:https://www.doc163.com]
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
(2)action-config.xml
通过web.xml文件把action-config.xml文件进行加载,在MVC框架中对action-config.xml文件进行jdom解析并根据解析到的参数解析跳转。例如系统登陆Action如下:
<action path="/login"
actionClass="hrms.qxgl.action.yhgl.LoginAction">
<forward name="failure" path="login.jsp" />
<forward name="success" path="" redirect="true"/>
</action>
以上配置信息表示如果在系统登陆的时候能够正确的得到Login对应的Action,返回为success则进入系统,返回为failure则跳转到login.jsp登陆页面。
6.3实现数据持久层
(1)创建db-config.xml的配置文件
db-config.xml配置文件用于配置数据库连接属性以及Hibernate运行时所需的各种属性,包括指定数据库的驱动程序、连接数据库的URL、连接数据库的户名和口令、数据库方言、数据库名等。要将底层数据库内的变动映射到整个应用,只需要修改该文件内的属性值。配置文件有XML和Java属性文件两种形式。URL指定连接数据库的URL。driverClassName指定数据库的驱动程序。Username为数据库用户名,password是数据库登陆密码。db-config.xml文件如下:
<DataPool>
<DataSource name="mssql_HRMS">
<url>
<value>jdbc:sqlserver://localhost:1433;databaseName=HRMS</value>
</url>
<driverClassName> [资料来源:http://www.doc163.com]
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</driverClassName>
<username>
<value>sa</value>
</username>
<password>
<value>123</value>
</password>
</DataSource>
</DataPool>
(2)创建持久化类
本系统实现一个DTO接口把数据库中的表映射到一个持久化类,通过这种映射,系统把所有对对数据库表的操作都转移到为对java类的操作。
持久化类是指其实例需要持久化到数据库中的类。持久化类通常都是域模型中的实体域类。持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getter和setter方法。数据库中有几个表就有几个持久化类。
以下是角色分配表对应的一个持久化类:
import com.softstone.model.DTO;
public class Hr_jsfpbDTO implements DTO {
private String fpbh;
private String yhm;
private String jsbh; [资料来源:http://doc163.com]
public String getFpbh() {
return fpbh;
}
public void setFpbh(String fpbh) {
this.fpbh = fpbh;
}