考勤打卡系统

news/2024/12/25 15:28:12/文章来源:https://www.cnblogs.com/ytrkkaa/p/18630513

登录界面 分为职员,管理员、部门经理
`<%--
Created by IntelliJ IDEA.
User: 32262
Date: 2024/12/16
Time: 14:08
To change this template use File | Settings | File Templates.
--%>

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

JSP - Hello World
账户:
密码:
<input type="submit" value="登录" class="myButton"><span id="tip">${tip}</span>

package org.example.kaoqin;

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 java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

@WebServlet("/userLogin")
public class Userloginservlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws javax.servlet.ServletException, IOException {
String name = req.getParameter("name");
String password = req.getParameter("password");

    // 获取 HttpSession 对象HttpSession session = req.getSession();try (Connection connection = Database.getConnection();PreparedStatement statement = connection.prepareStatement("SELECT role FROM zhiyuan WHERE name = ? AND password = ?")) {statement.setString(1, name);statement.setString(2, password);ResultSet resultSet = statement.executeQuery();if (resultSet.next()) {// 获取用户身份String role = resultSet.getString("role");// 将用户名和身份存储在 session 中session.setAttribute("name", name);session.setAttribute("role", role);// 根据身份转发到相应的页面if ("zhiyuan".equals(role)) {req.getRequestDispatcher("zhiyuan.jsp").forward(req, resp);} else if ("bumenjingli".equals(role)) {req.getRequestDispatcher("bumenjingli.jsp").forward(req, resp);} else if ("guanliyuan".equals(role)) {req.getRequestDispatcher("guanliyuan.jsp").forward(req, resp);} else {req.setAttribute("tip", "未知用户类型");req.getRequestDispatcher("index.jsp").forward(req, resp);}} else {req.setAttribute("tip", "用户名或密码错误");req.getRequestDispatcher("index.jsp").forward(req, resp);}} catch (SQLException | ClassNotFoundException e) {// 记录日志e.printStackTrace();throw new RuntimeException("数据库操作失败", e);}
}

}
密码重置<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="org.example.kaoqin.Database" %>
<%--
Created by IntelliJ IDEA.
User: 32262
Date: 2024/12/9
Time: 19:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

Title
    <%String jobid = request.getParameter("jobid");try (Connection con = Database.getConnection();Statement st = con.createStatement();ResultSet rs = jobid != null ? st.executeQuery("select * from zhiyuan where jobid = '" + jobid + "'") : st.executeQuery("select * from zhiyuan")) {while (rs.next()) {%><tr><td><%= rs.getString("jobid") %></td><td><%= rs.getString("name") %></td><td><%= rs.getString("sex") %></td><td><%= rs.getString("birthday") %></td><td><%= rs.getString("department") %></td><td><a href="resetpassword.jsp?jobid=<%= rs.getString("jobid") %>">重置密码</a></td></tr><%}} catch (Exception e) {e.printStackTrace();}%></table><a href="guanliyuan.jsp">返回首页</a>
` `<%--Created by IntelliJ IDEA.User: 32262Date: 2024/12/9Time: 19:56To change this template use File | Settings | File Templates. --%> <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.PreparedStatement" %> <%@ page import="org.example.kaoqin.Database" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%String jobid = request.getParameter("jobid");String newPassword = "123456"; // 设置默认密码或从请求中获取新密码
try (Connection connection = Database.getConnection();PreparedStatement statement = connection.prepareStatement("UPDATE zhiyuan SET password = ? WHERE jobid = ?")) {statement.setString(1, newPassword);statement.setString(2, jobid);int rowsAffected = statement.executeUpdate();if (rowsAffected > 0) {System.out.println("<h2>密码重置成功!</h2>");} else {System.out.println("<h2>密码重置失败!</h2>");}
} catch (Exception e) {e.printStackTrace();System.out.println("<h2>发生错误!</h2>");
}

%>
返回查询页面

`

修改密码
`<%--
Created by IntelliJ IDEA.
User: 32262
Date: 2024/12/9
Time: 18:00
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

Title
工号姓名性别生日部门职务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858672.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm2024.3完整的安装教程(附激活,常见问题处理)

卸载老版本 Pycharm 首先,如果小伙伴的电脑上有安装老版本的Pycharm , 需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可): TIP:如果你之前使用过本站提供的 激活到 2025 年版本脚本,需要执行对应卸载脚本 /适用2024版本/JetBrains 2023 最新全家桶/jetbra /…

搭建npm私有仓库——verdaccio

前言Verdaccio 是一个简单的、零配置要求的本地私有 npm 注册表。无需整个数据库即可开始!Verdaccio 开箱即用,带有自己的小型数据库,并且能够代理其他注册表(例如 npmjs.org),并在此过程中缓存下载的模块。对于那些希望扩展其存储功能的人,Verdaccio 支持各种社区制作的…

门店协作的未来:协作文档如何提升客户体验?

汽车销售是一种高竞争、高需求精细化管理的业务形态。门店销售团队不仅需要对接客户,还要实时反馈总部的策略与数据。如果销售流程中协同效率不足,往往会导致商机流失和客户满意度下降。协作文档工具的普及,为车企门店带来了全新解决方案。 车企门店销售面临的核心问题 在车…

功率器件的热设计基础(二)——热阻的串联和并联

功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计基础知识,才能完成精确热设计,提高功率器件的利用率,降低系统成本,并保证系统的可靠性。/ 前言 / 功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计…

视频分析设备平台EasyCVR关于未来监控系统可能会集成哪些新技术?

随着科技的飞速发展,监控系统正经历着一场革命性的变革。未来的监控系统将不再是单一的观察和记录工具,而是集成了多种前沿技术的智能平台,它们将极大地提高安全性、效率和响应速度。以下是未来监控系统可能集成的一些关键技术。1、人工智能技术 1)监控系统将越来越多地应用…

【亲测能用】专业音乐制作软件Ableton Live Suite v12.1.5 中文版(附安装教程)

软件介绍 在数字音频工作站(DAW)的领域中,Ableton Live以其创新和灵活性脱颖而出,成为全球音乐家和制作人的首选工具。由德国Ableton公司精心打造,这款软件不仅支持无缝的音乐播放和即时编辑,还提供了强大的音频效果和虚拟乐器,让音乐创作变得无限可能。 功能亮点 Ablet…

【测试侧】产品场景用例模板

产品的场景法用例设计的测试场景用例模板

宝藏推荐!J 人电商零售圣诞忙,哪 6 款办公软件能提升工作学习效能?

圣诞节的钟声敲响,电商零售行业瞬间陷入紧张而激烈的竞争漩涡。对于 J 人特质主导的电商团队而言,这不仅是一场销售大战,更是对团队协作与个人能力的严峻考验。在这关键时期,高效的办公软件犹如得力助手,能够帮助团队优化工作流程、提升沟通效率,实现工作与学习的双丰收。…

源码编译geoserver(idea)

官方教程:https://docs.geoserver.org/main/en/developer/quickstart/intellij.html从 git 存储库中检出源代码:git clone https://github.com/geoserver/geoserver.git geoserver列出可用的分支:% git branch2.21.x2.22.x* main选择main最新动态:% git checkout main或者为…

MFC中CBitmap、CBrush、CFont、CPalette、CPen、CRgn删除GDI对象问题

CBitmap、CBrush、CFont、CPalette、CPen、CRgn均继承自CGdiObject,CDI对象属于CGdiObject,在该类的析构函数中会释放,因此CBitmap、CBrush、CFont、CPalette、CPen、CRgn不必要显式调用DeleteObject()。如果GDI对象在在堆上分配的,则在特定时刻需要删除它,以便执行其析构…

【甲方安全】政府行业+80个威胁检测与安全事件分析场景(2025)

本篇幅详细梳理了 80 个在政企网络安全分析中常见的应用场景,这些场景涵盖了从攻击前兆(如漏洞扫描、情报收集)、攻击过程(如漏洞利用、横向移动)到攻击结果(如数据加密、信息泄露)的各个阶段,旨在协助 SOC 分析师们更好地构建主动防御体系。这些场景并非抽象概念,而是…

想自己做大模型备案的企业看过来【评估测试题+备案源文件】

大模型备案,大模型语料标注规则,大模型安全评估报告文章目录 (一)适用主体 (二)语料安全 (三)模型安全 (四)安全措施要求 (五)词库要求 (六)安全评估要求 (七)附录大模型备案材料源文件 2024年3月1日,我国通过了《生成式人工智能服务安全基本要求》(以下简称…