jsp 管理员登录界面与登录验证

news2025/5/31 19:21:52

验证分两种情况 ,成功,进入管理员页,可以看信息和删记录

失败,直接给出登录失败,然后重新登录

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%
    //登录
    //将号和密码包为user对象    
    //查user对象是否存在    
    //如果再切换到管理页
    //如果不再继续返回login.jsp页    
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="dologin.jsp" method="post">
	用户名:<input type="text" name="uname" required="required" size="20" value="">
	<br>
	密&nbsp;&nbsp;&nbsp;码:<input type="password" name="upwd" required="required" size="20">
	<br>
	<input type="submit" />&nbsp;&nbsp;&nbsp;&nbsp;
	<input type="reset" />
</form>

</body>
</html>

dologin.jsp

<%@page import="org.apache.tomcat.dbcp.dbcp2.PStmtKey"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@ page import="
java.util.Date,
java.io.IOException,
java.io.PrintWriter,
java.sql.*
" %>

<%@ page import="src.User"
     %>
     
<%
//将传过来的信息 包在值类里
User you=new User();//登录的人的信息包装成对象
you.setName(request.getParameter("uname"));
you.setPwd(request.getParameter("upwd"));
%>
     
<%
 //1.导入jar包
 //2.注册驱动
 //Class.forName("com.mysql.jdbc.Driver");
 Class.forName("com.mysql.cj.jdbc.Driver");

 //3.获取连接
 Connection con = DriverManager.getConnection("jdbc:mysql://mysql.sqlpub.com:3306/huangjin","laocooon","fc12f7a5215e8e0a");

 //4.获取执行者对象
 String sql = "SELECT * FROM adminuser WHERE uname = ?";
 
 PreparedStatement pstmt = con.prepareStatement(sql);
 
 pstmt.setString(1, you.getName());//给第一个参数为用户名
 
 //5.执行sql语句,并且接收结果 
 ResultSet rs = pstmt.executeQuery();
 
 User fUser= new User();
 //6.遍历记录集
 while(rs.next()){
	 fUser.setId(rs.getInt(1));
	 fUser.setName(rs.getString(2));
	 fUser.setPwd(rs.getString(3));
 }
 
 
 // 7 各种关闭
 rs.close();
 pstmt.close();
 con.close();
 
 //找到用户名,现在分析密码对不对
 if(fUser.getPwd().equals(you.getPwd())){
	//由于 此信息需要整体网站需要,所以使用session处理
	 session.setAttribute("adminuser",fUser);
	 
	 //如果没有找到记录,说明 fUser的id是0
	 if(fUser.getId()==0)
		 response.sendRedirect("./error.html");
	 else
		 response.sendRedirect("./adminuser.jsp");	 
 }
 else
	 response.sendRedirect("./error.html");
	 
 
 
  






%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>验证登录是否成功</title>
</head>
<body>

</body>
</html>

error.html

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录失败 </title>
<!--
<style type="text/css">
p{
text-align: center;
font-size: 24px;
color:red;
}

</style>
  -->
  
<link href="./css/myCss.css" rel="stylesheet" type="text/css" />
</head>
<body>
<p>登录失败</p> 
<p><a href="./login.jsp">重新登录</a></p>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于51单片机控制恒压供水系统设计

**单片机设计介绍&#xff0c;基于51单片机的篮球计分器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 设计一个基于51单片机控制的恒压供水系统是一个复杂的工程&#xff0c;涉及到硬件设计和软件编程等多个方面。以下是一…

TypeScript编程语言学习,为学习HarmonyOS开发做准备

1. 编程语言 ArkTS是HarmonyOS优选的应用开发语言&#xff0c;它在TypeScript&#xff08;TS&#xff09;的基础上&#xff0c;匹配ArkUI扩展&#xff0c;扩展了声明式UI、状态管理等相应的能力。 JavaScript&#xff08;JS&#xff09;&#xff0c;使用在Web应用开发&#xf…

MacOS qemu运行loongarch linux

本文章参考了 https://github.com/LeisureLinux/bilibili/blob/master/scripts/qemu-busybox.sh#L205 windows qemu安装飞腾Aarch64 Loongarch64 操作系统 亲测_qemu安装arm系统-CSDN博客 https://www.cnblogs.com/missed-forest/p/17667862.html 1. 安装qemu brew instal…

在linux服上部署vue+springboot+nginx项目

一、环境准备 1、安装winscp便于可视化操作linux&#xff1a;winscp安装及关联putty使用_putty.exe没有找到_cherishSpring的博客-CSDN博客 2、安装jdk&#xff1a;linux系统安装jdk-CSDN博客 3、安装mysql&#xff1a;Linux7安装mysql数据库以及navicat远程连接mysql-CSDN博…

opencv知识库:利用cv2.resize()函数进行图像缩放

引言 在numpy知识库&#xff1a;深入理解numpy.resize函数和数组的resize方法中&#xff0c;小编较为详细地探讨了numpy的resize函数背后的机理。从结果来看&#xff0c;numpy.resize函数并不适合对图像进行缩放操作。而opencv中的resize函数虽然和numpy的resize函数同名&…

Hdoop学习笔记(HDP)-Part.19 安装Kafka

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

《功能磁共振多变量模式分析中空间分辨率对解码精度的影响》论文阅读

《The effect of spatial resolution on decoding accuracy in fMRI multivariate pattern analysis》 文章目录 一、简介论文的基本信息摘要 二、论文主要内容语音刺激的解码任务多变量模式分析&#xff08;MVPA&#xff09;K空间 空间分辨率和平滑对MVPA的影响平滑的具体过程…

SpringBoot+SSM项目实战 苍穹外卖(2)

继续上一节的内容&#xff0c;本节完成新增员工、员工分页查询、启用禁用员工账号、编辑员工、导入分类模块功能代码。 目录 新增员工(完整流程分为以下五个部分)需求分析和设计代码开发功能测试代码完善 (ThreadLocal 线程局部变量)代码提交 员工分页查询代码完善 扩展Spring …

【LeetCode刷题笔记】103. 二叉树的锯齿形层序遍历

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

【数据结构】 堆排序与TopK问题详解

在学习完堆的创建后&#xff0c;就轮到了标题的两个问题 这两个问题在实际生活中会有比较强的实际问题解决能力 先分别解释一下 堆排序&#xff1a; 运用堆的思想进行排序&#xff0c;时间复杂度为O(NlogN)TopK&#xff1a; 从一大堆数据中选择K个最大或最小的数据&#xff0c…

oj赛氪练习题

数组调整 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int k scanner.nextInt();int[] arr new int[n];for (int i 0; i < n; i) {arr[i] scanner.nextIn…

充电桩自检流程

1、常规自检流程介绍 充电桩自检流程通常包括以下几个方面&#xff1a; 外观检查&#xff1a;检查充电桩外观是否完好&#xff0c;无损坏、严重污染等问题。连接检查&#xff1a;检查充电桩与电源的连接是否牢固&#xff0c;线缆是否完整无损。安全性检查&#xff1a;检查充电…

750mA Linear Charger with Power Path Management

一、General Description YHM2711 is a highly integrated, single-cell Li-ion battery charger with system power path management for space-limited portable applications. The full charger function features Trickle-charge, constant current fast charge and const…

Upsert 及冲突(GORM)

GORM支持了数据库的upsert操作 upsert操作对于插入一条数据而言的&#xff0c;如果插入数据之前&#xff0c;没有这条数据&#xff0c;则会插入该条数据&#xff1b;如果插入数据之前就存在这条数据&#xff08;索引值&#xff09;&#xff0c;就更新这条记录。 创建结构体 …

tar文件覆盖漏洞 CVE-2007-4559

文章目录 前言原理例题 [NSSRound#7 Team]新的博客方法一 手搓文件名方法二 python脚本 前言 做到[NSSRound#6 Team]check(Revenge)时发现是tar文件覆盖&#xff0c;但是对概念和执行过程理解不够深就光光记住脚本&#xff0c;所以在做本题[NSSRound#7 Team]新的博客时打算重新…

Linux中的文件IO

文章目录 C语言文件操作系统文件I/O接口介绍 open函数返回值文件描述符fd0 & 1 & 2文件描述符的分配规则 重定向使用 dup2 系统调用 FILE理解文件系统理解硬链接软链接acm 动态库和静态库静态库与动态库生成静态库生成动态库&#xff1a; C语言文件操作 先来段代码回顾…

DouyinAPI接口系列丨Douyin商品详情数据接口丨Douyin视频详情数据接口

抖音商品详情API是抖音开放平台提供的一套API接口&#xff0c;用于获取商品详情信息。通过该API&#xff0c;开发者可以获取到商品的详细信息&#xff0c;包括商品ID、名称、描述、价格、销量、评价等信息。 在使用抖音商品详情API之前&#xff0c;需要先注册并登录抖音开放平…

【Linux】基本指令(上篇)

这里是目录 前言ls指令pwd指令mkdir指令&#xff08;重要&#xff09;tree指令cd指令结合 touch指令rmdir指令&#xff08;重要&#xff09;rm指令&#xff08;重要&#xff09;*通配符man指令&#xff08;重要&#xff09;echo指令cat指令cp指令&#xff08;重要&#xff09;拷…

Linux系统之部署Plik临时文件上传系统

Linux系统之部署Plik临时文件上传系统 一、Plik介绍1.1 Plik简介1.2 Plik特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、下载Plik软件包4.1 创建下载目录4.2 下载Plik软件包4.3 查看下载的Plik软件…

<JavaEE> volatile关键字 -- 保证内存可见性、禁止指令重排序

目录 一、内存可见性 1.1 Java内存模型(JMM) 1.2 内存可见性演示 二、指令重排序 三、关键字 volatile 一、内存可见性 1.1 Java内存模型(JMM) 1&#xff09;什么是Java内存模型&#xff08;JMM&#xff09;&#xff1f;Java内存模型即Java Memory Model&#xff0c;简…