目录
1.系统简要概述
此系统是基于B/S架构开发,利用j2ee技术,开发出来的一套web系统。主要用到的技术有servlet、javabean、jsp、echarts、jquery、ajax等。系统采用mvc模式实现内部逻辑和页面的分离。总体来看,工作量适当。
2.系统设计
2.1功能设计
2.2用例设计
2.3数据库设计
2.4数据表设计
user
classes
kaoqin
3.系统相关页面
3.1登陆页面
3.2管理员首页
3.3教师发布考勤
3.4查看考勤信息
3.5 教师补打卡
3.6学生考勤打卡
4.部分代码
adminservlet
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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 dao.ComBean;
import dao.Constant;
import dao.DBA;
/**
*@author:gz
*@version:2023年4月13日上午10:29:47
*类说明
*/
@WebServlet("/AdminServlet")
public class AdminServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
String method=request.getParameter("method");
if(method.equals("login")){
Login(request,response);
}
if(method.equals("addschool")){
Addschool(request,response);
}
if(method.equals("upschool")){
UpmSchool(request,response);
}
if(method.equals("delschool")){
Delschool(request,response);
}
if(method.equals("addteacher")){
Addteacher(request,response);
}
if(method.equals("upteacher")){
Upteacher(request,response);
}
if(method.equals("delteacher")){
Delteacher(request,response);
}
if(method.equals("addstudent")){
Addstudent(request,response);
}
if(method.equals("upstudent")){
Upstudent(request,response);
}
if(method.equals("delstudent")){
Delstudent(request,response);
}
if(method.equals("addsubject")){
Addsubject(request,response);
}
if(method.equals("upsubject")){
Upsubject(request,response);
}
if(method.equals("delsubject")){
Delsubject(request,response);
}
if(method.equals("uppwd")){
Uppwd(request,response);
}
if(method.equals("adminexit")){
Loginout(request,response);
}
}
//退出登录
private void Loginout(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
HttpSession session = request.getSession();
session.removeAttribute("user"); session.removeAttribute("sf");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
//修改密码
private void Uppwd(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
ComBean cBean = new ComBean();
PrintWriter out=response.getWriter();
HttpSession session = request.getSession();
String oldpwd =request.getParameter("oldpwd");
String newpwd =request.getParameter("newpwd");
String repwd =request.getParameter("repwd");
String user=(String)session.getAttribute("user");//获取当前登录用户名
String sql="select * from user where user_name='"+user+"' and pwd='"+oldpwd+"'";
int count=cBean.getCount(sql);
System.out.print(count);
if(count==0){
out.print("<script>" +
"alert('旧密码错误,修改失败!');" +
"window.location.href=\"admin/editpwd.jsp\";"+
"</script>");
return;
}else {
if(!newpwd.equals(repwd)){
out.print("<script>" +
"alert('对不起,两次密码不相同,修改失败!');" +
"window.location.href=\"admin/editpwd.jsp\";"+
"</script>");
return;
}else {
String sql2="update user set pwd='"+newpwd+"' where user_name='"+user+"'" ;
if(cBean.comUp(sql2)==1){
out.print("<script>" +
"alert('修改成功!请重新登录');" +
"window.top.location.href= \"index.jsp\";" +
"</script>");
}
}
}
}
//删除课程
private void Delsubject(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
int flag=cBean.comUp("delete from subject where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showSubject.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showSubject.jsp\";" +
"</script>");
return;
}
}
//修改课程
private void Upsubject(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
String subjectId=request.getParameter("subject_id");
String subjectName=request.getParameter("subject_name");
int flag=cBean.comUp("update subject set subject_id='"+subjectId+"',subject_name='"+subjectName+"' where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showSubject.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showSubject.jsp\";" +
"</script>");
return;
}
}
//添加课程
private void Addsubject(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String subjectId=request.getParameter("subject_id");
String subjectName=request.getParameter("subject_name");
int flag=cBean.comUp("insert into subject(subject_id,subject_name) values('"+subjectId+"','"+subjectName+"')");
if(flag==Constant.SUCCESS){
out.print("<script>" + "alert('添加成功!');" +
"window.top.href=\"admin/index2.jsp\";" +
"</script>");
return;
}
else {
out.print("<script>" + "alert('添加失败!');" +
"window.location.href=\"admin/add_subject.jsp\";" +
"</script>");
return;
}
}
//删除学生
private void Delstudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
List list=cBean.get1Com("select student_sex from student where id='"+id+"'", 1);
String sex=list.get(0).toString();
if(sex.equals("男")){
cBean.comUp("update tu_count set student=student-1,s_man=s_man-1");
}
else if(sex.equals("女")){
cBean.comUp("update tu_count set student=student-1,s_woman=s_woman-1");
}
int flag=cBean.comUp("delete from student where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showStudent.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showStudent.jsp\";" +
"</script>");
return;
}
}
//修改学生
private void Upstudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
String studentId=request.getParameter("student_id");
String studentName=request.getParameter("student_name");
String studentSex=request.getParameter("student_sex");
String studentDept=request.getParameter("student_dept");
String studentclass=request.getParameter("student_class");
int flag=cBean.comUp("update student set student_id='"+studentId+"',student_name='"+studentName+"',student_sex='"+studentSex+"',student_dep='"+studentDept+"',student_class='"+studentclass+"' where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showStudent.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showStudent.jsp\";" +
"</script>");
return;
}
}
//添加学生
private void Addstudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String studentId=request.getParameter("student_id");
String studentName=request.getParameter("student_name");
String studentSex=request.getParameter("student_sex");
String studentDept=request.getParameter("student_dept");
String studentclass=request.getParameter("student_class");
int flag=cBean.comUp("insert into student(student_id,student_name,student_sex,student_dep,student_class) values('"+studentId+"','"+studentName+"','"+studentSex+"','"+studentDept+"','"+studentclass+"')");
if(flag==Constant.SUCCESS){
if(studentSex.equals("男")){
cBean.comUp("update tu_count set student=student+1,s_man=s_man+1 ");
}
else if(studentSex.equals("女")){
cBean.comUp("update tu_count set student=student+1,s_woman=s_woman+1 ");
}
out.print("<script>" + "alert('添加成功!');" +
"window.top.href=\"admin/index2.jsp\";" +
"</script>");
return;
}
else {
out.print("<script>" + "alert('添加失败!');" +
"window.location.href=\"admin/add_school.jsp\";" +
"</script>");
return;
}
}
//删除教师
private void Delteacher(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
List list=cBean.get1Com("select teacher_sex from teacher where id='"+id+"'", 1);
String sex=list.get(0).toString();
if(sex.equals("男")){
cBean.comUp("update tu_count set teacher=teacher-1,t_man=t_man-1");
}
else if(sex.equals("女")){
cBean.comUp("update tu_count set teacher=teacher-1,t_woman=t_woman-1");
}
int flag=cBean.comUp("delete from teacher where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showTeacher.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showTeacher.jsp\";" +
"</script>");
return;
}
}
//修改教师
private void Upteacher(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
String teacherId=request.getParameter("teacher_id");
String teacherName=request.getParameter("teacher_name");
String teacherSex=request.getParameter("teacher_sex");
String teacherDept=request.getParameter("teacher_dept");
int flag=cBean.comUp("update teacher set person_id='"+teacherId+"',teacher_name='"+teacherName+"',teacher_sex='"+teacherSex+"',teacher_dep='"+teacherDept+"' where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showTeacher.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showTeacher.jsp\";" +
"</script>");
return;
}
}
//添加教师
private void Addteacher(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String teacherId=request.getParameter("teacher_id");
String teacherName=request.getParameter("teacher_name");
String teacherSex=request.getParameter("teacher_sex");
String teacherDept=request.getParameter("teacher_dept");
int flag=cBean.comUp("insert into teacher(person_id,teacher_name,teacher_sex,teacher_dep) values('"+teacherId+"','"+teacherName+"','"+teacherSex+"','"+teacherDept+"')");
if(flag==Constant.SUCCESS){
if(teacherSex.equals("男")){
cBean.comUp("update tu_count set teacher=teacher+1,t_man=t_man+1 ");
}
else if(teacherSex.equals("女")){
cBean.comUp("update tu_count set teacher=teacher+1,t_woman=t_man+1 ");
}
out.print("<script>" + "alert('添加成功!');" +
"window.top.href=\"admin/index2.jsp\";" +
"</script>");
return;
}
else {
out.print("<script>" + "alert('添加失败!');" +
"window.location.href=\"admin/add_school.jsp\";" +
"</script>");
return;
}
}
//删除学院信息
private void Delschool(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
int flag=cBean.comUp("delete from school where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showSchool.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showSchool.jsp\";" +
"</script>");
return;
}
}
//修改学院信息
private void UpmSchool(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String id=request.getParameter("id");
String schoolId=request.getParameter("school_id");
String schoolName=request.getParameter("school_name");
int flag=cBean.comUp("update school set school_id='"+schoolId+"',school_name='"+schoolName+"' where id='"+id+"'");
if(flag == Constant.SUCCESS){
//request.setAttribute("message", "操作成功!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作成功!');" +
"window.location.href=\"admin/showSchool.jsp\";" +
"</script>");
return;
}
else {
//request.setAttribute("message", "操作失败!");
//request.getRequestDispatcher("admin/system/index.jsp").forward(request, response);
out.print("<script>" +
"alert('操作失败!');" +
"window.location.href=\"admin/showSchool.jsp\";" +
"</script>");
return;
}
}
//添加学院
private void Addschool(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
//request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String schoolId=request.getParameter("school_id");
String schoolName=request.getParameter("school_name");
int flag=cBean.comUp("insert into school(school_id,school_name) values('"+schoolId+"','"+schoolName+"')");
if(flag==Constant.SUCCESS){
out.print("<script>" + "alert('添加成功!');" +
"window.top.href=\"admin/index2.jsp\";" +
"</script>");
return;
}
else {
out.print("<script>" + "alert('添加失败!');" +
"window.location.href=\"admin/add_school.jsp\";" +
"</script>");
return;
}
}
//登录
private void Login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
// TODO 自动生成的方法存根
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
HttpSession session = request.getSession();
String user=request.getParameter("user_name");
String pwd=request.getParameter("user_pwd");
String sf=request.getParameter("sf");
String piccode=(String) request.getSession().getAttribute("piccode");
String checkCode=request.getParameter("checkCode");//取前端值
checkCode=checkCode.toUpperCase();//把字符全部转化为大写的(用于验证码不区分大小写)
ComBean cBean = new ComBean();
String sql="select person_id from user where user_name='"+user+"' and pwd='"+pwd+"' and sf='"+sf+"' ";
String str=cBean.getString(sql);
if(str==null){
//request.setAttribute("message", "登录信息错误!");
out.print("<script>" +
"alert('账号或密码错误,请重新输入!');" +
"window.location.href=\"index.jsp\";" +
"</script>");
return;
}
if(!checkCode.equals(piccode)){
out.print("<script>" +
"alert('登录失败!验证码有误');" +
"window.location.href=\"index.jsp\";"+
"</script>");
return;
}
else {
session.setAttribute("user", user);
session.setAttribute("sf", sf);
//out.print("登陆成功!");
out.print("<script>" +
"alert('登录成功!');" +
"window.location.href=\"admin/index2.jsp\";"+
"</script>");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
doGet(request, response);
}
}
studentservlet
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
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 dao.ComBean;
import dao.Constant;
/**
*@author:gz
*@version:2023年4月15日下午4:12:49
*类说明
*/
@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
String method=request.getParameter("method");
if(method.equals("add_kaoqin")){
Add_kaoqin(request,response);
}
if(method.equals("add_qingjia")){
Add_qingjia(request,response);
}
}
//添加请假信息
private void Add_qingjia(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
String s_name=request.getParameter("s_name");
String s_id=request.getParameter("s_id");
String s_class=request.getParameter("s_class");//班级
String qj_subject=request.getParameter("qj_subject");//课程
String liyou=request.getParameter("liyou");
String sj=request.getParameter("sj");
//添加审批老师
List alist=cBean.get1Com("select s.subject_teacherId from subject as s where s.subject_name='"+qj_subject+"' and s.subject_class='"+s_class+"'",1);
String sp_teacher=alist.get(0).toString();
int flag=cBean.comUp("insert into qingjia(s_name,s_id,s_class,qj_subject,liyou,sj,sp_teacher) values('"+s_name+"','"+s_id+"','"+s_class+"','"+qj_subject+"','"+liyou+"','"+sj+"','"+sp_teacher+"')");
if(flag==Constant.SUCCESS){
out.print("<script>" + "alert('申请成功!');" +
"window.top.href=\"student/add_qingjia.jsp\";" +
"</script>");
return;
}
else {
out.print("<script>" + "alert('申请失败!');" +
"window.location.href=\"student/add_qingjia.jsp\";" +
"</script>");
return;
}
}
private void Add_kaoqin(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO 自动生成的方法存根
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ComBean cBean = new ComBean();
HttpSession session=request.getSession();
String username=session.getAttribute("user").toString();//签到人
String id=request.getParameter("id");//考勤号
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());//签到时间
String subject_name=request.getParameter("subject");//签到课程
//判断是否已经
String sql="select kaoqin_subject from kaoqin_jilu where kaoqin_user='"+username+"' and kaoqin_id='"+id+"' ";
String str=cBean.getString(sql);
if(str==null){
int flag=cBean.comUp("insert into kaoqin_jilu(kaoqin_id,kaoqin_subject,kaoqin_time,kaoqin_user) values('"+id+"','"+subject_name+"','"+date+"','"+username+"')");
if(flag==Constant.SUCCESS){
out.print("<script>" + "alert('签到成功!');" +
"window.top.href=\"student/do_daka.jsp\";" +
"</script>");
return;
}
else {
out.print("<script>" + "alert('签到失败!');" +
"window.location.href=\"student/do_daka.jsp\";" +
"</script>");
return;
}
}else {
out.print("<script>" + "alert('已签到过,不能重新签到!');" +
"window.location.href=\"student/do_daka.jsp\";" +
"</script>");
return;
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO 自动生成的方法存根
doGet(request, response);
}
}
代码不足之处,还请大家多多指正!