使用JSP完成用户登录

本文我们将创建一个JSP的用户登录示例,本文使用MySQL5.7作为数据库。

1 下载mysql驱动包

下载mysql驱动包

2 创建表和准备数据

在MySQL的test数据库中创建t_user表:

CREATE TABLE `t_user` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `username` varchar(50) DEFAULT NULL,
   `password` varchar(50) DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入一些测试数据,待会登录使用:

3 编写登录页面

编写login.jsp,用于用户登录:

<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<html>
<head>
    <meta charset="utf-8">
    <title>一点教程网-使用JSP完成用户登录</title>
</head>
<body>

<h1>使用JSP完成用户登录</h1>
<form action="loginprocess.jsp" method="post">
    用户名:<input type="text" name="username"/><br/><br/>
    密码:<input type="password" name="password"/><br/><br/>
    <input type="submit" value="登录"/>
</form>

</body>
</html>

4 编写登录处理逻辑

loginprocess.jsp 用于处理登录逻辑:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="com.yiidian.dao.UserDao"%>
<html>
<head>
    <title>一点教程网-使用JSP完成用户登录</title>
</head>
<body>

<jsp:useBean id="user" class="com.yiidian.domain.User"/>
<jsp:setProperty property="*" name="user"/>

<%
    boolean status=UserDao.login(user);
    if(status){
        out.println("你已经成功登录啦");
        session.setAttribute("session","TRUE");
    }
    else
    {
        out.print("抱歉,用户名或密码输入有误");
%>
<%
    }
%>

</body>
</html>

5 编写User实体

User.java 用于封装登录表单数据

package com.yiidian.domain;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class User {
   private String username;
   private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

6 编写UserDao

UserDao 提供login登录验证方法

package com.yiidian.dao;

import com.yiidian.domain.User;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class UserDao {

    public static Connection getConnection(){
        Connection con=null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con= DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
        }catch(Exception e){System.out.println(e);}
        return con;
    }

    public static boolean login(User user){
        boolean status=false;
        try{
            Connection con=getConnection();

            PreparedStatement ps=con.prepareStatement(
                    "select * from t_user where username=? and password=?");

            ps.setString(1,user.getUsername());
            ps.setString(2,user.getPassword());

            ResultSet rs=ps.executeQuery();
            status=rs.next();

        }catch(Exception e){

        }
        return status;

    }


}

7 运行测试

密码输入错误的情况

密码输入正确的情况

推荐好课