JSP实现简单的登录和注册

JSP实现登录和注册(Map集合模拟数据库)

      • 1、login.jsp
      • 2、 loginSelect.jsp
      • 3、register.jsp
      • 4、 RegisterSelect.jsp
      • 5、 index.jsp

1、login.jsp

在这里插入图片描述

  • login.jsp中usernamepassword在LoginSelect.jsp验证是否一致
  • 使用session.setAttribute("login_msg","用户名或密码为空")设置login_msg的值
  • 使用session.getAttribute("login_msg")获取对象的值,判断输入框是否为空,如果为空,则提示用户名或密码为空。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录界面</title>
</head>
<body><div align="center"><h1>欢迎登录</h1><form action="LoginSelect.jsp" method="post" id="form"><p>用户名:&nbsp<input id="username" name="username" type="text">&nbsp&nbsp</p><p>密码:&nbsp<input id="password" name="password" type="password"></p><input type="submit" class="button" value="登录" onclick=""><button><a href="register.jsp">注册</a></button></form><div id="errorMsg" value="null"><%=session.getAttribute("login_msg")%></div>
</div><script>if(document.getElementById("errorMsg").innerText==="null"||document.getElementById("errorMsg").innerText===""){document.getElementById("errorMsg").setAttribute('style',"display:none")} else {document.getElementById("errorMsg").setAttribute('style',"display:block")}
</script></body>
</html>

2、 loginSelect.jsp

  • 利用Map集合存储账户和密码信息,模拟数据库
  • map.put("20201234","123456")设置初始数据
  • map.put(username,session.getAttribute(username).toString())这里是将注册的账户和密码添加到数据库中,username为键,session.getAttribute(username).toString()为值,两者都为字符串类型
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>判断登录界面</title>
</head>
<body><%!Map<String,String> map = new HashMap<String,String>();public boolean compare(String username,String password){String pwd = map.get(username);if(pwd!=null&&password.equals(pwd)){return true;}else{return false;}}
%>
<%String username = request.getParameter("username");String password = request.getParameter("password");//设置初始值map.put("20201234","123456");//注册后的值存入map集合if (session.getAttribute(username)!=null){map.put(username,session.getAttribute(username).toString());}System.out.println(map);//判断输入内容是否正确,给出提示信息if (username==null||username =="" || password==null || password==""){session.setAttribute("login_msg","用户名或密码为空");response.sendRedirect("login.jsp");return;}boolean compare = compare(username, password);if (compare){session.setAttribute("username",username);session.setAttribute("password",password);response.sendRedirect("index.jsp");}else {session.setAttribute("login_msg","用户名或密码错误或用户名不存在");response.sendRedirect("login.jsp");}
%>
</body>
</html>

3、register.jsp

在这里插入图片描述

  • register.jsp中usernamepassword在RegisterSelect.jsp验证是否一致
  • 使用session.setAttribute("register_msg","用户名或密码为空")设置register_msg的值
  • 使用session.getAttribute("register_msg")获取对象的值,判断输入框是否为空,如果为空,则提示用户名或密码为空。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注册界面</title>
</head><div align="center"><h1>欢迎注册</h1><form action="RegisterSelect.jsp" method="post"><table><tr><td>用户名</td><td><input name="username" type="text" id="username"><br></td></tr><tr><td>密码</td><td><input name="password" type="password" id="password"><br></td></tr></table><input value="注 册" type="submit" id="reg_btn"><br><span>已有帐号?</span> <a href="login.jsp">登录</a></form><span id="register_msg" class="err_msg" ><%=session.getAttribute("register_msg")%></span></div>
</body>
</div>
<script>if(document.getElementById("register_msg").innerText==="null"||document.getElementById("register_msg").innerText===""){document.getElementById("register_msg").setAttribute('style',"display:none")} else {document.getElementById("register_msg").setAttribute('style',"display:block")}
</script>
</html>

4、 RegisterSelect.jsp

  • if else语句,if 判断账户或密码为空则提示"用户或密码为空"else 使用session.setAttribute(username,password) 创建对象存储新的账户和密码信息。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%String username = request.getParameter("username");String password = request.getParameter("password");session.setAttribute("register_msg","null");if (username==null||username =="" || password==null || password==""){session.setAttribute("register_msg","用户名或密码为空");response.sendRedirect("register.jsp");return;}else {session.setAttribute(username,password);response.sendRedirect("login.jsp");}
%>
<html>
<head><title>Title</title>
</head>
<body></body>
</html>

5、 index.jsp

在这里插入图片描述

  • session.getAttribute("username")动态获取账户名称
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录成功</title>
</head>
<body>
<div align="center"><h1>JSP管理系统</h1>
<h1><%=session.getAttribute("username")%> 欢迎您!</h1>
<a href="login.jsp">退出登录</a>
</div>
</body>
</html>

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

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

相关文章

【RHCE】dns实验0707

题目&#xff1a; 做法: 1.创建两个虚拟机 张三&#xff1a;且有加密 李四&#xff1a; 设置zhangsan/lisi对应的html网页 主服务器测试&#xff1a; 证书验证 2.配置dns 主服务器&#xff1a; 区域文件&#xff08;zs/lisi&#xff09; 从服务器&#xff1a; 且dns为主服务…

OZON生活家居用品爆款新品

OZON生活家居用品爆款新品涵盖了多个方面&#xff0c;这些产品不仅满足了消费者对生活品质的追求&#xff0c;也反映了当前市场的热门趋势。以下是一些在OZON平台上备受关注的生活家居用品爆款新品&#xff1a; OZON生活家居用品爆款新品工具&#xff1a;D。DDqbt。COm/74rD T…

Midway Serverless 发布 2

可以看看优化后的开发情况&#xff0c;不仅和应用一样&#xff0c;速度还比较快&#xff0c;也不会生成临时目录&#xff0c;修改实时生效。 这是 v2.0 和 v1.0 的根本性变化&#xff0c;也是整体架构升级带来的巨大优势。 当然&#xff0c;这一块并不是功能的新增&#xff0c…

电脑清理c盘内存空间怎么清理免费 怎么清理c盘的垃圾文件又不删除有用文件

在计算机使用过程中&#xff0c;随着时间的推移&#xff0c;C盘空间可能会被各种临时文件、缓存和无用的注册表项占用。这不仅会导致C盘空间不足&#xff0c;还可能影响计算机的性能。那么怎么样清理C盘内存空间&#xff0c;怎么样清理C盘的垃圾避开系统文件呢&#xff1f; 一…

数据分析案例-2024 年全电动汽车数据集可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Navicat BI 教程 | 图表设计和仪表板

商业智能&#xff08;Business Intelligence&#xff0c;BI&#xff09;是将数据转化为可操作的洞察力的实践&#xff0c;使组织能够简化生产力和实现更好的整体绩效。本博客最近介绍了新的 Navicat BI&#xff0c;这是一个帮助 BI 专业人员通过创建数据可视化&#xff08;如图…

侯捷C++面向对象高级编程(上)-11-虚函数与多态

1.虚函数 2.virtual 3.继承&#xff0b;复合关系下的构造和析构 4.委托&#xff0b;继承

C语言 | Leetcode C语言题解之第221题最大正方形

题目&#xff1a; 题解&#xff1a; int maximalSquare(char** matrix, int matrixSize, int* matrixColSize){int dp[301][301]{0};int wid0;if(matrixSize0&&matrixColSize[0]0){return 0;}for(int i0;i<matrixSize;i){for(int j0;j<matrixColSize[0];j){if(m…

Docker进入MongoDB

先是命令行开启docker镜像&#xff0c;然后进入docker镜像&#xff0c;这是两步 进入之后&#xff0c;开头会变成root&#xff0c;我的理解是进入了另一个linux系统了&#xff0c;直接执行相应的软件 这里直接use databse就是进入了&#xff0c;据说MongoDB是慢启动&#xff0c…

MMGPL: 多模态医学数据分析与图提示学习| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 MMGPL: Multimodal Medical Data Analysis with Graph Prompt Learning MMGPL: 多模态医学数据分析与图提示学习 01 文献速递介绍 神经学障碍&#xff0c;包括自闭症谱系障碍&#xff08;ASD&#xff09;&#xff08;Lord等&#xff0c;2018年&#xff09;和阿…

开发个人Go-ChatGPT–6 OpenUI

开发个人Go-ChatGPT–6 OpenUI Open-webui Open WebUI 是一种可扩展、功能丰富且用户友好的自托管 WebUI&#xff0c;旨在完全离线运行。它支持各种 LLM 运行器&#xff0c;包括 Ollama 和 OpenAI 兼容的 API。 功能 由于总所周知的原由&#xff0c;OpenAI 的接口需要密钥才…

Elasticsearch详细介绍

B站对应视频&#xff1a; Elasticsearch01-01.为什么学习elasticsearch_哔哩哔哩_bilibili 大多数日常项目&#xff0c;搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的&#xff0c;存在很多问题。 首先&#xff0c;查询效率较低。 由于数据…

数据结构 Java DS——链表部分经典题目 (1)

前言 笔者计划在暑假啃完JavaDS,Mysql的内容当然也会继续更 这次给读者们分享的是链表的几个比较典型的题目,关于如何手搓一个链表,笔者还在筹划中, 毕竟链表的种类也有那么多,但是在下面的题目中,只有单向链表 题目一 : 反转链表 206. 反转链表 - 力扣&#xff08;LeetCode…

什么是 VueQuill(前端的富文本编辑器)?

什么是 VueQuill&#xff1f; 1. 简介 VueQuill 是 Vue.js 的一个富文本编辑器插件&#xff0c;它基于 Quill 编辑器构建&#xff0c;提供了简洁且功能强大的富文本编辑功能。Quill 是一个现代化的富文本编辑器&#xff0c;提供丰富的文本编辑能力&#xff0c;支持多种格式和…

RockYou2024 发布史上最大密码凭证

参与 CTF 的每个人都至少使用过一次臭名昭著的rockyou.txt单词表&#xff0c;主要是为了执行密码破解活动。 该文件是一份包含1400 万个唯一密码的列表。 源自 2009 年的 RockYou 黑客攻击&#xff0c;创造了计算机安全历史。 多年来&#xff0c;“rockyou 系列”不断发展。…

爬虫怎么实现抓取的

1.4爬虫工程师常用的库通过图1-3我们了解到&#xff0c;爬虫程序的完整链条包括整理需求、分析目标、发出网络请求、文本解析、数据入库和数据出库。其中与代码紧密相关的有&#xff1a;发出网络请求、文本解析、数据入库和数据出库&#xff0c;接下来我们将学习不同阶段中爬虫…

Java反射与Fastjson的危险反序列化

什么是Java反射&#xff1f; 在前文中&#xff0c;我们有一行代码 Computer macBookPro JSON.parseObject(preReceive,Computer.class); 这行代码是什么意思呢&#xff1f;看起来好像就是我们声明了一个名为 macBookPro 的 Computer 类&#xff0c;它由 fastjson 的 parseObje…

《梦醒蝶飞:释放Excel函数与公式的力量》10.2 COMPLEX函数

第二节 10.2 COMPLEX函数 10.2.1函数简介 COMPLEX函数是Excel中的一个工程函数&#xff0c;用于将实部和虚部组合成一个复数。复数广泛应用于工程、电气、物理等领域&#xff0c;COMPLEX函数提供了方便的复数表示和计算方法。 10.2.2语法&#xff1a; COMPLEX(real_num, i_…

【LabVIEW学习篇 - 5】:数据类型——数值、字符串

文章目录 数值枚举下拉列表控件 字符串字符串与十六进制截取字符串连接字符串 字符串与数值间的转换字符串转为数值数值转为字符串 数值 如下图所示&#xff0c;各种数值型数据的不同之处在于存储和表示数据时所使用的位置不同。 浮点型 整型 在LabVIEW中&#xff0c;想要改…

JavaScript中的LHS和RHS

LHS和RHS之前我们先来回忆一下最简单的赋值操作! var test100; console.log(test); 以上代码的意思简单我们理解为把右边的值赋值给左边的test变量,然后输出打印结果。 可是我们要是深入理解你就会发现在这个过程当中&#xff0c;还发生了一些其他的事情 而这些事情就是今天…