用户名,密码登录

article/2025/10/27 19:59:35

1.导入项目需要的依赖,分层

注意:如果你的数据库是5.5的版本,依赖要用低版本的,高版本不稳定,新增的内容不识别,会报各种各样奇葩的错误

  

2.创建实体类

它的属性要和数据库字段对应

package com.oa.entity;public class UserInfo {private int id;private String user_name;private String user_password;private String user_sex;private String user_department;private String user_role;private String create_date;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public String getUser_password() {return user_password;}public void setUser_password(String user_password) {this.user_password = user_password;}public String getUser_sex() {return user_sex;}public void setUser_sex(String user_sex) {this.user_sex = user_sex;}public String getUser_department() {return user_department;}public void setUser_department(String user_department) {this.user_department = user_department;}public String getUser_role() {return user_role;}public void setUser_role(String user_role) {this.user_role = user_role;}public String getCreate_date() {return create_date;}public void setCreate_date(String create_date) {this.create_date = create_date;}public UserInfo() {super();// TODO Auto-generated constructor stub}}

3.DAO层

接口,要声明实体类的方法(抽象方法)

package com.oa.dao;import com.oa.entity.UserInfo;public interface UserDao {public UserInfo login(UserInfo user);
}

4.DAOImpl层

是DAO层接口的实现类,写具体的的功能实现

package com.oa.daoImpl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.oa.dao.UserDao;
import com.oa.entity.UserInfo;
import com.oa.tool.*;public class UserDaoImpl implements UserDao {@Overridepublic UserInfo login(UserInfo user) {Connection con =null;PreparedStatement ps =null;ResultSet rs=null;UserInfo users=new UserInfo();try{//1.连接数据库con=C3p0Util.getConnection();System.out.print(con);//测试数据库是否连接成功//2.查询语句String sql ="select * from t_user where user_name =? and user_password=?";ps=con.prepareStatement(sql);//预编译//3.给问号处设置值ps.setString(1, user.getUser_name());ps.setString(2, user.getUser_password());//4.执行查询语句rs=ps.executeQuery();if(rs.next()){//5.从数据库中获取值,设置到实体类的setter方法中users.setUser_name(rs.getString("user_name"));users.setUser_password(rs.getString("user_password"));System.out.print(users+"sssssssssssssssssssssss");//测试数据}}catch(Exception e){e.printStackTrace();}
//6.将实体类返回,以便service层接收return users;}}

4.Service层

用于联系数据库和Servlet,接收DAO层传来的返回值,Servlet调用service层获取

package com.oa.service;
import com.oa.entity.UserInfo;public interface UserService {public UserInfo login(UserInfo user);
}

5.serviceImpl层

返回实体类

package com.oa.serviceImpl;import com.oa.dao.UserDao;
import com.oa.daoImpl.UserDaoImpl;
import com.oa.entity.UserInfo;
import com.oa.service.UserService;public class  UserServiceImpl implements UserService {//调用dao层private UserDao userdao =new UserDaoImpl();@Overridepublic UserInfo login(UserInfo user) {// TODO Auto-generated method stubreturn userdao.login(user);}}

6.Servlet

连接界面和服务层的

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {UserInfo user =new UserInfo();//获取Login.html输入的用户名和密码String name=request.getParameter("users.userName");String password=request.getParameter("users.userPassword");//测试数据System.out.print("name:"+name+"password"+password);//将输入的数据设置到实体类中user.setUser_name(name);user.setUser_password(password);//引入数据交互层UserDao dao = new UserDaoImpl();UserInfo us=dao.login(user);//测试返回的值System.out.println(us+"hhhhhhhhhhhhhhhhhhhhhhhhhh");//设置日期Date date =new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String str = sdf.format(date);Calendar cal=Calendar.getInstance();      int h=cal.get(Calendar.HOUR_OF_DAY);      int mi=cal.get(Calendar.MINUTE);     String str1=h+":"+mi;HttpSession session =request.getSession();session.setAttribute("showdate", str);session.setAttribute("showtime", str1);session.setAttribute("showname", name);session.setAttribute("showpassword", password);if(us!=null){request.setAttribute("info", "登陆成功");request.getRequestDispatcher("mainframe.jsp").forward(request, response);}else{request.setAttribute("info", "登录失败");request.getRequestDispatcher("login.jsp").forward(request, response);}}

7.JSP显示界面

%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>Office Anywhere 2009 网络智能办公系统</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><link rel="stylesheet"href="styles/style.css" type="text/css;charset=gb2312" /><link rel="stylesheet" type="text/css"href="styles/index.css"><script type="text/javascript"src="js/index.js">
</script></head><body><div class="login_div"><form action="UserLoginServlet" method="post" name="myform" id="form"onSubmit="return check()"><div align="center"><b>用户名</b><input class="text" onMouseOver="this.focus()"onFocus="this.select()" maxlength="20" value=""name="users.userName" />&nbsp;&nbsp;<b>密码</b><input class="text" onMouseOver="this.focus()"onFocus="this.select()" type="password" maxlength="30"name="users.userPassword" />&nbsp;&nbsp;<input name="submit" type="submit" class="newButton" value=" 登 录 " /></div></form></div></body>
</html>

其他:用到数据库连接池C3p0工具类,过滤器是我用来处理编码的,可以不用


http://chatgpt.dhexx.cn/article/g9Ix2K1t.shtml

相关文章

实现用户输入用户名和密码登录

题目 实现用户输入用户名和密码登录&#xff0c;当用户名为admin或administrator且密码为666666时&#xff0c;显示“登录成功”&#xff0c;否则显示“登录失败”&#xff0c;登录失败时允许重复输入三次。 实例 参考程序 User1 "admin" User2 "administr…

计算机用户名和初始密码,电脑默认的用户名和密码是多少

优质回答 回答者&#xff1a;止树2018 电脑用户默认是没有密码的&#xff0c;除非你设置了&#xff0c;没有设置的前提下&#xff0c;直接按回车键就可以进系统了。 电脑默认的用户是administrator&#xff0c;如果你创建了自己的新用户名&#xff0c;那么&#xff0c;原始管理…

服务器密码以及用户名怎么修改

服务器密码以及用户名怎么修改 我是艾西&#xff0c;今天给大家说下服务器密码如何修改 windows2003系统&#xff1a; 1、右键我的电脑&#xff0c;点击“管理”&#xff1a; 2、在“本地用户和组”中打开“用户”&#xff0c;在右侧找到 Administrator 账户进行修改。 200…

电脑更改开机密码和用户名

一、电脑更改开机密码 1、快捷键CtrlAltDel出现以下界面。 2、点击“更改密码”&#xff0c;出现修改密码的界面&#xff0c;输入旧的密码&#xff0c;以及新的密码&#xff0c;确定即可。 二、电脑更改开机用户名 1、打开电脑的”控制面板“。 2、在控制面板中点击“用户帐户…

基于51单片机的呼吸灯程序编写

利用51单片机编写的呼吸灯小程序&#xff0c;实验程序内容截图分享~

六、Arduino呼吸灯的实现

实验所需材料 Arduino UNO面包板LED灯一个330Ω电阻一个 连接示意图 如图所示&#xff0c;实验中我们将LED连接到了带PWM功能的D9引脚。 可以在 Arduino IDE菜单>文件>示例>03.Analog>Fading 打开呼吸灯示例程序&#xff0c;程序如下&#xff1a; int ledPin 9…

C语言实现呼吸灯(HAL库)

1. 呼吸灯原理 呼吸灯的实现可以通过控制灯的亮度连续变化&#xff0c;当变化的频率大于24帧时&#xff0c;肉眼看上去就会逐渐变暗&#xff0c;逐渐变亮。 2. PWM控制亮度 PWM通过设置亮度在一段时间内的占空比&#xff0c;亮的百分比多&#xff0c;人眼看到的就亮&#xf…

二、15【FPGA】呼吸灯实现

前言 学习说明此文档为本人的学习笔记&#xff0c;注重实践&#xff0c;关于理论部分会给出相应的学习链接。 学习视频&#xff1a;是根据野火FPGA视频教程——第十八讲 https://www.bilibili.com/video/BV1nQ4y1Z7zN?p3 实战演练 一、设计规划 1.1 实验目标 在开发板上…

基于FPGA实践之呼吸灯(含程序)

呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化&#xff0c;感觉好像是人在呼吸。 在单片机中我们调节PWM波的占空比可以实现一个周期内高电平占百分比&#xff0c;这个百分比固定就可以调节亮度&#xff0c;这个百分比是动态的&#xff0c;那么灯的亮度也是动态的&…

Verilog实现呼吸灯效果

呼吸灯的效果采用PWM调波的形式&#xff0c;即快速的改变每个周期的占空比&#xff08;一个周期内高电平时间占一个周期时间的比值&#xff09;来实现点亮到熄灭的效果。示意如下图 而关于整个波形图&#xff0c;用50MHz的晶振&#xff0c;从0开始计数到49则为1us。 而1ms是1u…

呼吸灯

呼吸灯 呼吸灯&#xff0c;就是控制led灯的亮度从弱变强、从强变弱的循环往复&#xff0c;从而实现像呼吸一样的效果。改变电压即可改变led灯的亮度&#xff0c;但是用代码控制led灯两端电压显然是不现实的&#xff0c;我们可以用控制脉冲宽度的方式来控制led灯点亮的时间&…

C51单片机实现呼吸灯

呼吸灯的效果是灯的亮度由暗缓慢变亮再缓慢变暗。 实现思路是改变小灯亮与暗在单位周期的占空比。如下图 具体代码如下&#xff1a; #include<reg52.h> typedef unsigned int u16; typedef unsigned char u8;sbit LEDP2^0; void delay(u16 i) {while(i--); }void ma…

Arduino程序设计(一) 流水灯+呼吸灯

LED灯程序设计 前言一、LED灯的程序设计1 —— 频闪灯二、LED灯的程序设计2 —— 流水灯三、LED灯的程序设计3 —— 呼吸灯总结参考文献 前言 本文主要介绍三种LED灯的程序设计&#xff0c;即频闪灯、流水灯和呼吸灯。本文使用的MCU芯片为ESP8266EX&#xff0c;程序编写使用Ar…

51单片机呼吸灯的实现

1.PWM介绍 PWM&#xff08;Pulse Width Modulation&#xff09;即脉冲宽度调制&#xff08;如电机&#xff1a;转5ms停1ms还是转5ms停2ms&#xff09;&#xff0c;在具有惯性的系统中&#xff0c;可以通过对一系列脉冲的宽度进行调制&#xff0c;来等效地获得所需要的模拟参量…

呼吸灯——FPGA

文章目录 前言一、呼吸灯是什么&#xff1f;1、介绍2、占空比调节示意图 二、系统设计1、系统框图2、RTL视图 三、源码四、效果五、总结六、参考资料 前言 环境&#xff1a; 1、Quartus18.0 2、vscode 3、板子型号&#xff1a;EP4CE6F17C8 要求&#xff1a; 将四个LED灯实现循环…

51单片机——实现呼吸灯程序代码

实现效果如图&#xff1a; 注&#xff1a;该51单片机led灯引脚为P2^ 0 - P2^7,实际代码按照引脚图实现。 代码如下&#xff1a; #include<reg52.h> typedef unsigned int uint; typedef unsigned char uchar; //--------------Delay--------------------void Delay(uin…

单片机开发—呼吸灯的三种实现方法

目录 一、前言1、什么是呼吸灯2、如何实现呼吸灯 二、利用for循环实现呼吸灯三、利用定时器实现呼吸灯1.利用定时器中断实现2.利用定时器输出PWM波实现 四、总结 一、前言 提示&#xff1a;本文使用的芯片并非STM32系列&#xff0c;利用定时器实现呼吸灯是从寄存器层面讲解的&…

【STM32】8.简单呼吸灯的制作教程,附代码、效果视频

目的&#xff1a; 实现呼吸灯。逐渐亮&#xff0c;逐渐灭。 一&#xff0e;呼吸灯原理分析 外设工作靠电流&#xff0c;因此要改变电流大小&#xff0c;所以要动电阻或电压。 电阻&#xff1a;阻值固定&#xff0c;不可更改。 电压&#xff1a;怎么改变电压大小呢&#xff1…

自适应滤波C语言实现

这里写目录标题 原理代码结果 原理 自适应滤波是近年以来发展起来的一种最佳滤波方法。它是在维纳滤波,Kalman滤波等线性滤波基础上发展起来的一种最佳滤波方法。由于它具有更强的适应性和更优的滤波性能。从而在工程实际中,尤其在信息处理技术中得到了广泛的应用。自适应滤波…

c语言实现图像滤波处理

#include<stdio.h> #include<malloc.h> #include<stdlib.h> #include <math.h> /* 位图头结构 */ #pragma pack(1) typedef struct tagBITMAPFILEHEADER {unsigned char bfType[2];//文件格式unsigned long bfSize;//文件大小unsigned short bfReserve…