发布时间 : 星期三 文章基于MVC模式的人事工资管理系统 - 图文更新完毕开始阅读33db9457a6c30c2258019e1b
东北石油大学本科生课程设计(论文)
}
}
catch (SQLException e) { } return rs;
e.printStackTrace();
System.out.print(\执行sql语句错误!\
3、数据库增删改的操作方法executeUpdate()
用conn链接创建一个Statement对象,stmt调用executeUpdate (sql)方法来进行数据更新,进行相应异常处理,返回更新行数,类型为int。
executeUpdate()方法的关键代码如下:
public int executeUpdate(String sql){ }
int count=0; try{ }
catch(SQLException e){ }
return count;
e.printStackTrace(); stmt=conn.createStatement(); count=stmt.executeUpdate(sql);
3.2 登录模块
登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。本节首先严格按照MVC架构模式为人事工资系统制作了一个简单的登录模块,根据用户类型不同,进入到不同操作页面,另外本节还详细介绍了主页面的设计。
按照MVC模式进行构建登录功能的开发,对该模块的文件构建说明如下 (1)Model层:在nepu.syx.DAO包中添加业务Javabean,类名为UserDAO。 (2)Controller层:在nepu.syx.Servlet中添加类UserServlet,该servlet主要负责参数的接收以及用户相关操作的流程控制,例如,用户登录,修改密码等功能。
(3)View层:在WebRoot文件夹下添加名为index.jsp和image.jsp的JSP文件。
8
东北石油大学本科生课程设计(论文)
3.2.1 View层构建
首先在MyEclipse的项目的WebRoot目录下index.jsp页面中编写表单代码,其中注意表单的action属性为该表单信息提交的服务端URL地址,method属性为提交方式。在这里由于是按照MVC模式,将信息提交给Servlet,因此method必须post。同时为避免复杂的URL的路径逻辑关系,统一使用绝对路径。值得注意的是,验证码图片的src设置为”image.jsp”,onclick事件设置为”this.src=this.src+'?' +Math.random();”页面设计如图3-1所示。
图3-1 登录界面设计
3.2.2 Model层构建
在业务
Javabean
类
UserDAO
中建立方法
adminLoginCheck()和
employeeLoginCheck(),该方法的主要功能是判断用户是否存在,并且密码是否正确,该方法需要接收由servlet传递过来2个参数,一个是用户账号id,另一个是密码psw,调用DBManger数据库底层操作类的executeQuery()方法实现sql查询,如果用户类型是管理员,sql语句如下:
String sql = \ 如果用户类型是员工,sql语句如下:
String sql = \ 执行该sql语句后,将返回一个结果集ResultSet,判断该结果集中的记录的条数,并使用变量count记录,如果count的值大于0,则表示用户存在,登录成功,返回一个布尔类型的值true,否则返回false。获取结果集后方法的核心代码如下:
ResultSet rs = db.excuteQuery (sql); if(rs.next()) return true; return false;
9
东北石油大学本科生课程设计(论文)
3.2.3 Controller层构建
在UserServlet添加方法doLogin(),在该方法中完成登录的逻辑判断。首先需要通过方法request.getParameter()来接收由index.jsp页面传递过来的参数id、psw、rand和checkNum,首先判断验证码是否正确,之后调用Model层的业务javaBean UserDAO的登录方法实现登录判定,登录成功后需要注意将账号用session进行存储,这样,在用户多次请求和响应之后都可以由session中取出用户名展示或判断用户是否登录。最后,在servlet中使用forward方法跳转到对应用户的首页面。UserServelt中的doLogin()方法关键代码如下: HttpSession session = request.getSession(); String id = request.getParameter(\ String psw = request.getParameter(\ String userType = request.getParameter(\ String checkNum = request.getParameter(\ String rand = (String)session.getAttribute(\ UserDAO uDAO = new UserDAO(); boolean t = false; RequestDispatcher rd =null; try { if(checkNum.equals(rand)){ if(userType.equals(\ //用户是管理员 t = uDAO.adminLoginCheck(id, psw);//判断管理员信息是否正确 if(t) rd = request.getRequestDispatcher(\ } else{ //用户是员工 t=uDAO.employeeLoginCheck(id,psw);//判断员工信息是否正确 rd = request.getRequestDispatcher(\ } session.setAttribute(\ session.setAttribute(\ if(t==false){//用户不存在 request.setAttribute( \用户名或密码不正确!请重新输入!\ rd = request.getRequestDispatcher(\ } } else{ request.setAttribute( \验证码不正确!请重新输入!\ rd = request.getRequestDispatcher(\ }
10
东北石油大学本科生课程设计(论文)
} catch (SQLException e) { e.printStackTrace(); }
rd.forward(request, response);
3.3 系统首页面导航
人事工资的界面设计采用左侧导航结构,如图3-2所示,系统内几乎所有的jsp页面都具有大致类似的页面结构和风格,例如,相同的页面头部、左侧导航和页脚,因此,为了编码的方便和提高代码的可重用性,系统设计了一些公用的页面文件,主要包括AdminTop.jsp、AdminLeft.jsp、AdminEnd.jsp,其他的页面如后台管理的首页面AdminIndex.jsp则直接通过include指令标记将AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp包含到自身页面的相应位置即可,这样,编码工作将主要集中在左侧导航AdminLeft.jsp页面。其他新增的功能页面的设计思路类似,在此不再赘述。AdminIndex.jsp界面的浏览效果如图3-2所示:
图3-2 后台管理首页面浏览效果
3.4 员工信息管理
本节首先严格按照MVC架构模式为人事工资系统制作了一个简单的员工信息管理模块,该模块包括添加员工信息和浏览/修改/删除员工信息两个部分,根据管理员的不同选择,可以进入不同操作页面。
按照MVC模式进行构建登录功能的开发,对该模块的文件构建说明如下: (1)Model层:在nepu.syx.model包中添加文章类别的实体Javabean,类名为EmployeeModel和SalaryModel。在nepu.jsp.dao包中添加业务Javabean,类名为
11