使用JSP完成用户登录
本文我们将创建一个JSP的用户登录示例,本文使用MySQL5.7作为数据库。
1 下载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 运行测试
密码输入错误的情况
密码输入正确的情况
热门文章
优秀文章