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}
+