做个简单的Java学生考勤系统06--签到功能完善
Posted exodus3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做个简单的Java学生考勤系统06--签到功能完善相关的知识,希望对你有一定的参考价值。
有些人就会问,学生签到,就根据学生id,和对应的课表id,调用添加签到功能就行了吗?不用校验吗?比如这节课是10点开始上课,我11点了还签到,这不是有漏洞吗?是的,所以,就接下来,是对签到功能的完善。
public String qiandao(int kebiao_id,int xuesheng_id) //提前10分钟签到
{
String s="";
try
{
System.out.println(utilService.get_kebiao(kebiao_id).getShijian()+"TTT");
Long s1= Util.newDate1(utilService.get_kebiao(kebiao_id).getShijian()).getTime();//上课时间
Long s2= Util.newDate1(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date())).getTime();//当期时间
//如果上课时间(10点)>当期时间(11点)
if(s1<s2)
{
s="签到时间已过,本节课按照旷课处理";
}
else
{
if(s1-s2>600000)
{
s="未到签到时间,请与上课时间前10分钟签到";
}
else
{
String ssss=utilService.panduan_xuesheng_qiandao(xuesheng_id, kebiao_id);
System.out.println(ssss+"^^^^");
if(ssss.equals("shi"))
{
s="已经签到过,请不要重复签到";
}
else
{
utilService.qiandao_add(xuesheng_id, kebiao_id);
s="成功完成签到";
}
}
}
}
catch (Exception e)
{
}
return s;
}
方法讲解:
1、该方法传入学生id,和课表id两个参数,根据课表id查询课表信息,拿到课表的上课时间。
2、接着,获得系统当前时间,根据这两个时间进行对比,如果课表时间早于当前时间,那么该学生迟到了,提示学生迟到,并标记签到为迟到。
3、如果当前时间比课表时间早,则进一步判断,如果距离上课时间超过10分钟以上,则提示还没有达到签到时间。如果10点的课,学生8点,9点就签到,岂不是乱来,所以,限制选择10分钟是个合适的的时间
4、根据学生id,和课表id从数据库查询该学生有没有签到,调用的是之前写的panduan_xuesheng_qiandao方法,如果之前已经签到过了,就不用再签到了,不然一个劲的在签到
5、如果以上情况都没有,那么就是正常签到,提示签到成功
public void qiandao_tongji(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
int kebiao_id=Integer.parseInt(req.getParameter("kebiao_id"));
req.setAttribute("qiandaoList", utilService.get_qiandao_list(kebiao_id));
req.getRequestDispatcher("admin/qiandao/qiandao_tongji.jsp").forward(req, res);
}
public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response)
{
RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
try
{
dispatch.forward(request, response);
return;
}
catch (ServletException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
方法讲解
上面的方法是拦截签到的代码,跳转到签到页面,拿到签到的相关信息
以上是关于做个简单的Java学生考勤系统06--签到功能完善的主要内容,如果未能解决你的问题,请参考以下文章
做个简单的Java学生考勤系统05--查询课程课表学生与老师信息