0. 环境准备

项目创建:

IDEA 创建 Servlet 项目详细步骤:https://www.jianshu.com/p/386a79d16e05

导入 MySQL 驱动包:

Java MySQL 连接:https://eslsuwen.github.io/2019/06/02/Java-MySQL/

1. 创建测试数据

接下来我们在 MySQL 中创建 usersdb 数据库,并创建 user 数据表,表结构如下:

1234
CREATE TABLE `user` (  `name` char(20) NOT NULL DEFAULT '' COMMENT 'name',  `password` char(10) NOT NULL DEFAULT '' COMMENT 'password') ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

插入一些数据:

12345
INSERT INTO `user`VALUES	( 'admin', 'admin' ),	( ' guest ', ' 123456 ' ),	( ' guest1 ', ' 123 ' );

2. 创建登录 jsp 文件

在 web 目录下创建 login.jsp :

1234567891011121314151617181920212223
<%@ page language="java" contentType="text/html; charset=UTF-8"         pageEncoding="UTF-8" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>登录</title></head><body><div class="login" style="text-align:center;">    <fieldset>        <legend>用户登录</legend>        <br/>        <form action="login" method="post" name="login">            用户名:<input type="text" name="username"/> <br/> <br/> 密&nbsp;码:<input                type="password" name="password"/> <br/> <br/> <input                type="submit" value="登录"/>        </form>    </fieldset></div>

</body></html>

3. 创建登录 servlet 处理登录请求

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
package login;

import database.JdbcOp;

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 javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;import java.sql.ResultSet;

@WebServlet("/login")public class LoginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        // 一般都会在doGet()方法中调用doPost()方法,或者在doPost()方法中调用doGet()方法        doPost(request, response);    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        // 设置编码格式,可以防止乱码出现        response.setContentType("text/html; charset=utf-8");        response.setCharacterEncoding("utf-8");        request.setCharacterEncoding("utf-8");        // 获取用户提交过来的用户名和密码,是通过表单中input的name属性获取的        String username = request.getParameter("username");        String password = request.getParameter("password");        String isSignUp = request.getParameter("isSignUp");        PrintWriter out = response.getWriter();        System.out.println(username + ": " + password + " isSignUp: " + isSignUp);        // 获取输出流,用户显示信息,也可以用转发或者重定向        PrintWriter pw = response.getWriter();

        try {            JdbcOp jdbc = new JdbcOp();            jdbc.open("usersdb");            ResultSet rs = jdbc.executeQuery("select * from users");

            while (rs.next()) {                String nm = rs.getString("name");                String pd = rs.getString("password");                System.out.println("username: " + nm + " password: " + pd);

                if (nm.equals(username) && pd.equals(password)) {                    HttpSession session = request.getSession();                    //将数据存储到session中                    session.setAttribute("isLogin", "true");                    session.setAttribute("username", username);

                    out.print("<script language='javascript'>alert('You login successful  ! 你已成功登录!out.print');window.location.href='test.jsp';</script>");                    out.flush();                    out.close();                }            }            jdbc.close();        } catch (Exception e) {            e.printStackTrace();        }        pw.write("login fail");        out.print("<script language='javascript'>alert('please login first 登陆信息输入有误!');window.location.href='login.jsp';</script>");        out.flush();        out.close();    }

}

4. 运行项目

输入正确的账号密码:

账号密码验证失败:

最新文章

  1. nrf51822裸机教程-PWM
  2. hdu 2051
  3. CSS3美化表单 移动端可用
  4. xcode Simulated Metrics xib设置小问题
  5. 最初的ajax案例
  6. 结合程序崩溃后的core文件分析bug
  7. -bash: yum: command not found
  8. shell脚本--操作MySQL数据库
  9. 题解-PKUWC2018 Slay the Spire
  10. ABAP 创建function model 返回参数为内表类型
  11. node API
  12. Vue笔记:使用 mock.js 模拟数据
  13. 洛谷 P1006 传纸条 多维DP
  14. visual stdio 工程 宏
  15. Netty核心概念(7)之Java线程池
  16. Chapter 1(数据结构绪论)
  17. ubuntu环境JDK安装(转至 http://hi.baidu.com/leo_lovato/item/31d1150d31a06d8002ce1bec)
  18. MATLAB中常用函数及语法
  19. CodeForces - 607B (记忆化搜索)
  20. 地下迷宫探索(dfs)

热门文章

  1. nmap中文帮助文档
  2. 利用setuptools发布Python程序到PyPI,为Python添砖加瓦
  3. Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake
  4. 单元测试框架之unittest(三)
  5. es相关
  6. MySQL-进阶7-子查询 - select后/where后/from后/ []where后/having后] / exists后面 的相关子查询
  7. MYSQL参数说明
  8. 你不知道的JavaScript LHS 和 RHS 查找
  9. 3.使用webpack配置文件webpack.confg.js配置打包文件的入口和出口
  10. PL/SQL老是自动断开问题处理