From f08ec28fa195f6b203a1c72336892b2e2c6f7eb6 Mon Sep 17 00:00:00 2001 From: many2many <6168830@qq.com> Date: Thu, 8 Aug 2024 00:53:48 +0800 Subject: [PATCH] add c4-task --- docs/tasks/chapter04-tasks.md | 50 ++++++++++++++++++ examples/chapter04/MANIFEST.MF | 2 + examples/chapter04/WEB-INF/web.xml | 25 +++++++++ .../chapter04/lib/javax.servlet-api-3.1.0.jar | Bin 0 -> 95806 bytes examples/chapter04/login.jsp | 18 +++++++ examples/chapter04/login2.jsp | 15 ++++++ .../com/lk/webapp/servlets/Login2Servlet.java | 36 +++++++++++++ .../com/lk/webapp/servlets/LoginServlet.java | 32 +++++++++++ examples/chapter04/welcome.jsp | 11 ++++ 9 files changed, 189 insertions(+) create mode 100644 docs/tasks/chapter04-tasks.md create mode 100644 examples/chapter04/MANIFEST.MF create mode 100644 examples/chapter04/WEB-INF/web.xml create mode 100644 examples/chapter04/lib/javax.servlet-api-3.1.0.jar create mode 100644 examples/chapter04/login.jsp create mode 100644 examples/chapter04/login2.jsp create mode 100644 examples/chapter04/src/com/lk/webapp/servlets/Login2Servlet.java create mode 100644 examples/chapter04/src/com/lk/webapp/servlets/LoginServlet.java create mode 100644 examples/chapter04/welcome.jsp diff --git a/docs/tasks/chapter04-tasks.md b/docs/tasks/chapter04-tasks.md new file mode 100644 index 0000000..0b31565 --- /dev/null +++ b/docs/tasks/chapter04-tasks.md @@ -0,0 +1,50 @@ +# 4. 基于Java的Web应用后端开发技术 + +## 任务目标 +- 实现一个简单的用户登录功能。 +- 使用Servlet技术处理用户的登录请求。 +- 理解MVC架构中的模型、视图和控制器的作用。 +- 学习如何在Servlet中处理HTTP请求和响应。 + +## 任务描述 +使用Servlet技术来实现一个用户登录功能。用户首先需要在登录页面输入用户名和密码,然后Servlet会验证这些信息是否正确。如果登录成功,则显示欢迎信息;如果失败,则显示错误提示。 + +## 技术栈 +- Java Servlet +- HTML +- JavaBean (可选) +- Apache Tomcat 作为Servlet容器 + +#### 任务步骤 + + + +1. **创建项目** + - 使用IntelliJ IDEA创建一个新的Java项目。 + +2. **编写登录页面 (`login.jsp`)** + + +3. **创建Servlet (`LoginServlet.java`)** + +4. **配置Servlet (`web.xml`)** + +5. **部署项目** + - 将项目导出为WAR文件。 + ```shell + jar cvfm my.war MANIFEST.MF -C . . + ``` + - 安装Tomcat。 + https://tomcat.apache.org/download-90.cgi + + - 将WAR文件放置在Tomcat的`webapps`目录下。 + - 重启Tomcat。 + +6. **测试** + - 访问 `http://localhost:8080/my/login.jsp`。 + - 输入用户名和密码,提交表单。 + - 观察不同的情况下的响应结果。 + +#### 扩展任务 +- **使用JavaBean**: 创建一个`User`类来封装用户名和密码,并在Servlet中使用这个类。 +- **添加错误页面**: 创建一个错误页面,在登录失败时重定向到该页面。 diff --git a/examples/chapter04/MANIFEST.MF b/examples/chapter04/MANIFEST.MF new file mode 100644 index 0000000..cec8377 --- /dev/null +++ b/examples/chapter04/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 +Created-By: openjdk 11.0.23 diff --git a/examples/chapter04/WEB-INF/web.xml b/examples/chapter04/WEB-INF/web.xml new file mode 100644 index 0000000..98cbce7 --- /dev/null +++ b/examples/chapter04/WEB-INF/web.xml @@ -0,0 +1,25 @@ + + + + + com.lk.webapp.servlets.LoginServlet + com.lk.webapp.servlets.LoginServlet + + + com.lk.webapp.servlets.Login2Servlet + com.lk.webapp.servlets.Login2Servlet + + + + com.lk.webapp.servlets.LoginServlet + /LoginServlet + + + com.lk.webapp.servlets.Login2Servlet + /Login2Servlet + + + \ No newline at end of file diff --git a/examples/chapter04/lib/javax.servlet-api-3.1.0.jar b/examples/chapter04/lib/javax.servlet-api-3.1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..6b14c3d267867e76c04948bb31b3de18e01412ee GIT binary patch literal 95806 zcmb5Vb98OnvOS!go$MXkwr$(CZQHhO+qUiO*tTu#@XNV+=brn1_q8vr&8+pum~G8b z)vKyk^)Y3{zXO2*{P7nRl*;$FFaP)l`t>O(sK84pDkVfM^N(d90FhtIdS~5#?S2CQ zXaWKNK=|`ANnR;YAwhWsDoLSC1xfpK8kkOVp-nca=OF|^5Fws%8FD+wuIl9o@;^250ig|d$005us>|4JEi*hDR4o^8&PM*=S|Kr~{JHF`iu zz|uD&5o!c^A}=96bymj~v+r26lmSN`m0h2$C^=pjGeY z>f!ip3(@_tJKM+3?|q99&rRIMH)vA&!+09d0z*~Yz>RE^OKtm1K@6C}W(V~|i=2JL zo9WVJ*9dL5gKLn^;PK_cuwFVSoh)xp&%IY><@nK`)!)^z9vi=Rp7Z5~v@mQdF)G5h zSP=s^l@%;_l>}O1b~=59CIv-87y8t1x4_2^r9BJ%*H@ zX|CSMUa#�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 + + + + Login Page + + +

Login

+
+ 帐号:
+ 密码:
+ +
+ <% if (request.getAttribute("error") != null) { %> +

<%= request.getAttribute("error") %>

+ <% } %> + + \ No newline at end of file diff --git a/examples/chapter04/login2.jsp b/examples/chapter04/login2.jsp new file mode 100644 index 0000000..bce4be6 --- /dev/null +++ b/examples/chapter04/login2.jsp @@ -0,0 +1,15 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + Login Page + + +

Login

+
+ 帐号:
+ 密码:
+ +
+ + \ No newline at end of file diff --git a/examples/chapter04/src/com/lk/webapp/servlets/Login2Servlet.java b/examples/chapter04/src/com/lk/webapp/servlets/Login2Servlet.java new file mode 100644 index 0000000..20e37f5 --- /dev/null +++ b/examples/chapter04/src/com/lk/webapp/servlets/Login2Servlet.java @@ -0,0 +1,36 @@ +package com.lk.webapp.servlets; + +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.io.PrintWriter; + +@WebServlet("/Login2Servlet") +public class Login2Servlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=UTF-8"); + + String username = request.getParameter("username"); + String password = request.getParameter("password"); + + // 验证用户名和密码 + if ("admin".equals(username) && "123456".equals(password)) { + response.setStatus(HttpServletResponse.SC_OK); + PrintWriter writer = response.getWriter(); + writer.println(""); + writer.println("

欢迎, " + username + "!

"); + writer.println("

登录成功!

"); + writer.println(""); + } else { + response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid credentials"); + } + } +} \ No newline at end of file diff --git a/examples/chapter04/src/com/lk/webapp/servlets/LoginServlet.java b/examples/chapter04/src/com/lk/webapp/servlets/LoginServlet.java new file mode 100644 index 0000000..46e5c38 --- /dev/null +++ b/examples/chapter04/src/com/lk/webapp/servlets/LoginServlet.java @@ -0,0 +1,32 @@ +package com.lk.webapp.servlets; + +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; + +@WebServlet("/LoginServlet") +public class LoginServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=UTF-8"); + + String username = request.getParameter("username"); + String password = request.getParameter("password"); + + // 验证用户名和密码 + if ("admin".equals(username) && "123456".equals(password)) { + request.setAttribute("message", "欢迎, " + username + "! 您已经成功登录."); + request.getRequestDispatcher("welcome.jsp").forward(request, response); + } else { + request.setAttribute("error", "Invalid credentials"); + request.getRequestDispatcher("login.jsp").forward(request, response); + } + } +} \ No newline at end of file diff --git a/examples/chapter04/welcome.jsp b/examples/chapter04/welcome.jsp new file mode 100644 index 0000000..08b990c --- /dev/null +++ b/examples/chapter04/welcome.jsp @@ -0,0 +1,11 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + 欢迎页面 + + +

热烈欢迎!

+

<%= request.getAttribute("message") %>

+ + \ No newline at end of file