From 423a8962bb21566a282b43e44bcbef0a83983c9a Mon Sep 17 00:00:00 2001 From: liyansheng <1761724207@qq.com> Date: Tue, 14 Jan 2025 00:37:02 +0800 Subject: [PATCH] =?UTF-8?q?add<=E8=AF=B7=E6=B1=82=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=94=B9=E9=80=A0>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 21 +++++++++ .../java/example/controller/LoginServlet.java | 31 ++++++++----- src/main/java/example/model/Result.java | 41 +++++++++++++++++ src/main/webapp/login.jsp | 46 +++++++++++++++---- 4 files changed, 119 insertions(+), 20 deletions(-) create mode 100644 src/main/java/example/model/Result.java diff --git a/pom.xml b/pom.xml index 47e76a9..a384a5e 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,20 @@ 0.9.5.5 + + + commons-fileupload + commons-fileupload + 1.4 + + + + + commons-io + commons-io + 2.11.0 + + @@ -65,6 +79,13 @@ provided + + com.google.code.gson + gson + 2.10.1 + + + org.apache.tomcat diff --git a/src/main/java/example/controller/LoginServlet.java b/src/main/java/example/controller/LoginServlet.java index 1cbd13c..3af6fd5 100644 --- a/src/main/java/example/controller/LoginServlet.java +++ b/src/main/java/example/controller/LoginServlet.java @@ -1,5 +1,6 @@ package example.controller; +import example.model.Result; import example.model.User; import example.service.IUserService; import example.service.impl.UserServiceImpl; @@ -18,27 +19,29 @@ public class LoginServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - resp.setContentType("text/html;charset=utf-8"); + resp.setContentType("application/json;charset=utf-8"); req.setCharacterEncoding("utf-8"); + String username = req.getParameter("username"); String password = req.getParameter("password"); String captcha = req.getParameter("captcha"); + try { - if(!captcha.equalsIgnoreCase((String)req.getSession().getAttribute("captcha"))){ - req.getSession().setAttribute("msg","验证码错误"); - resp.sendRedirect("/msg.jsp"); + if (!captcha.equalsIgnoreCase((String) req.getSession().getAttribute("captcha"))) { + resp.getWriter().write(toJson(Result.error("验证码错误"))); return; } + User user = userService.login(username, password); - if(user!=null){ - req.getSession().setAttribute("user",user); - resp.sendRedirect("/computer?action=list"); - }else{ - req.getSession().setAttribute("msg","用户名或密码错误"); - resp.sendRedirect("/msg.jsp"); + if (user != null) { + req.getSession().setAttribute("user", user); + resp.getWriter().write(toJson(Result.success("登录成功"))); + } else { + resp.getWriter().write(toJson(Result.error("用户名或密码错误"))); } } catch (Exception e) { - throw new RuntimeException(e); + e.printStackTrace(); + resp.getWriter().write(toJson(Result.error("系统错误,请稍后重试"))); } } @@ -46,4 +49,10 @@ public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.sendRedirect("/login.jsp"); } + + private String toJson(Object object) { + // 使用简单的 JSON 序列化方式,实际可以使用 Jackson 或 Gson 库 + return new com.google.gson.Gson().toJson(object); + } } + diff --git a/src/main/java/example/model/Result.java b/src/main/java/example/model/Result.java new file mode 100644 index 0000000..9cb0af7 --- /dev/null +++ b/src/main/java/example/model/Result.java @@ -0,0 +1,41 @@ +package example.model; + +public class Result { + private String status; // "success" 或 "error" + private String message; // 消息内容 + private T data; // 附加数据 + + public Result(String status, String message, T data) { + this.status = status; + this.message = message; + this.data = data; + } + + public Result(String status, String message) { + this(status, message, null); + } + + public String getStatus() { + return status; + } + + public String getMessage() { + return message; + } + + public T getData() { + return data; + } + + public static Result success(String message, T data) { + return new Result<>("success", message, data); + } + + public static Result success(String message) { + return success(message, null); + } + + public static Result error(String message) { + return new Result<>("error", message, null); + } +} diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp index 02c18c6..02fa0ec 100644 --- a/src/main/webapp/login.jsp +++ b/src/main/webapp/login.jsp @@ -3,31 +3,59 @@ - +

-电脑商城-用户登录

-
+



- 验证码

+ 验证码

没有账号?去注册

- ${requestScope.msg} +