24. Servlet入门 – 用户登录案例
前言
在上一篇章中,我们已经实现了用户注册的案例,那么下面我们接着用户注册的基础,继续来完成 用户登录 案例。
案例-登录
1.需求
-
点击登录按钮, 进行登录. -
登录成功,显示login Success -
登录失败,显示login failed
2.思路
3.代码实现
3,1 页面的准备 login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<!-- 提交用户登录的表单请求 -->
<form action="/userDemo/login" method="post">
用户名<input type="text" name="username"><br>
密码<input type="text" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
启动 tomcat 测试访问 login.html 如下:
好了,此时我们已经写好了登录页面,下面我们来处理以下登录的业务Servlet
3.2 编写 LoginServlet 处理登录业务
package com.servlet;
import com.pojo.User;
import com.utils.DruidUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
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.sql.SQLException;
/**
* @author Aron.li
* @date 2021/2/15 18:29
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
//1. 解决乱码
//解决请求参数的中文乱码
request.setCharacterEncoding("UTF-8");
//解决响应中文乱码
response.setContentType("text/html;charset=utf-8");
//2. 获取请求参数username和password
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("登录用户名: " + username + ", 密码:" + password);
//3. 连接数据库校验用户名和密码,也就是执行查询的SQL语句
QueryRunner queryRunner = new QueryRunner(DruidUtil.getDataSource());
String sql = "select * from user where username=? and password=?";
//执行查询,查询一条数据,封装到User中
User user = queryRunner.query(sql, new BeanHandler<>(User.class), username, password);
System.out.println("查询到的user数据: " + user);
//4.存在user数据,则登录成功,否之,失败
if (user != null){
// 登录成功,则跳转至 index.html 页面
response.sendRedirect("/userDemo/index.html");
}else {
// 登录失败
response.getWriter().write("登录失败");
}
} catch (Exception e) {
// 登录失败
response.getWriter().write("登录失败");
// 抛出运行时异常
throw new RuntimeException(e.getMessage());
}
}
}
3.3 测试执行
-
测试登录成功
后台数据库查询数据如下:
-
测试登录失败
后台查询的数据如下:
4.小结
-
本质: 就是根据用户名和密码查询数据库 -
思路(LoginServlet) -
获得用户输入用户名和密码 -
使用DBUtils根据用户名和密码查询数据库 封装成User对象 -
判断是否登录成功(判断User是否为null) -
响应
原文始发于微信公众号(海洋的渔夫):24. Servlet入门 – 用户登录案例
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/34446.html