java web简单的职工管理系统

今天接了一个职工管理系统,大学生的期末作业。总的而来说实现功能比较简单,围绕增删查改进行。当然最后还有实验报告要写。

功能如下:

存储职工编号,职工姓名,日期,每次打卡时间(一天可多次打卡,第一次为上班时间、最后一次为下班时间)等信息。

考勤信息的增加、删除、修改和查询(如按月统计打卡次数,某人在指定日期的考勤记录等)。

所采用的的技术:jquery+easyui+servlet+mysql5.0

由于放上所有代码过于冗余,仅介绍核心。

登录界面:(网上搜的模板)

职工考勤的增删查改以及查询功能。

jsp:

employee.jsp(职工考勤页面)

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="UTF-8">
<title>职工考勤管理</title>
<link rel="stylesheet" type="text/css"
	href="easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/css/demo.css">
<script type="text/javascript" src="easyui/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/js/validateExtends.js"></script>
<script type="text/javascript">
	$(function() {
    
    
		//datagrid初始化 
		var indexFlag=-1;//用于单选时判断是否控制复选框的勾选状态
		$('#dataList').datagrid({
    
    
			title : '考勤列表',
			iconCls : 'icon-more',//图标 
			border : true,
			collapsible : false,//是否可折叠的 
			fit : true,//自动大小 
			method : "post",
			url : "EmployeeServlet?method=EmployeeList&t="+ new Date().getTime(),
			idField : 'id',
			singleSelect : true,//是否单选 
			pagination : true,//分页控件 
			rownumbers : true,//行号 
			sortName : 'id',
			sortOrder : 'DESC',
			fitColumns : true,
			remoteSort : false,
			onCheck:function(index,row){
    
    //第一次选中该行,让他的index赋值给indexFlag,第二层选中该行就把对勾取消
	        	if(indexFlag==index){
    
    
        			$("#dataList").datagrid('uncheckRow',index);//执行方法,取消该行
	        		indexFlag=-1;
	        	}else{
    
    
	        		indexFlag=index;
	        	}
	        },
			columns: [[  
				{
    
    field:'chk',checkbox: true,width:50},
 		        {
    
    field:'id',title:'职工号',width:50, sortable: true},    
 		        {
    
    field:'name',title:'姓名',width:50, sortable: true},    
 		        {
    
    field:'time',title:'日期',width:150},
 		        {
    
    field:'first_clock',title:'第一次打卡',width:150},
 		       {
    
    field:'end_clock',title:'最后一次打卡',width:150},
	 		]], 
			toolbar : "#toolbar",
			onBeforeLoad : function() {
    
    
			}
		});
		//设置分页控件 
		var p = $('#dataList').datagrid('getPager');
		$(p).pagination({
    
    
			pageSize : 10,//每页显示的记录条数,默认为10 
			pageList : [10, 20, 30, 40, 50 ],//可以设置每页记录条数的列表 
			beforePageText : '第',//页数文本框前显示的汉字 
			afterPageText : '页    共 {pages} 页',
			displayMsg : '当前显示 {from} - {to} 条记录   共 {total} 条记录',
		});
		//设置工具类按钮
		$("#add").click(function() {
    
    
			$("#addDialog").dialog("open");
		});
		//修改
		$("#edit").click(function() {
    
    
			var selectRow = $("#dataList").datagrid("getSelected");//必须选中某一行才能进行修改
			//console.log(selectRow);
	  		if(selectRow == null){
    
    
            	$.messager.alert("消息提醒", "请选择数据进行修改!", "warning");
            	return;
            }
	  		$("#editDialog_").dialog("open");//修改窗口打开
		});
	    //删除
	   $("#delete").click(function(){
    
    
	    	var selectRow = $("#dataList").datagrid("getSelected");
        	if(selectRow == null){
    
    
            	$.messager.alert("消息提醒", "请选择数据进行删除!", "warning");
            } else{
    
    
            	var empid = selectRow.id;
            	$.messager.confirm("消息提醒", "将删除员工信息,确认继续?", function(r){
    
    
            		if(r){
    
    
            			$.ajax({
    
    
							type: "post",
							url: "EmployeeServlet?method=Deleteemp",
							data: {
    
    empid: empid},
							success: function(msg){
    
    
								if(msg == "success"){
    
    
									$.messager.alert("消息提醒","删除成功!","info");
									//刷新表格
									$("#dataList").datagrid("reload");
								} else{
    
    
									$.messager.alert("消息提醒","删除失败!","warning");
									return;
								}
							}
						});
            		}
            	});
            }
	    });
		//下拉框通用属性
		$("#add_department, #edit_department").combobox({
    
    
			width : "200",
			height : "30",
			valueField : "id",
			textField : "name",
			multiple : false, //可多选
			editable : false, //不可编辑
			method : "post",
		});

		$("#add_department").combobox({
    
    
			url : "DepartmentServlet?method=getDepartmentlist&t="
					+ new Date().getTime() + "&from=combox",
			onLoadSuccess : function() {
    
    
				//默认选择第一条数据
				var data = $(this).combobox("getData");
				$(this).combobox("setValue", data[0].id);
			}
		});

		$("#edit_department").combobox({
    
    
			url : "DepartmentServlet?method=getDepartmentlist&t="
					+ new Date().getTime() + "&from=combox",
			onLoadSuccess : function() {
    
    
				//默认选择第一条数据
				var data = $(this).combobox("getData");
				$(this).combobox("setValue", data[0].id);
			}
		});

		//设置添加员工窗口
	    $("#addDialog").dialog({
    
    
	    	title: "添加员工记录",
	    	width: 650,
	    	height: 460,
	    	iconCls: "icon-add",
	    	modal: true,
	    	collapsible: false,
	    	minimizable: false,
	    	maximizable: false,
	    	draggable: true,
	    	closed: true,
	    	buttons: [
	    		{
    
    
					text:'添加',
					plain: true,
					iconCls:'icon-user_add',
					handler:function(){
    
    
						var validate = $("#addForm").form("validate");
						if(!validate){
    
    
							$.messager.alert("消息提醒","请检查你输入的数据!","warning");
							return;
						} else{
    
    
							$.ajax({
    
    
								type: "post",
								url: "EmployeeServlet?method=AddEmployee",
								data: $("#addForm").serialize(),
								success: function(msg){
    
    
									if(msg == "success"){
    
    
										$.messager.alert("消息提醒","添加成功!","info");
										//关闭窗口
										$("#addDialog").dialog("close");
										//清空原表格数据
										$("#add_name").textbox('setValue', "");
										$("#add_time").datebox('setValue',"");
										$("#add_first_clock").textbox('setValue', "");
										$("#add_end_clock").textbox('setValue', "");
							  			$('#dataList').datagrid("reload");
									} else{
    
    
										$.messager.alert("消息提醒","添加失败!","warning");
										return;
									}
								}
							});
						}
					}
				},
				{
    
    
					text:'重置',
					plain: true,
					iconCls:'icon-reload',
					handler:function(){
    
    
						//清空表单
						$("#add_name").textbox('setValue', "");
						$("#add_time").datebox('setValue',"");
						$("#add_first_clock").textbox('setValue', "");
						$("#add_end_clock").textbox('setValue', "");
					}
				},
			],
			
	    });
	  //设置编辑员工窗口
	    $("#editDialog_").dialog({
    
    
	    	title: "修改员工信息",
	    	width: 650,
	    	height: 460,
	    	iconCls: "icon-edit",
	    	modal: true,
	    	collapsible: false,
	    	minimizable: false,
	    	maximizable: false,
	    	draggable: true,
	    	closed: true,
	    	buttons: [
	    		{
    
    
					text:'提交',
					plain: true,
					iconCls:'icon-user_add',
					handler:function(){
    
    
						var validate = $("#editForm").form("validate");
						if(!validate){
    
    
							$.messager.alert("消息提醒","请检查你输入的数据!","warning");
							return;
						} else{
    
    
							$.ajax({
    
    
								type: "post",
								url: "EmployeeServlet?method=Editemp&t="+new Date().getTime(),
								data: $("#editForm").serialize(),
								success: function(msg){
    
    
									if(msg == "success"){
    
    
										$.messager.alert("消息提醒","更新成功!","info");
										//关闭窗口
										$("#editDialog_").dialog("close");
										//刷新表格
										$("#dataList").datagrid("reload");
									} else{
    
    
										$.messager.alert("消息提醒","更新失败!","warning");
										return;
									}
								}
							});
						}
					}
				},
				{
    
    
					text:'重置',
					plain: true,
					iconCls:'icon-reload',
					handler:function(){
    
    
						//清空表单
						$("#edit_name").textbox('setValue', "");
						$("#edit_time").datebox('setValue',"");
						$("#edit_first_clock").textbox('setValue', "");
						$("#edit_end_clock").textbox('setValue', "");
					}
				}
			],
			onBeforeOpen: function(){
    
    
				var selectRow = $("#dataList").datagrid("getSelected");
				//console.log(selectRow);
				//设置值
				$("#edit_name").textbox('setValue',selectRow.name );
				$("#edit_time").datebox('setValue',selectRow.time);
				$("#edit_first_clock").textbox('setValue', selectRow.first_clock);
				$("#edit_end_clock").textbox('setValue', selectRow.end_clock);
				$("#edit-id").val(selectRow.id);
			}
	    });
		//搜索按钮监听事件
		$("#search-btn").click(function() {
    
    
			$('#dataList').datagrid('load',{
    
    
				emp_name : $('#search_emp_name').val(),
				search_time:$("#search_time").datebox('getValue')
			});
			 $('#search_emp_name').textbox('setValue','');
		});

	});
</script>
<script type="text/javascript">
		function myformatter(date){
    
    
			var y = date.getFullYear();
			var m = date.getMonth()+1;
			var d = date.getDate();
			return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
		}
		function myparser(s){
    
    
			if (!s) return new Date();
			var ss = (s.split('-'));
			var y = parseInt(ss[0],10);
			var m = parseInt(ss[1],10);
			var d = parseInt(ss[2],10);
			if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
    
    
				return new Date(y,m-1,d);
			} else {
    
    
				return new Date();
			}
		}
	</script>
</head>
<body>
	<!-- 薪资列表 -->
	<table id="dataList" cellspacing="0" cellpadding="0">

	</table>
	<!-- 工具框 -->
	<div id="toolbar">
			<div style="float: left;">
				<a id="add" href="javascript:;" class="easyui-linkbutton"
					data-options="iconCls:'icon-add',plain:true">添加</a>
			</div>
			<div style="float: left;" class="datagrid-btn-separator"></div>
		<div style="float: left;">
			<a id="edit" href="javascript:;" class="easyui-linkbutton"
				data-options="iconCls:'icon-edit',plain:true">修改</a>
		</div>
		<div style="float: left;" class="datagrid-btn-separator"></div>
			<div style="float: left;">
				<a id="delete" href="javascript:;" class="easyui-linkbutton"
					data-options="iconCls:'icon-some-delete',plain:true">删除</a>
			</div>
			<div style="float: left;" class="datagrid-btn-separator"></div>
		<div style="float: left; margin: 3px 5px 0 5px;">
			姓名:<input id="search_emp_name" class="easyui-textbox"
				name="search_emp_name" />
		</div>
		<div style="float: left;" class="datagrid-btn-separator"></div>
		<div style="margin: 3px 5px 0 5px;">
			日期:<input id="search_time" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="search_time" />
			 <a id="search-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">搜索</a>
		</div>

	</div>

	<!-- 添加员工窗口 -->
	<div id="addDialog" style="padding: 10px">
		<form id="addForm" method="post">
			<table cellpadding="8">
				<tr>
					<td>姓名:</td>
					<td><input id="add_name" style="width: 200px; height: 30px;"
						class="easyui-textbox" type="text" name="add_name"
						data-options="required:true, missingMessage:'请填写姓名'" /></td>
				</tr>
				<tr>
					<td>日期:</td>
					<td>
					<input id="add_time" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="add_time" />
					</td>
				</tr>
				<tr>
					<td>第一次打卡:</td>
					<td><input id="add_first_clock"
						style="width: 200px; height: 30px;" class="easyui-textbox"
						name="add_first_clock" /></td>
				</tr>
				<tr>
					<td>最后一次打卡:</td>
					<td><input id="add_end_clock"
						style="width: 200px; height: 30px;" class="easyui-textbox"
						name="add_end_clock" /></td>
				</tr>
			</table>
		</form>
	</div>

	<!-- 修改员工窗口 -->
	<div id="editDialog_" style="padding: 10px">
		<form id="editForm" method="post">
			<input type="hidden" name="edit-id" id=edit-id>
			<table cellpadding="8">
				<tr>
					<td>姓名:</td>
					<td><input id="edit_name" style="width: 200px; height: 30px;"
						class="easyui-textbox" type="text" name="edit_name"
						data-options="required:true, missingMessage:'请填写姓名'" /></td>
				</tr>
				<tr>
					<td>日期:</td>
					<td>
					<input id="edit_time" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="edit_time" />
					</td>
				</tr>
				<tr>
					<td>第一次打卡:</td>
					<td><input id="edit_first_clock"
						style="width: 200px; height: 30px;" class="easyui-textbox"
						name="edit_first_clock" /></td>
				</tr>
				<tr>
					<td>最后一次打卡:</td>
					<td><input id="edit_end_clock"
						style="width: 200px; height: 30px;" class="easyui-textbox"
						name="edit_end_clock" /></td>
				</tr>
			</table>
		</form>
	</div>
	<!-- 提交表单处理iframe框架 -->
	<iframe id="photo_target" name="photo_target"></iframe>  
</body>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" />
		<link rel="stylesheet" href="${pageContext.request.contextPath}/css/iconfont.css" />
		<title>职工考勤管理程序</title>
		<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css">
		<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
		<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.min.js">
		</script>
		<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript">
	$(function(){
		//登录
		$("#submitBtn").click(function(){	
			//获取表单中的字符串并格式化
			var data = $("#form").serialize();
			$.ajax({
				type: "post",
				url: "${pageContext.request.contextPath}/LoginServlet?method=Login",
				data: data, 
				dataType: "text", //返回数据类型
				//成功返回的信息
				success: function(msg){
					if("loginError"== msg){//返回的信息
						$.messager.alert("消息提醒", "用户名或密码错误!", "warning");
					} else if("loginSuccess" == msg){//跳转到SystemServlet
						window.location.href = "${pageContext.request.contextPath}/SystemServletemp?method=toAdminView";
					}else{
						alter(msg)
					}
				}
				
			});
		});
	})
</script> 
</head>
	<body>
		<div id="bigBox">
			<h1>职工考勤管理程序</h1>
			<div class="inputBox">
				<form  id="form">
					<div class="inputText">
						<span class="iconfont icon-nickname"></span>
						<input type="text" placeholder="Username" name="user"/>
					</div>
					<div class="inputText">
						<span class="iconfont icon-visible"></span>
						<input type="password" placeholder="Password" name="pwd" />
					</div>
				</form>
			</div>
			<input id="submitBtn" class="loginButton" type="button" value="Login" />
		</div>
	</body>
</html>

Servlet:

EmployeeServlet(完成后台的增删查改)

package com.item.test.Servlet;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSONObject;
import com.item.test.dao.Employeesdao;
import com.item.test.model.Employee;
import com.item.test.model.Page;

/**
 * Servlet implementation class EmployeeServlet
 */
@WebServlet("/EmployeeServlet")
public class EmployeeServlet extends HttpServlet {
    
    
	private static final long serialVersionUID = 1L;

	/**
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		String method=request.getParameter("method");
		if("toListemployee".equals(method)) {
    
    
			Listemployee(request,response);
		}else if("AddEmployee".equals(method)) {
    
    
			AddEmployee(request,response);
		}else if("EmployeeList".equals(method)) {
    
    
			EmployeeList(request,response);
		}else if("Deleteemp".equals(method)) {
    
    
			Deleteemp(request,response);
		}else if("Editemp".equals(method)) {
    
    
			Editemp(request,response);
		}
	}

	private void Editemp(HttpServletRequest request, HttpServletResponse response) {
    
    
		// TODO Auto-generated method stub
		try {
    
    
			request.setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		int id=Integer.parseInt(request.getParameter("edit-id"));
		String name = request.getParameter("edit_name");
		String edit_time=request.getParameter("edit_time");
		String edit_first_clock=request.getParameter("edit_first_clock");
		String edit_end_clock=request.getParameter("edit_end_clock");
		Date edit_times=null;
		try {
    
    
			edit_times=new SimpleDateFormat("yyyy-MM-dd").parse(edit_time);
		} catch (ParseException e) {
    
    
			e.printStackTrace();
		}
		Employee emp=new Employee();
		emp.setId(id);
		emp.setName(name);
		emp.setTime(edit_times);
		emp.setFirst_clock(edit_first_clock);
		emp.setEnd_clock(edit_end_clock);
		Employeesdao dao=new Employeesdao();
		if(dao.editemp(emp)) {
    
    
			try {
    
    
				response.getWriter().print("success");
			} catch (IOException e) {
    
    
				e.printStackTrace();
			}
		}else {
    
    
			try {
    
    
				response.getWriter().print("error");
			} catch (IOException e) {
    
    
				e.printStackTrace();
			}
		}
		
	}

	private void Deleteemp(HttpServletRequest request, HttpServletResponse response) {
    
    
		// TODO Auto-generated method stub
		int id=Integer.parseInt(request.getParameter("empid"));
		Employeesdao dao=new Employeesdao();
		if(dao.deleteemp(id)) {
    
    
			try {
    
    
				response.getWriter().print("success");
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else {
    
    
			try {
    
    
				response.getWriter().print("error");
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

	private void EmployeeList(HttpServletRequest request, HttpServletResponse response) {
    
    
		// TODO Auto-generated method stub
		try {
    
    
			request.setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e1) {
    
    
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		String name=request.getParameter("emp_name");
		String serach_time=request.getParameter("search_time");
		Integer currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
		Integer pageSize = request.getParameter("rows") == null ? 999 : Integer.parseInt(request.getParameter("rows"));
		Employee emp=new Employee();
		emp.setName(name);
		Employeesdao dao=new Employeesdao();
		
		List<Employee>list=dao.getEmploteelist(emp,new Page(currentPage, pageSize),serach_time);
//		for(Employee emps:list) {
    
    
//			System.out.println(emps);
//		}
		//System.out.println(JSONObject.toJSONString(list));
		response.setCharacterEncoding("UTF-8");
		int total = dao.getEmplist(emp);
		Map<String, Object> ret = new HashMap<String, Object>();
		ret.put("total", total);
		ret.put("rows", list);
		String from = request.getParameter("from");
		if("combox".equals(from)){
    
    
			try {
    
    
				response.getWriter().write(JSONObject.toJSONString(list));
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else{
    
    
			try {
    
    
				response.getWriter().write(JSONObject.toJSONString(ret));
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	private void AddEmployee(HttpServletRequest request, HttpServletResponse response) {
    
    
		// TODO Auto-generated method stub
		String name = request.getParameter("add_name");
		String add_time=request.getParameter("add_time");
		String add_first_clock=request.getParameter("add_first_clock");
		String add_end_clock=request.getParameter("add_end_clock");
		//System.out.println(name+" "+add_time+" "+add_first_clock+" "+add_end_clock);
		Date add_times=null;
		try {
    
    
			add_times=new SimpleDateFormat("yyyy-MM-dd").parse(add_time);
		} catch (ParseException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Employee emp=new Employee();
		emp.setName(name);
		emp.setTime(add_times);
		emp.setFirst_clock(add_first_clock);
		emp.setEnd_clock(add_end_clock);
		Employeesdao dao=new Employeesdao();
		if(dao.addemployee(emp)) {
    
    
			try {
    
    
				response.getWriter().print("success");
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else {
    
    
			try {
    
    
				response.getWriter().print("error");
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		//System.out.println(name+" "+add_times+" "+add_first_clock+" "+add_end_clock);
	}

	private void Listemployee(HttpServletRequest request, HttpServletResponse response) {
    
    
		// TODO Auto-generated method stub
		try {
    
    
			request.getRequestDispatcher("/view/employee.jsp").forward(request, response);
		} catch (ServletException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

LoginServlet(验证登录)

package com.item.test.Servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.item.test.dao.Userdao;
import com.item.test.model.Userlogin;

/**
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    
    
	private static final long serialVersionUID = 1L;
       
	/**
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		request.setCharacterEncoding("UTF-8");
		//获取携带的参数中有LoginOut,则退出
		String method=request.getParameter("method");
		//进行退出操作
		if(method.equals("LoginOut")) {
    
    
			LoginOut(request,response);
			return ;
		}
		String loginStatus = "loginError";
		String user=request.getParameter("user");
		String pwd = request.getParameter("pwd");
		Userlogin login=new Userlogin();
		login.setUser(user);
		login.setPwd(pwd);
		Userdao dao=new Userdao();
		try {
    
    
			Userlogin login_res=dao.login(login);
			if(login_res==null) {
    
    
				response.getWriter().print(loginStatus);
				return ;
			}
			HttpSession session=request.getSession();
			session.setAttribute("user",login_res);
			loginStatus="loginSuccess";
			response.getWriter().print(loginStatus);
		} catch (SQLException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void LoginOut(HttpServletRequest request, HttpServletResponse response) throws IOException {
    
    
		// TODO Auto-generated method stub
		//删除存放在session中的用户信息,并转发到登录界面
		request.getSession().removeAttribute("user");
		response.sendRedirect("view/login.jsp");
	}

	/**
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

SystemServletemp(系统管理)

package com.item.test.Servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.item.test.dao.Userdao;
import com.item.test.model.Userlogin;


/**
 * Servlet implementation class SystemServlet
 */
@WebServlet("/SystemServletemp")
public class SystemServlet extends HttpServlet {
    
    
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		String method = request.getParameter("method");
		if ("toPersonalView".equals(method)) {
    
    
			personalView(request, response);
			return;
		} else if ("EditPasswod".equals(method)) {
    
    
			try {
    
    
				editPassword(request, response);
			} catch (IOException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (SQLException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return;
		}
		request.getRequestDispatcher("view/system.jsp").forward(request, response);
	}

	/**
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		// TODO Auto-generated method stub
		doGet(request, response);
	}
	
	private void personalView(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
    
    
		// TODO Auto-generated method stub
		request.getRequestDispatcher("view/personalView.jsp").forward(request, response);
	}
	private void editPassword(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException {
    
    
		// TODO Auto-generated method stub
		String password = request.getParameter("password");
		String newPassword = request.getParameter("newpassword");
		response.setCharacterEncoding("UTF-8");
		Userlogin user=(Userlogin) request.getSession().getAttribute("user");
		if(!user.getPwd().equals(password)) {
    
    
			response.getWriter().write("原密码错误!");
			return ;
		}
		Userdao dao=new Userdao();
		if(dao.editPassword(user, newPassword)) {
    
    
			response.getWriter().print("success");
		}else {
    
    
			response.getWriter().print("数据库修改错误");
		}
	}

}

实体类:

Employee(职工考勤信息,由于使用dbutiles保持和表中的字段一致)

package com.item.test.model;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;

public class Employee {
    
    
	private int id;
	private String name;
	@JSONField(format="yyyy-MM-dd")
	private Date time;
	private String first_clock;
	private String end_clock;
	
	public int getId() {
    
    
		return id;
	}
	public void setId(int id) {
    
    
		this.id = id;
	}
	public String getName() {
    
    
		return name;
	}
	public void setName(String name) {
    
    
		this.name = name;
	}
	public Date getTime() {
    
    
		return time;
	}
	public void setTime(Date time) {
    
    
		this.time = time;
	}
	public String getFirst_clock() {
    
    
		return first_clock;
	}
	public void setFirst_clock(String first_clock) {
    
    
		this.first_clock = first_clock;
	}
	/**
	 * @return
	 */
	public String getEnd_clock() {
    
    
		return end_clock;
	}
	@Override
	public String toString() {
    
    
		return "Employee [id=" + id + ", name=" + name + ", time=" + time + ", first_clock=" + first_clock
				+ ", end_clock=" + end_clock + "]";
	}
	public void setEnd_clock(String end_clock) {
    
    
		this.end_clock = end_clock;
	}
	
}

Page(前端分页)

package com.item.test.model;

public class Page {
    
    
	private int start;//起始页
	private int currentPage;//当前页
	private int pageSize;//每页显示数量
	public Page(int currentpage,int pageSize) {
    
    
		this.start=(currentpage-1)*pageSize;//根据拿到的当前页和每页显示的数量,去mysql中进行查找
		//start表示起始查询位置。
		this.currentPage=currentpage;
		this.pageSize=pageSize;
	}
	public int getStart() {
    
    
		return start;
	}
	public void setStart(int start) {
    
    
		this.start = start;
	}
	public int getCurrentPage() {
    
    
		return currentPage;
	}
	public void setCurrentPage(int currentPage) {
    
    
		this.currentPage = currentPage;
	}
	public int getPageSize() {
    
    
		return pageSize;
	}
	public void setPageSize(int pageSize) {
    
    
		this.pageSize = pageSize;
	}
	
}

Userlogin(用户登录实体)

package com.item.test.model;

public class Userlogin {
    
    
	private int id;
	private String user;
	private String pwd;
	
	public int getId() {
    
    
		return id;
	}
	public void setId(int id) {
    
    
		this.id = id;
	}
	public String getUser() {
    
    
		return user;
	}
	public void setUser(String user) {
    
    
		this.user = user;
	}
	public String getPwd() {
    
    
		return pwd;
	}
	public void setPwd(String pwd) {
    
    
		this.pwd = pwd;
	}
}

dao层

Employeesdao(职工的增删查改)

package com.item.test.dao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;

import com.item.test.model.Employee;
import com.item.test.model.Page;
import com.item.test.utiles.C3P0Utiles;
import com.item.test.utiles.StringUtiles;

public class Employeesdao {
    
    
	QueryRunner queryRunner=new QueryRunner(C3P0Utiles.getDataSource());
	//添加员工信息
	public boolean addemployee(Employee emp) {
    
    
		String sql="insert into employees values(null,?,?,?,?)";
		int cnt=-1;
		try {
    
    
			cnt=queryRunner.update(sql,emp.getName(),emp.getTime(),emp.getFirst_clock(),emp.getEnd_clock());
		} catch (SQLException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return cnt>0?true:false;
	}
	//查询到所有员工信息并以list集合返回
	public  List<Employee> getEmploteelist(Employee emp, Page page,String search_time) {
    
    
		List<Employee> ret = new ArrayList<Employee>();
		String sql = "select * from employees ";
		if(!StringUtiles.isEmpty(emp.getName())){
    
    
			sql += "and name like '%" + emp.getName() +"%' ";
		}
		if(search_time!=null&&!search_time.equals("")) {
    
    
			sql+=" and time like'%"+search_time+"%'";
		}
		sql += " limit " + page.getStart() + "," + page.getPageSize();
		try {
    
    
			ret=queryRunner.query(sql.replaceFirst("and", "where"), new BeanListHandler<Employee>(Employee.class));
		} catch (SQLException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return ret;
	}
	//获取员工的总数
	public int getEmplist(Employee emp) {
    
    
		String sql = "select count(*)as total from employees ";
		if(!StringUtiles.isEmpty(emp.getName())){
    
    
			sql += "and name like '%" + emp.getName() + "%'";
		}
		Long total=(long)-1;
		try {
    
    
			total = queryRunner.query(sql.replaceFirst("and", "where"), new ScalarHandler<Long>());
		} catch (SQLException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return total.intValue();
	}
	//删除员工信息
	public boolean deleteemp(int id) {
    
    
		String sql="delete from employees where id=?";
		int cnt=-1;
		try {
    
    
			cnt = queryRunner.update(sql,id);
		} catch (SQLException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return cnt>0?true:false;
	}
	//编辑员工信息
	public boolean editemp(Employee emp) {
    
    
		// TODO Auto-generated method stub
		String sql = "update employees set name = ?,time=?,first_clock=?,end_clock=? where id=?";
		int cnt=-1;
		try {
    
    
			cnt = queryRunner.update(sql,emp.getName(),emp.getTime(),emp.getFirst_clock(),emp.getEnd_clock(),emp.getId());
		} catch (SQLException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return cnt>0?true:false;
	}
}

Userdao(用户的查询以及修改密码)

package com.item.test.dao;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.item.test.model.Userlogin;
import com.item.test.utiles.C3P0Utiles;



public class Userdao {
    
    
	public Userlogin login(Userlogin user) throws SQLException{
    
    
		//查询登录用户,并返回该登录用户
		String sql="select * from login where user=? and pwd=?";
		QueryRunner queryRunner=new QueryRunner(C3P0Utiles.getDataSource());
		Userlogin res=(Userlogin) queryRunner.query(sql, new BeanHandler<>(Userlogin.class),user.getUser(),user.getPwd());
		return res;	
	}

	public boolean editPassword(Userlogin user, String pwd) throws SQLException {
    
    
		//更新密码
		String sql = "update login set pwd = '"+pwd+"' where id = " +"'"+user.getId()+"'";
		QueryRunner queryRunner=new QueryRunner(C3P0Utiles.getDataSource());
		int cnt=queryRunner.update(sql);
		return cnt>0?true:false;
	}
}

过滤器(防止非法用户进入)

Loginfilter

package com.item.test.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 拦截用户未登录状态下的操作
 */
@WebFilter(filterName="/Loginfilter",value="/SystemServletemp")
public class Loginfilter implements Filter {
    
    

    /**
     * Default constructor. 
     */
    public Loginfilter() {
    
    
        // TODO Auto-generated constructor stub
    }

	/**
	 */
	public void destroy() {
    
    
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    
    
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse rep = (HttpServletResponse)response;
		Object user = req.getSession().getAttribute("user");
		//验证user
		if(user==null) {
    
    
			rep.sendRedirect("index.jsp");
			return ;
		}else {
    
    
			chain.doFilter(request, response);
		}
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
    
    
		// TODO Auto-generated method stub
	}

}

utiles(工具类)

C3P0Utiles(获取数据库的连接)

package com.item.test.utiles;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Utiles {
    
    
	private static ComboPooledDataSource dataSource=new ComboPooledDataSource();
	public static DataSource getDataSource() {
    
    
		return dataSource;
	}
}

StringUtiles(字符串检查)

package com.item.test.utiles;

public class StringUtiles {
    
    
	public static boolean isEmpty(String str) {
    
    
		if(str == null || "".equals(str))return true;
		return false;
	}
}

数据库:用C3p0进行连接。

总结:返回到前端的是json格式,有一点问题就是职工实体类和数据库中的表都是Date类型,放到页面上的格式不太好,最后用了在实体类中time类型上使用注解@JSONField(format=“yyyy-MM-dd”)格式化一下即可。用的jar包fastjson。同时查询某个日期是模糊查询,可以查询某年或某月或某日或指定日期的考勤记录。

猜你喜欢

转载自blog.csdn.net/qq_43566782/article/details/112272978