功能:利用HttpServlet完成MySql数据库my_user表的登录校验
step1:在porm.xml文件中导jdbc的依赖
mysql数据库输入
sql
SELECT VERSION()
查询当前的数据库版本
maven官网网址;https://mvnrepository.com/
maven官网中搜索:mySQL
并复制依赖粘贴到pom文件中
main函数下java包的class类
java
package com.iweb.demo03;
import org.apache.commons.codec.digest.DigestUtils;
import javax.servlet.RequestDispatcher;
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;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
@WebServlet(value = "/login")
public class Login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
PrintWriter pw = resp.getWriter();
String username = req.getParameter("username");
String password = req.getParameter("password");
password = DigestUtils.md5Hex(password);
String sql = "select count(*) cou from my_user m " +
"where m.username=? and m.password=?";
List<Map<String, Object>> list = null;
try {
list = JDBCUtill.jdbcBySelect(sql, username, password);
} catch (SQLException e) {
throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
Map<String, Object> map = list.get(0);
long cou = (long) map.get("cou");
String path="";
if (cou > 0) {
/* pw.print("欢迎您"+username);//页面跳转*/
/* resp.sendRedirect("/demo03/test5.html");*/
path=req.getContextPath() + "/test5.html";
System.out.println("登录成功");
} else {
path=req.getContextPath()+"/login.html?islogin=0";
}
resp.sendRedirect(path);
}
}
html文件 :
javascript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登陆</title>
<script type="text/javascript">
window.onload = function () {
var urlParams = new URLSearchParams(window.location.search);
var islogin = urlParams.get("islogin")
if (islogin == 0) {
alert("用户名或密码错误")
}
}
</script>
</head>
<body>
<h3>用户登陆</h3>
<form method="post" action="login">
账号<input type="text" name="username">
<br/>
<br/>
密码<input type="text" name="password"/>
<br/>
<br/>
<input type="submit" value="提交"/>
<br/>
</form>
<br/>
</body>
</html>
附录:
JDBC文件:
java
package com.iweb.demo03;//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JDBCUtill {
static Connection conn;
static PreparedStatement pstat;
static ResultSet rest;
public JDBCUtill() {
}
private static void getSource() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://192.168.77.100:3306/mysql?characterEncoding=utf-8", "root", "123456");
}
private static void closeSource() throws SQLException {
if (rest != null) {
rest.close();
}
if (pstat != null) {
pstat.close();
}
if (conn != null) {
conn.close();
}
}
public static List<Map<String, Object>> jdbcBySelect(String sql) throws SQLException, ClassNotFoundException {
List<Map<String, Object>> list = new ArrayList();
getSource();
pstat = conn.prepareStatement(sql);
rest = pstat.executeQuery();
ResultSetMetaData rsmd = rest.getMetaData();
int columnCount = rsmd.getColumnCount();
while(rest.next()) {
Map<String, Object> map = new HashMap();
for(int i = 1; i <= columnCount; ++i) {
String columnName = rsmd.getColumnName(i);
Object columnValue = rest.getObject(i);
map.put(columnName, columnValue);
}
list.add(map);
}
closeSource();
return list;
}
public static List<Map<String, Object>> jdbcBySelect(String sql, String username, String password) throws SQLException, ClassNotFoundException {
List<Map<String, Object>> list = new ArrayList();
getSource();
pstat = conn.prepareStatement(sql);
pstat.setString(1, username);
pstat.setString(2, password);
rest = pstat.executeQuery();
ResultSetMetaData rsmd = rest.getMetaData();
int columnCount = rsmd.getColumnCount();
while(rest.next()) {
Map<String, Object> map = new HashMap();
for(int i = 1; i <= columnCount; ++i) {
String columnName = rsmd.getColumnName(i);
Object columnValue = rest.getObject(i);
map.put(columnName, columnValue);
}
list.add(map);
}
closeSource();
return list;
}
public static <E> int updateBySql(String sql, E... e) throws SQLException, ClassNotFoundException {
getSource();
int res=0 ;
pstat = conn.prepareStatement(sql);
for(int i = 0; i < e.length; ++i) {
pstat.setObject(i + 1, e[i]);
}
res = pstat.executeUpdate();
closeSource();
return res;
}
}