社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
CREATE TABLE `tb1` (
`id` int(11) DEFAULT '0'
`username` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
servlet
jsp
mysql
jstl
el
在pom.xml文件中添加相应的Jar包依赖:
网址:Maven Reponsitory
3.使用jdbc连接数据库
创建相应的类:Dbmanager
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 获取数据库的连接,并且执行CRUD
*/
public class DbManager {
private String driver = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String password = "p18392501634";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
public Connection getConnection() {
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, username, password);
System.out.println("success");
return connection;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
/**
* 我们将数据库操作分为两类
* 1.查询操作,结果返回ResultSet
* 2.添加,删除,更新操作,结果返回int
*/
public ResultSet queryMethod(String sql) {
try {
connection = this.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
return resultSet;
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet;
}
public int nonQueryMethod(String sql) {
int flag = 0;
try {
connection = this.getConnection();
statement = connection.createStatement();
flag = statement.executeUpdate(sql);
return flag;
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public void closeResources() {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
4.完成对应的jsp登陆页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="LoginServlet" method="post">
username:<input type="test" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
public class User {
private int id;
private String userName;
private String passWord;
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + ''' +
", password='" + passWord + ''' +
'}';
}
}
package com.jerome.servlet;
import com.jerome.entity.User;
import com.jerome.service.UserServiceImpl;
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 java.io.IOException;
import java.io.PrintWriter;
/*
* 1.获取表单参数
* 2.调用业务逻辑
* 3.转向
* */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(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();
user.setUserName(username);
user.setPassword(password);
//调用业务逻辑
UserServiceImpl userService = new UserServiceImpl();
int flag = userService.checkUserService(user);
/* UserDao userDao = new UserDao();
int flag = userDao.checkUser(user);*/
if (flag == 1) {
//转向
request.setAttribute("userKey", user);//"user"
request.getRequestDispatcher("success.jsp").forward(request, response);
} else {
request.getRequestDispatcher("failure.jsp").forward(request, response);
}
}
}
我们的业务:
访问数据库进行数据对比:
Dao层:
package com.jerome.Dao;
import com.jerome.db.DbManager;
import com.jerome.entity.User;
import java.sql.ResultSet;
public class UserDao {
public int checkUser(User user) {
int flag = 0;
String sql = "select username,password from tb1 where username='" + user.getUserName() +"' and password='"+ user.getPassword() +"'";
try {
DbManager dbManager = new DbManager();
ResultSet resultSet = dbManager.queryMethod(sql);
String username = null;
String password = null;
while (resultSet.next()) {
username = resultSet.getString("username");
password = resultSet.getString("password");
if (username.equals(user.getUserName()) && password.equals(user.getPassword())) {
flag = 1;
return flag;
} else {
flag = 0;
return flag;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
采用mvc(Model模型-View视图-Controller控制器)设计模式:
Service层:
package com.jerome.service;
import com.jerome.entity.User;
public interface IUserService {
public int checkUserService(User user);
}
package com.jerome.service;
import com.jerome.Dao.UserDao;
import com.jerome.entity.User;
public class UserServiceImpl implements IUserService {
private UserDao userDao = new UserDao();
public int checkUserService(User user) {
return userDao.checkUser(user);
}
}
成功页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Congratulation! ${userKey.userName}<%--userName(User中)--%>
</body>
</html>
失败页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Sorry!
</body>
</html>
结果展示:
当密码或者用户名和数据库不匹配时:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!