ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JSP+Servlet方式实现用户登录功能

2023-11-02 10:25:35  阅读:195  来源: 互联网

标签:


要使用 JSP+Servlet 实现用户登录功能,你可以按照以下步骤进行操作:

  1. 创建一个登录表单的 JSP 页面,用于用户输入用户名和密码,并提交表单到 Servlet 进行处理。在表单中,你可以使用 <form> 标签设置提交到 Servlet 的 URL,并使用 <input> 标签创建用户名和密码的输入框。

  2. 创建一个 Servlet 类,用于接收登录请求并处理用户输入的用户名和密码。在 Servlet 的 doPost() 方法中,你可以使用 request.getParameter() 方法获取用户输入的用户名和密码,并将其与数据库中存储的用户信息进行比对。

  3. 在 Servlet 中,你可以使用 JDBC 或其他数据访问技术来连接数据库,并执行查询操作验证用户信息。如果用户名和密码验证通过,则可以将用户信息存储在会话(Session)中,并重定向到登录成功的页面;否则,返回登录页面,并显示错误信息。

  4. 创建一个登录成功的 JSP 页面,用于展示欢迎用户的内容。你可以在该页面中使用 Java 代码来从会话中获取用户的信息,并展示在页面上。

下面是一个简单的示例代码来演示上述步骤:

login.jsp(用户登录页面):

<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <h2>用户登录</h2>
    <form action="LoginServlet" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required><br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required><br><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

HTML

LoginServlet.java:

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            // 建立数据库连接
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/myDB";
            String dbUsername = "root";
            String dbPassword = "password";
            conn = DriverManager.getConnection(url, dbUsername, dbPassword);

            // 执行查询验证用户名和密码
            String sql = "SELECT * FROM users WHERE username=? AND password=?";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, username);
            stmt.setString(2, password);
            rs = stmt.executeQuery();

            if (rs.next()) {
                HttpSession session = request.getSession();
                session.setAttribute("username", rs.getString("username"));
                session.setAttribute("fullname", rs.getString("fullname"));
                response.sendRedirect("welcome.jsp");
            } else {
                request.setAttribute("error", "用户名或密码错误,请重新登录!");
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭数据库连接和相关资源
            try { rs.close(); } catch (Exception e) {}
            try { stmt.close(); } catch (Exception e) {}
            try { conn.close(); } catch (Exception e) {}
        }
    }
}

Java

welcome.jsp(登录成功页面):

<!DOCTYPE html>
<html>
<head>
    <title>欢迎</title>
</head>
<body>
    <h2>欢迎,<%= session.getAttribute("fullname") %>!</h2>
    <p>您已成功登录。</p>
</body>
</html>

HTML

icode9在以上示例代码中,你需要根据自己的数据库设置和表结构进行相应的修改,并注意安全性问题,比如使用预编译语句(Prepared Statement)防止 SQL 注入等。此外,你还可以添加其他功能,如密码加密、记住密码等,以满足具体需求。

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有