Java Web ——基于Jsp+Servlet的学生上课签到打卡系统/上课考勤管理系统
Java Web 學生上課簽到打卡系統
基于Jsp+Servlet的上課考勤管理系統
實現了學生上課簽到、打卡的功能。教師能夠看到沒有及時打卡的學生情況。
包括對簽到打卡的增刪改查、對學生信息的增刪改查。
主要技術:Jsp+Servlet+Mysql+Tomcat+Eclipse
適用場合:Java課程設計/Java大作業
項目類型:JAVA WEB項目
用戶類型:2個角色(教師+學生)
開發工具:Eclipse
數據庫表:3張
介紹主要是教師在發布打卡要求以后,學生需要在規定時間內及時打卡,如果超過規定時間沒有打卡,則會被記錄下來。此外,還實現了對學生信息的增刪改查。
1.學生 注冊
2.教師/學生登錄
3.添加學生
4.刪除學生
5.修改學生
6.查看學生
7.發起打卡
8.查看未打卡的人
9.學生打卡
10.教師補打卡
項目視頻演示在最下方
項目非開源
項目獲取資訊:“那條學長”(V)(公)
關注回復java查看全部項目
其他分類專欄有一些自己原創的Java Web項目
Jsp+Servlet圖書管理系統【原創開發】
Jsp+Servlet的新聞管理系統【原創開發】
Jsp+Servlet的外賣配送系統/在線點餐系統
學生簽到打卡系統
- 1.管理員端功能介紹
- 1.1登錄界面
- 1.2學生打卡情況
- 1.3按時間發起打卡
- 1.4學生信息管理
- 1.5修改學生信息
- 2.學生端功能介紹
- 2.1注冊界面
- 2.2在線打卡
- 3.截取部分代碼介紹,可參考風格學習
- 3.1UserServlet.java
- 3.2UserService.java
- 3.3UserServiceImpl.java
- 3.4UserDao.java
- 4.數據庫設計
1.管理員端功能介紹
1.1登錄界面
1.2學生打卡情況
可以查看已經打卡的學生和未打卡的學生。并能夠刪除打卡記錄。
1.3按時間發起打卡
1.4學生信息管理
實現了對學生的增刪改查
1.5修改學生信息
2.學生端功能介紹
2.1注冊界面
2.2在線打卡
在規定時間內進行打卡,如果超過了時間限制,則無法進行打卡,而且顯示未打卡。
3.截取部分代碼介紹,可參考風格學習
3.1UserServlet.java
Servlet主要是用來獲取請求,并處理請求。其中主要是兩種,一種寫的是jsp頁面的請求,會前往對應的jsp頁面;另一種是獲取數據,并進行處理。調用業務邏輯層,并返回執行的數據訪問層的方法。將數據展示在jsp頁面內。
package com.sign.servlet;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.sign.entity.Record; import com.sign.entity.User; import com.sign.service.UserService; import com.sign.service.impl.UserServiceImpl;public class UserServlet extends HttpServlet {private UserService service = new UserServiceImpl();@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String action=request.getParameter("action");//接受請求的參數if(action != null && action.equals("toLogin")) {//去登錄頁面toLogin(request, response);}else if(action != null && action.equals("LoginOutAct")) {LoginOutAct(request, response);}else if(action != null && action.equals("welcome")) {welcome(request, response);}else if(action != null && action.equals("userList")) {userList(request, response);}else if(action != null && action.equals("sjStudent")) {sjStudent(request, response);}else if(action != null && action.equals("toRegister")) {toRegister(request, response);}else if(action != null && action.equals("Register")) {Register(request, response);}else if(action != null && action.equals("deleteUser")) {deleteUser(request, response);}else if(action != null && action.equals("toUpdateUser")) {toUpdateUser(request, response);}else if(action != null && action.equals("updateUser")) {updateUser(request, response);}else if(action != null && action.equals("toAddUser")) {toAddUser(request, response);}else if(action != null && action.equals("addUser")) {addUser(request, response);}else if(action != null && action.equals("userLike")) {userLike(request, response);}}//按照姓名查詢private void userLike(HttpServletRequest request, HttpServletResponse response) {try {String userName = request.getParameter("userName");List<User> list=service.selectUserList(userName);request.setAttribute("list" ,list);request.getRequestDispatcher("/WEB-INF/views/user/userList.jsp").forward(request, response);} catch (Exception e) {e.printStackTrace();}}//添加學生private void addUser(HttpServletRequest request, HttpServletResponse response) {String username = request.getParameter("username");String realname = request.getParameter("realname");String pwd = request.getParameter("pwd");String type =request.getParameter("type");User user =new User();user.setUserName(username);user.setRealName(realname);user.setPassword(pwd);user.setType(type);try {User user1=service.selectUserByName(username);if(user1 == null){service.saveUser(user);response.sendRedirect(request.getContextPath()+"/UserServlet?action=userList");}else{request.setAttribute("message", "該學生已存在,不能重復注冊!");response.sendRedirect(request.getContextPath()+"/UserServlet?action=userList");}}catch (Exception e) {e.printStackTrace();}}/*** 去添加頁面* @param request* @param response*/private void toAddUser(HttpServletRequest request, HttpServletResponse response) {try {request.getRequestDispatcher("/WEB-INF/views/user/addUser.jsp").forward(request,response);} catch (Exception e) {e.printStackTrace();}}/*** 修改用戶信息* @param request* @param response*/private void updateUser(HttpServletRequest request, HttpServletResponse response) {String uid = request.getParameter("uid");String username = request.getParameter("username");String realname = request.getParameter("realname");String password = request.getParameter("password");String type = request.getParameter("type");User user =new User();user.setId(Integer.parseInt(uid));user.setUserName(username);user.setRealName(realname);user.setPassword(password);user.setType(type);try {service.updateUser(user);response.sendRedirect(request.getContextPath()+"/UserServlet?action=userList");} catch (Exception e) {e.printStackTrace();}}/*** 去修改頁面* @param request* @param response*/private void toUpdateUser(HttpServletRequest request, HttpServletResponse response) {String id = request.getParameter("id");User user = service.selectUserById(id);request.getSession().setAttribute("user", user);try {request.getRequestDispatcher("/WEB-INF/views/user/toupdateUser.jsp").forward(request,response);} catch (Exception e) {e.printStackTrace();}}//刪除用戶private void deleteUser(HttpServletRequest request, HttpServletResponse response) {String id = request.getParameter("id");try {service.deleteUser(id);response.sendRedirect(request.getContextPath()+"/UserServlet?action=userList");} catch (Exception e) {e.printStackTrace();}}private void sjStudent(HttpServletRequest request, HttpServletResponse response) {try { List<User> newList = new ArrayList<User>();List<User> list=service.userList();Random r = new Random();// 通過對象方法獲取隨機數int data = r.nextInt(list.size()); System.out.println("隨機數是 :"+data);newList.add(list.get(data));request.setAttribute("list" ,newList);request.getRequestDispatcher("/WEB-INF/views/user/userList.jsp").forward(request, response);} catch (Exception e) {e.printStackTrace();}}private void userList(HttpServletRequest request, HttpServletResponse response) {try { List<User> list=service.userList();request.setAttribute("list" ,list);request.getRequestDispatcher("/WEB-INF/views/user/userList.jsp").forward(request, response);} catch (Exception e) {e.printStackTrace();}}/*** 去注冊頁面* @param request* @param response*/private void toRegister(HttpServletRequest request, HttpServletResponse response) {try {request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);} catch (Exception e) {e.printStackTrace();}}private void welcome(HttpServletRequest request,HttpServletResponse response) {try {request.getRequestDispatcher("/WEB-INF/views/console.jsp").forward(request,response);} catch (Exception e) {e.printStackTrace();}}private void LoginOutAct(HttpServletRequest request,HttpServletResponse response) {try {request.getSession().removeAttribute("user");response.sendRedirect(request.getContextPath()+"/UserServlet?action=toLogin");} catch (Exception e) {e.printStackTrace();}}private void removeAll(HttpServletRequest request,HttpServletResponse response) {request.getSession().removeAttribute("user");}private void toLogin(HttpServletRequest request,HttpServletResponse response) {try {request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);}catch(Exception e){e.printStackTrace();} return;}}3.2UserService.java
業務邏輯層,定義了所有的方法。
package com.sign.service;import java.util.List;import com.sign.entity.User;public interface UserService {User selectUser(String userName, String password, String type);List<User> userList();void saveUser(User user);User selectUserByName(String userName);void deleteUser(String id);}3.3UserServiceImpl.java
繼承接口,實現方法,并去調用對應的數據訪問層的方法。
package com.sign.service.impl;import java.util.List;import com.sign.dao.UserDao; import com.sign.entity.User; import com.sign.service.UserService;public class UserServiceImpl implements UserService{private UserDao dao = new UserDao();@Overridepublic List<User> selectUserList(String userName) {return dao.selectUserList(userName);}@Overridepublic void deleteUser(String id) {dao.deleteUser(id);;}@Overridepublic User selectUser(String userName, String password, String type) {return dao.selectUser(userName,password,type);}@Overridepublic List<User> userList() {return dao.userList();}@Overridepublic User selectUserByName(String userName) {return dao.selectUserByName(userName);}}3.4UserDao.java
package com.sign.dao;import java.util.ArrayList; import java.util.List;import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler;import com.sign.entity.Record; import com.sign.entity.User; import com.sign.utils.C3p0Utils;public class UserDao {private QueryRunner runner=new QueryRunner(C3p0Utils.getDs());public List<User> selectUserList(String name) {String sql="select * from user where 1 = 1";List<User> list=null;List<String> list1 = new ArrayList<String>();Object[] params = {};if (name != null && !name.equals("")) {sql += " and realName like ? ";list1.add("%" + name + "%");}if(list1.size() > 0){params = list1.toArray();}sql += " order by id desc ";try {list=runner.query(sql, params, new BeanListHandler<User>(User.class));} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}return list;}public void updateUser(User user) {try {runner.update("update user set userName=?,realName=?,password=?,type=? where id =?",user.getUserName(),user.getRealName(),user.getPassword(),user.getType(),user.getId());} catch (Exception e) {throw new RuntimeException(e);}}public void deleteUser(String id) {Integer ids = Integer.parseInt(id);try {runner.update("delete from user where id=?",ids);} catch (Exception e) {throw new RuntimeException(e);}}public void saveUser(User user) {try {runner.update("insert into user (username,realname,password,type) values (?,?,?,?)",user.getUserName(),user.getRealName(),user.getPassword(),user.getType());} catch (Exception e) {throw new RuntimeException(e);} }public User selectUser(String userName, String password, String type) {try {//返回查詢的信息return runner.query("select * from user where userName =? and password=? and type =? ", new BeanHandler<User>(User.class),userName,password,type);} catch (Exception e) {throw new RuntimeException(e);//拋出運行異常}} }4.數據庫設計
【原創】Jsp+Servlet學生簽到打卡系統(JavaWeb課程作業)
總結
以上是生活随笔為你收集整理的Java Web ——基于Jsp+Servlet的学生上课签到打卡系统/上课考勤管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ovito :qt.qpa.plugin
- 下一篇: 【学生考勤管理系统】 学生考勤打卡系统