JSP实现简单的登录和注册

该文章介绍了一个使用JSP构建的登录和注册系统,通过Map集合模拟数据库存储用户信息,利用session处理用户状态。在login.jsp和register.jsp中收集用户输入,loginSelect.jsp和RegisterSelect.jsp进行验证和数据存储,index.jsp展示登录成功页面。当用户名或密码为空时,系统会给出相应提示。
摘要由CSDN通过智能技术生成

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>
以下是一个简单JSP 登录注册页面的代码示例: 登录页面 login.jsp: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> <h1>登录页面</h1> <form action="login.jsp" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登录"> </form> <br> <a href="register.jsp">没有账号?点击注册</a> </body> </html> ``` 注册页面 register.jsp: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>注册页面</title> </head> <body> <h1>注册页面</h1> <form action="register.jsp" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 确认密码:<input type="password" name="confirmPassword"><br> <input type="submit" value="注册"> </form> <br> <a href="login.jsp">已有账号?点击登录</a> </body> </html> ``` 在服务器端,可以根据不同的请求来处理登录注册逻辑。例如,在 login.jsp 中,可以通过以下方式来处理登录逻辑: ```jsp <% String username = request.getParameter("username"); String password = request.getParameter("password"); // 根据用户名和密码进行验证,验证成功则重定向到主页 if (isValidUser(username, password)) { response.sendRedirect("index.jsp"); } else { // 验证失败,重新返回登录页面并提示错误信息 out.println("用户名或密码不正确"); } %> ``` 在 register.jsp 中,可以通过以下方式来处理注册逻辑: ```jsp <% String username = request.getParameter("username"); String password = request.getParameter("password"); String confirmPassword = request.getParameter("confirmPassword"); // 根据用户名和密码进行注册注册成功则重定向到登录页面 if (registerUser(username, password, confirmPassword)) { response.sendRedirect("login.jsp"); } else { // 注册失败,重新返回注册页面并提示错误信息 out.println("注册失败,请检查输入的信息"); } %> ``` 注意,以上代码示例只是一个简单的演示,实际应用中还需要进行更多的安全性和验证处理。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

"wink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值