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

yizhihongxing

要实现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会输出如下的提示消息:

用户名或密码错误。

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

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

相关文章

  • 详解Spring Security如何在权限中使用通配符

    首先,在使用Spring Security进行权限管理时,有时希望通过通配符来进行权限的配置。通配符可以使得权限的配置更为灵活,方便进行管理。 在Spring Security中,可以使用Ant风格的通配符来进行权限的配置。Ant风格的通配符包含两种符号:*和**。其中,*表示任意单词,**表示任意多级目录。 例如,假设我们有以下两个URL需要进行权限配置:…

    Java 2023年6月3日
    00
  • java小程序之控制台字符动画的实现

    下面我将详细讲解“Java小程序之控制台字符动画的实现”的完整攻略,包含以下几个步骤: 1. 准备工作 确保你已经安装并配置好Java开发环境; 选择一种适合你的集成开发环境(IDE),如Eclipse、IntelliJ IDEA等; 创建一个新的Java项目,并定义一个新的类用于实现动画。 2. 实现控制台字符动画 2.1 定义动画字符 首先,我们需要定义…

    Java 2023年5月23日
    00
  • EL表达式的隐式对象_动力节点Java学院整理

    EL表达式的隐式对象是指在JSP页面中可以直接使用的一些对象,不需要通过Scriptlet或JSTL等语法进行声明或使用。EL表达式的隐式对象包括以下几种: pageScope:该隐式对象表示一个HashMap,在JSP页面中通过El表达式可以访问该HashMap中的值。 示例: <% pageContext.setAttribute("na…

    Java 2023年6月15日
    00
  • mybatis xml 中 大于、小于、等于 写法

    在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 方法一:使用xml 原生转义的方式进行转义 字符名称 sql符号 转义字符 大于号 > &gt; 小于号 < &lt; 不等于 <> &lt;&gt; 大于等于号 >= &gt;= 小于…

    Java 2023年4月25日
    00
  • Java IO之包装流详解

    Java IO之包装流详解 Java中的IO(输入输出)操作可以通过流(Stream)的形式进行。流分为节点流和处理流,其中处理流又称为包装流。本文主要介绍Java IO中的包装流,包括作用、示例和常见的包装流。 包装流的作用 包装流是对节点流的装饰,它包裹一个已有的节点流并且拥有同样的类型,但提供了更多的功能。包装流常常用于流的串联,通过多个处理流的组合可…

    Java 2023年5月26日
    00
  • JSP分页显示的实例代码

    JSP分页显示的实例代码需要以下步骤: 1. 准备数据 首先,我们需要准备一些数据,以便在JSP页面中分页显示。可以从数据库中查询相关数据,或者手动设置一些数据。 int pageSize = 5; //每页显示5条数据 int currentPage = 1; //当前页码 List<String> dataList = new ArrayLi…

    Java 2023年6月15日
    00
  • 详解Spring配置事务的五种方式

    详解Spring配置事务的五种方式 1. 编程式事务 编程式事务是一种较为底层的事务管理方式,需要手动编写事务提交和回滚的代码。在Spring中,通过TransactionTemplate来实现编程式事务管理。 使用TransactionTemplate的步骤如下: 定义一个TransactionTemplate对象。 在回调函数中执行需要进行事务管理的代码…

    Java 2023年5月19日
    00
  • MyBatis实现注册及获取Mapper

    Sure,下面是MyBatis实现注册及获取Mapper的完整攻略: REGISTRATION Resources Configuration 在MyBatis中注册Mapper的第一步是添加资源配置,也就是MyBatis的XML配置文件。MyBatis通过解析这些配置文件来构建SqlSession工厂,进而创建SqlSession实例。我们需要创建以下两个…

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