方式一:无状态字段
1、管理员通过前端设置上班时间提交到后台,后台获取提交的字符串参数之后,第一步通过SimpleDateFormat对象的parse()方法将上班时间的字符串转换成日期格式,第二步将时间时间存储到ServletContext中保存上班时间,第三步则是通过JDBC将上班时间插入到数据库中。
2、员工访问考勤功能,后台获取员工浏览请求并获取当前的系统日期,通过JDBC查询当前系统日期下该员工是否已经考勤。如果已经考勤,则按钮变成灰色且为不可点击状态,如果用户没有考勤,则按钮为绿色可点击状态。当员工点击考勤按钮之后,通过Ajax请求传递打卡请求,通过JDBC将考勤日期插入到数据库中。
3、管理员通过考勤模块查看员工的考勤页面时,后台获取浏览请求,JDBC通过SQL语句中的Where字句结合日期处理函数Time()函数截取打卡日期的时间和上班时间进行比较,如果说员工没有迟到则进行累加(Count()函数),否则跳过。
方式二:有状态字段
1、管理员通过前端设置上班时间提交到后台,后台获取提交的字符串参数之后,第一步将时间时间存储到ServletContext中保存上班时间,第二步则是通过JDBC将上班时间插入到数据库中。
2、员工访问考勤功能,后台获取员工浏览请求并获取当前的系统日期,通过JDBC查询当前系统日期下该员工是否已经考勤。如果已经考勤,则按钮变成灰色且为不可点击状态,如果该员工没有考勤,则按钮为绿色可点击状态。当员工点击考勤按钮之后,通过Ajax请求传递打卡请求,后台获取当前的系统日期,然后与ServletContext对象中的上班时间进行比较,如果员工没有迟到,则通过JDBC将考勤结果存储到数据库中,0表示迟到,1表示正常。
3、管理员通过考勤模块查看员工的考勤页面时,后台获取浏览请求,JDBC通过SQL语句中的Where字句对考勤结果进行比较,如果说员工没有迟到则进行累加(Count()函数),否则跳过。