在MySQL数据库中创建一个test_users数据表,添加3个字段:id,user,password。并录入几条记录。
定义一个login.html,里边定义两个请求字段:user,password。发送请求到loginServlet
在创建一个LoginServlet(需要继承自HttpServlet,并重写其doPost方法),
在其中获取请求的user,password
利用JDBC从test_users中查询有没有和页面输入的user,password对应的记录
若有,响应Hello:xxx,若没有,响应Sorry:xxx xxx为user。
数据库:
JSP:
<%-- Created by IntelliJ IDEA. User: dell Date: 2019/5/26 Time: 17:08 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="LoginServlet1" method="POST"> 姓名:<input type="text" name="username"> 密码:<input type="password" name="password"> <input type="submit" value="submit"> </form> </body> </html>
HttpServlet:
package com.demo.javaweb; import javax.servlet.ServletException; 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.*; public class LoginServlet1 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); String sql = "select count(id) from test_users where user=? and password=?"; Connection conn = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/yang?serverTimezone=UTC"; String user = "root"; String password1 = "password"; conn = DriverManager.getConnection(url,user,password1); preparedStatement = conn.prepareStatement(sql); preparedStatement.setString(1,username); preparedStatement.setString(2,password); resultSet = preparedStatement.executeQuery(); PrintWriter printWriter = resp.getWriter(); if (resultSet.next()){ int count = resultSet.getInt(1); if (count>0){ printWriter.print("Hello! "+ username); }else{ printWriter.print("Sorry " + username); } } } catch (Exception e) { e.printStackTrace(); }finally { if (resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (preparedStatement!=null){ try { preparedStatement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
Web.xml
<servlet> <servlet-name>LoginServlet1</servlet-name> <servlet-class>com.demo.javaweb.LoginServlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet1</servlet-name> <url-pattern>/LoginServlet1</url-pattern> </servlet-mapping>
运行: