JSP实现简单的用户登录并显示出用户信息的方法

要实现JSP用户登录并显示用户信息,需要以下步骤:

1. 建立用户信息表

首先,需要设计一个用于存储用户信息的数据库表,该表应包含至少以下字段:

  • 用户ID
  • 用户名
  • 密码
  • 姓名
  • 电子邮件
  • 手机号码

创建上述字段的数据库表,并插入一些用户的测试数据。

2. 创建JSP登录页面

创建一个JSP登录页面,该页面应包含一个表单,表单中应包含用户名和密码输入框等元素。登录表单的HTML代码如下:

<form method="post" action="login.jsp">
  <div>
    <label for="username">用户名:</label>
    <input type="text" name="username" id="username" required>
  </div>
  <div>
    <label for="password">密码:</label>
    <input type="password" name="password" id="password" required>
  </div>
  <div>
    <button type="submit">登录</button>
  </div>
</form>

3. 处理登录请求

使用JSP来处理登录请求,代码如下:

<%@ page import="java.sql.*"%>

<%
  String username = request.getParameter("username");
  String password = request.getParameter("password");

  String url = "jdbc:mysql://localhost:3306/mydb";
  String driver = "com.mysql.jdbc.Driver";
  String dbUsername = "root";
  String dbPassword = "password";

  Connection conn = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;

  try {
    Class.forName(driver);
    conn = DriverManager.getConnection(url, dbUsername, dbPassword);
    pstmt = conn.prepareStatement("SELECT * FROM users WHERE username = ? AND password = ?");
    pstmt.setString(1, username);
    pstmt.setString(2, password);
    rs = pstmt.executeQuery();

    if (rs.next()) {
      String name = rs.getString("name");
      String email = rs.getString("email");
      String phone = rs.getString("phone");

      session.setAttribute("username", username);
      session.setAttribute("name", name);
      session.setAttribute("email", email);
      session.setAttribute("phone", phone);
      response.sendRedirect("userinfo.jsp");
    } else {
      out.println("用户名或密码错误。");
    }
  } catch (ClassNotFoundException e) {
    e.printStackTrace();
  } catch (SQLException e) {
    e.printStackTrace();
  } finally {
    if (rs != null) {
      try {
        rs.close();
      } catch (SQLException e) {}
    }
    if (pstmt != null) {
      try {
        pstmt.close();
      } catch (SQLException e) {}
    }
    if (conn != null) {
      try {
        conn.close();
      } catch (SQLException e) {}
    }
  }
%>

上述代码中,连接数据库是通过JDBC来实现的。当用户提交登录请求时,代码会连接数据库,查询用户名和密码是否正确。如果用户名和密码正确,代码会将用户信息存储在session中,并重定向到另外一个JSP页面来显示该信息;否则,代码会提示用户“用户名或密码错误”。

4. 显示用户信息

当用户登录成功后,需要在新的JSP页面中显示该用户的信息,代码如下:

<%
  String username = (String) session.getAttribute("username");
  String name = (String) session.getAttribute("name");
  String email = (String) session.getAttribute("email");
  String phone = (String) session.getAttribute("phone");

  out.println("<p>欢迎您," + name + "!以下是您的账户信息:</p>");
  out.println("<ul>");
  out.println("<li>用户名:" + username + "</li>");
  out.println("<li>姓名:" + name + "</li>");
  out.println("<li>电子邮件:" + email + "</li>");
  out.println("<li>手机号码:" + phone + "</li>");
  out.println("</ul>");
%>

如果所有的信息都被正确地保存在session中,那么以上代码会在页面上输出该用户的所有信息。如果某些信息缺失,那么输出的相应字段会为空。

示例说明

以下是两个示例说明,分别是用户登录成功和登录失败的情况。假设该示例的登录用户名是“alice”,密码是“123456”。

  1. 用户登录成功

当用户输入正确的用户名和密码并单击“登录”按钮后,JSP会对输入的用户名和密码进行验证。如果输入的用户名和密码正确,JSP会将用户信息存储在session中,并重定向到“userinfo.jsp”页面来显示该用户的信息。以下是该用户在“userinfo.jsp”页面中看到的信息:

欢迎您,Alice!以下是您的账户信息:

- 用户名:alice
- 姓名:Alice Smith
- 电子邮件:alice@example.com
- 手机号码:(123) 456-7890
  1. 用户登录失败

当用户输入错误的用户名或密码时,JSP会提示用户“用户名或密码错误”。这条消息会以红色字体在登录页面上显示。例如,如果用户输入了错误的密码“123”,JSP会输出如下的提示消息:

用户名或密码错误。
阅读剩余 69%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP实现简单的用户登录并显示出用户信息的方法 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Java中的抽象类是什么?

    抽象类是在Java中用于定义接口的半实现的类。它必须被继承才能被使用,并要求子类实现其抽象方法。在Java中,我们使用 abstract 关键字来声明抽象类。 抽象类本身不能被实例化,需要通过子类来实现。抽象类中可以包含非抽象的方法,这些方法跟普通的类方法一样,同样需要实现。 接下来我们通过两个例子来详细讲解Java中的抽象类。 示例一:定义抽象类 publ…

    Java 2023年4月27日
    00
  • Java ArrayList实现班级信息管理系统

    下面我来详细讲解一下“Java ArrayList实现班级信息管理系统”的完整攻略,包括以下内容: 1. 环境准备 首先需要安装Java开发环境,建议使用JDK 8或更高版本。可以到Oracle官网下载安装。 2. 创建班级类 创建一个班级类,可以定义班级名称、班主任姓名、学生列表等属性和方法。一个简单的班级类的示例代码如下: public class Cl…

    Java 2023年5月24日
    00
  • Java定时调用.ktr文件的示例代码(解决方案)

    下面是“Java定时调用.ktr文件的示例代码(解决方案)”的完整攻略。 背景 在开发过程中,我们可能需要编写ETL任务,通过Pentaho Data Integration工具生成.ktr文件,此时可以使用Java程序来定时调用.ktr文件。 解决方案 为了在Java程序中定时调用.ktr文件,我们可以使用Quartz框架来执行计划任务。 下面是具体的步骤…

    Java 2023年5月31日
    00
  • JSP动态网页开发技术概述

    JSP动态网页开发技术概述 JSP(Java Server Pages,Java服务器页面)是一种基于Java语言开发的动态网页开发技术,它使得开发人员可以使用Java语言编写动态网页,在页面中嵌入Java代码,以及实现动态内容的显示和数据的交互。下面是使用JSP开发动态网页的完整攻略: 一、环境配置 使用JSP开发动态网页需要安装以下软件: JDK:用于编…

    Java 2023年6月15日
    00
  • SpringBoot自定义加载yml实现方式,附源码解读

    首先我们需要了解在SpringBoot中如何读取配置文件。SpringBoot 支持的主配置文件类型有两种: .properties 和 .yml 文件格式。在默认情况下,SpringBoot 会优先读取 .properties 文件,如果同时存在两种格式,.yml 文件会覆盖.properties 文件。 然而,有些时候我们需要动态加载一些配置文件,而这些…

    Java 2023年6月15日
    00
  • 浅谈springboot如何保证多线程安全

    下面是关于“浅谈Spring Boot如何保证多线程安全”的攻略: 1. 了解多线程 要理解多线程安全,我们需要先了解多线程的概念。简单来说,多线程是一种执行多个任务的机制,可以让程序同时完成多项任务,提高程序的运行效率。 但是,多线程也会带来线程安全问题。如果多个线程同时访问同一个资源,就有可能造成数据的混乱或错误。 2. Spring Boot的多线程机…

    Java 2023年5月19日
    00
  • java输入字符串并将每个字符输出的方法

    当我们在Java中输入字符串时,可以使用Scanner类中的next()方法来读取字符串。然后,我们可以使用for循环遍历读取到的字符串,使用charAt()方法获取每个字符并将其输出。 以下是实现这个过程的示例代码: import java.util.Scanner; public class PrintStringCharacters { public …

    Java 2023年5月26日
    00
  • 详解Java中两种分页遍历的使用姿势

    详解Java中两种分页遍历的使用姿势 在 Java 中,分页遍历是非常实用的功能之一,常用于应用中数据分页展示,提高用户体验。本文将介绍 Java 中两种分页遍历的使用姿势,并附上示例说明。 1. 基于MySQL的分页查询 在 MySQL 中,可以使用 LIMIT 关键字实现分页功能。具体使用方式如下: SELECT * FROM table_name LI…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部