阅读量:0
功能:利用HttpServlet完成MySql数据库my_user表的登录校验
step1:在porm.xml文件中导jdbc的依赖
mysql数据库输入
SELECT VERSION()
查询当前的数据库版本
maven官网网址;https://mvnrepository.com/
maven官网中搜索:mySQL
并复制依赖粘贴到pom文件中
main函数下java包的class类
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文件 :
<!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文件:
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; } }