|
@@ -0,0 +1,72 @@
|
|
|
+package com.sf.tomcatdemo;
|
|
|
+
|
|
|
+import com.sf.tomcatdemo.entity.User;
|
|
|
+import com.sf.tomcatdemo.utils.DBUtil;
|
|
|
+import jakarta.servlet.GenericServlet;
|
|
|
+import jakarta.servlet.ServletException;
|
|
|
+import jakarta.servlet.ServletRequest;
|
|
|
+import jakarta.servlet.ServletResponse;
|
|
|
+import jakarta.servlet.http.HttpServlet;
|
|
|
+import jakarta.servlet.http.HttpServletRequest;
|
|
|
+import jakarta.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.PrintWriter;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+// 这里GenericServlet 通用Servlet 是HttpServlet的抽象父类
|
|
|
+// http://localhost:8080/tomcat_demo/login
|
|
|
+public class LoginServlet extends HttpServlet {
|
|
|
+
|
|
|
+ // 需要实现的service是ServletRequest 不是HttpServletRequest
|
|
|
+// @Override
|
|
|
+// public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
+// super.doGet(req, resp);
|
|
|
+ // 正常的登录逻辑是不允许get请求的
|
|
|
+ // 设置响应的编码格式
|
|
|
+ resp.setContentType("text/html;charset=utf-8");
|
|
|
+ PrintWriter writer = resp.getWriter();
|
|
|
+ writer.print("<script>alert('请通过post登录');location.href='/login.html'</script>");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
+ // 接收前端请求的 用户名 和 密码
|
|
|
+ // 设置请求的编码格式
|
|
|
+ req.setCharacterEncoding("utf-8");
|
|
|
+ String username = req.getParameter("username");
|
|
|
+ String password = req.getParameter("password");
|
|
|
+
|
|
|
+ PrintWriter writer = resp.getWriter();
|
|
|
+ // 验证在数据库中是否存在且匹配
|
|
|
+ List<User> allUsers = DBUtil.getAllUsers();
|
|
|
+ for (User user : allUsers) {
|
|
|
+ if (username.equals(user.getUsername()) && password.equals(user.getPassword())) {
|
|
|
+// writer.write("Login Success");
|
|
|
+ // 跳转到success.html页面 同时携带请求和响应
|
|
|
+ req.getRequestDispatcher("/success.html").forward(req, resp);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// writer.write("Login Failed");
|
|
|
+ // 跳转到error.html
|
|
|
+ req.getRequestDispatcher("/error.html").forward(req, resp);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void init() throws ServletException {
|
|
|
+ System.out.println("LoginServlet init");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void destroy() {
|
|
|
+ System.out.println("LoginServlet destroy");
|
|
|
+ }
|
|
|
+}
|