配置好Tomcat,java环境,并部署到idea中。安装好MySQL。
1.首先,在数据库建一个User表,将用户名设置为主键
CREATE TABLE user(
username varchar(20) PRIMARY KEY,
password varchar(20) not null
);
2.在建好的数据库插入几条数据,例如:
3.写一个连接数据库工具类JDBCUtils类
package Utils;
import java.sql.*;
public class JDBCUtils {
//连接数据库方法getConnection()
public Connection getConnection(){
String url="jdbc:mysql://localhost:3306/exam";
String username="root";
String password="123456";
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn= DriverManager.getConnection(url,username,password);
return conn;
} catch (SQLException throwables) {
throwables.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
//查
public ResultSet executeQuery(String sql,Object...params){
Connection conn=this.getConnection();
try {
PreparedStatement pamt=conn.prepareStatement(sql);
//给占位符赋值
if (params!=null && params.length!=0){
for (int i=0;i<params.length;i++){
pamt.setObject(i+1,params[i]);
}
}
ResultSet rs=pamt.executeQuery();
return rs;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}
//增删改
public int executeUpdate(String sql,Object...params){
//连接数据库
Connection conn=this.getConnection();
try {
PreparedStatement pamt=conn.prepareStatement(sql);
//给占位符赋值
if (params!=null && params.length!=0){
for (int i=0;i<params.length;i++){
pamt.setObject(i+1,params[i]);
}
}
int result=pamt.executeUpdate();
return result;
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
return 0;
}
//释放资源
public void close(ResultSet rs){
try {
rs.getStatement().getConnection().close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
4.创建一个实体类User类
package login.entity;
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public User() {
}
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;
}
}
5.创建一个LoginDao类,用于进行查询数据库内容的具体方法,该方法继承JDBCUtils工具类
package login.dao;
import Utils.JDBCUtils;
import register.entity.User;
import java.sql.ResultSet;
import java.sql.SQLException;
public class LoginDao extends JDBCUtils {
public User login(User user){
String sql="select * from user where username=? and password=?";
ResultSet rs=super.executeQuery(sql,user.getUsername(),user.getPassword());
User user1=null;
try {
while (rs.next()){
user1=new User();
user1.setUsername(rs.getString("username"));
user1.setPassword(rs.getString("password"));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return user1;
}
}
6.创建一个登录页面login.jsp,在表单内填写用户名和密码,用post提交到LoginServlet。
<%--
Created by IntelliJ IDEA.
User: Lenovo
Date: 2021/12/18
Time: 21:43
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<form action="/Login" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登录">
</td>
</tr>
</table>
</form>
</body>
</html>
5.创建一个LoginServlet,获取login.jsp页面中的用户名密码,用于验证用户登录。
package login.servlet;
import login.dao.LoginDao;
import register.entity.User;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "LoginServlet", value = "/Login")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out= response.getWriter();
String username=request.getParameter("username");
String password=request.getParameter("password");
User user=new User(username,password);
LoginDao dao=new LoginDao();
User user1=dao.login(user);
if (user1!=null){
out.print("登录成功!");
}else {
out.print("登录失败!");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
登录结果为:
至此,用java语言编写一个简单的用户登录功能就实现了。
大家有什么疑问的请在评论区评论哦,
关注我,后续还会有更多关于java的例子与方法。