21xrx.com
2024-09-19 09:58:01 Thursday
登录
文章检索 我的文章 写文章
案例:用户登录验证
2023-06-12 00:35:09 深夜i     --     --
JavaWeb 用户登录验证 HTML表单 JDBC Servlet

在JavaWeb开发中,用户登录验证是一个基本功能。本文将介绍如何进行用户登录验证,并提供相应的代码案例。

首先,我们需要在数据库中创建一个用户表,表结构如下:


CREATE TABLE `user` (

 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

 `username` varchar(255) NOT NULL,

 `password` varchar(255) NOT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

接下来,我们需要编写一个登录页面,代码如下:


   用户登录

  

    

    

    

    

    

  

上面的代码中,我们使用了HTML表单控件来获取用户输入的用户名和密码。其中,`action`属性指定了表单提交时将数据发送到哪个Servlet中进行处理。

下面是登录Servlet的代码:


@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");

    if (verifyUser(username, password)) {

      // 验证通过,跳转到首页

      response.sendRedirect("index.jsp");

    } else {

      // 验证失败,返回登录页面并显示错误消息

      request.setAttribute("errorMsg", "用户名或密码错误");

      request.getRequestDispatcher("login.jsp").forward(request, response);

    }

  }

  private boolean verifyUser(String username, String password) {

    Connection conn = null;

    PreparedStatement stmt = null;

    ResultSet rs = null;

    try {

      conn = getConnection();

      stmt = conn.prepareStatement("SELECT COUNT(*) FROM user WHERE username=? AND password=?");

      stmt.setString(1, username);

      stmt.setString(2, password);

      rs = stmt.executeQuery();

      rs.next();

      int count = rs.getInt(1);

      return count == 1;

    } catch (SQLException e) {

      e.printStackTrace();

    } finally {

      close(conn, stmt, rs);

    }

    return false;

  }

  private Connection getConnection() throws SQLException {

    // 获取数据库连接

    // ...

  }

  private void close(Connection conn, Statement stmt, ResultSet rs) {

    // 关闭数据库连接

    // ...

  }

}

上面的代码中,我们首先获取用户输入的用户名和密码,然后通过`verifyUser()`方法来验证用户登录。如果验证通过,我们使用`response.sendRedirect()`方法来将用户重定向到首页;否则,我们使用`request.getRequestDispatcher()`方法将用户返回到登录页面,并在页面上显示错误消息。

需要注意的是,上面的代码中使用了JDBC来访问数据库,程序中需要引入相应的JDBC驱动,并正确配置数据源。

本文介绍了JavaWeb中用户登录验证的基本实现方式,并提供了相应的代码案例。通过学习本文,读者可以掌握如何使用HTML表单、Servlet和JDBC来完成用户登录验证功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复