From 35e9cfe4020ff1412d3a4a15a4bc1e192c5fb8ce Mon Sep 17 00:00:00 2001
From: nihao <1275415777@qq.com>
Date: Mon, 15 Apr 2024 15:04:04 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maven=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/.gitignore | 3 ++
.idea/misc.xml | 14 ++++++
.idea/vcs.xml | 6 +++
.idea/web-framework.iml | 9 ++++
pom.xml | 37 ++++++++++++++++
src/main/java/DisplayHeader.java | 52 +++++++++++++++++++++++
src/main/java/HelloServlet.java | 50 ++++++++++++++++++++++
src/main/java/org/example/Calculator.java | 7 +++
src/main/java/org/example/Servlet03.java | 31 ++++++++++++++
src/main/java/org/example/Servlet04.java | 25 +++++++++++
src/main/java/org/example/Servlet05.java | 30 +++++++++++++
src/main/java/org/example/Servlet06.java | 34 +++++++++++++++
src/main/webapp/login.html | 10 +++++
src/main/webapp/web-INF/web.xml | 14 ++++++
src/test/java/demo1.java | 2 +
src/test/java/testA.java | 34 +++++++++++++++
16 files changed, 358 insertions(+)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/misc.xml
create mode 100644 .idea/vcs.xml
create mode 100644 .idea/web-framework.iml
create mode 100644 pom.xml
create mode 100644 src/main/java/DisplayHeader.java
create mode 100644 src/main/java/HelloServlet.java
create mode 100644 src/main/java/org/example/Calculator.java
create mode 100644 src/main/java/org/example/Servlet03.java
create mode 100644 src/main/java/org/example/Servlet04.java
create mode 100644 src/main/java/org/example/Servlet05.java
create mode 100644 src/main/java/org/example/Servlet06.java
create mode 100644 src/main/webapp/login.html
create mode 100644 src/main/webapp/web-INF/web.xml
create mode 100644 src/test/java/demo1.java
create mode 100644 src/test/java/testA.java
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..359bb53
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..132404b
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/web-framework.iml b/.idea/web-framework.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/web-framework.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..974e8e9
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+ org.example
+ web-framework
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 4.0.1
+ provided
+
+
+ junit
+ junit
+ 4.13.2
+ test
+
+
+ pom
+
+ hello_servlet
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/DisplayHeader.java b/src/main/java/DisplayHeader.java
new file mode 100644
index 0000000..536cf8e
--- /dev/null
+++ b/src/main/java/DisplayHeader.java
@@ -0,0 +1,52 @@
+//导入必需的 java 库
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Enumeration;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@WebServlet("/DisplayHeader")
+
+//扩展 HttpServlet 类
+public class DisplayHeader extends HttpServlet {
+
+ // 处理 GET 方法请求的方法
+ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+ {
+ // 设置响应内容类型为HTML文本,并使用UTF-8字符编码。
+ response.setContentType("text/html;charset=UTF-8");
+
+ PrintWriter out = response.getWriter();//获取PrintWriter对象,用于向客户端输出响应内容
+ String title = "HTTP Header 请求实例"; // 定义标题和文档类型
+ String docType =
+ " \n";
+ out.println(docType + // 输出HTML页面的头部部分,包括标题和背景颜色设置。
+ "\n" + // 创建一个表格,用于展示HTTP请求的头部信息。
+ "
" + title + "\n"+
+ "\n" +
+ "" + title + "
\n" +
+ "\n" +
+ "\n" +
+ "Header 名称 | Header 值 | \n"+
+ "
\n");
+
+ Enumeration headerNames = request.getHeaderNames();
+
+ while(headerNames.hasMoreElements()) { // 遍历请求头部的名称,并输出每个头部的名称和对应的值。
+ String paramName = (String)headerNames.nextElement();
+ out.print("" + paramName + " | \n");
+ String paramValue = request.getHeader(paramName);
+ out.println(" " + paramValue + " |
\n");
+ }
+ out.println("
\n");
+ }
+ // 处理 POST 方法请求的方法
+ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ doGet(request, response);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/HelloServlet.java b/src/main/java/HelloServlet.java
new file mode 100644
index 0000000..bd06702
--- /dev/null
+++ b/src/main/java/HelloServlet.java
@@ -0,0 +1,50 @@
+import javax.print.DocFlavor;
+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("/hello") //路径
+public class HelloServlet extends HttpServlet {
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ /*常用方法*/
+ // 获取请求时的完整路径(从http开始,到“?”前面结束)
+ String url = request.getRequestURI() + "";
+ System.out.println("获取请求时的完整路径:" + url);
+ // 获取请求时的部分路径(从项目的站点名开始,到“?”结束)
+ String uri = request.getRequestURI();
+ System.out.println("获取请求时的部分路径:" + uri);
+ // 获取请求时的参数字符串(从“?”后面开始,到最后结束)
+ String queryString = request.getQueryString();
+ System.out.println("获取请求时的参数字符串:" + queryString);
+ // 获取请求方式(GET和POST)
+ String method = request.getMethod();
+ System.out.println("获取请求方式:" + method);
+ // 获取当前协议版本(HTTP/1.1)
+ String protocol = request.getProtocol();
+ System.out.println("获取当前协议版本:" + protocol);
+ // 获取项目的站点名(项目对外访问路径)
+ String webapp = request.getContextPath();
+ System.out.println("获取项目的站点名:" + webapp);
+
+
+ /* 获取请求的参数 */
+ // 获取指定名称的参数值,返回字符串
+ String uname = request.getParameter("uname");
+ String upwd = request.getParameter("upwd");
+ System.out.println("uname:" + uname +",upwd:" + upwd);
+ // 获取指定名称的参数的所有参数值,返回字符串数组
+ String[] hobbys = request.getParameterValues("hobby");
+ // 判断数组是否为空
+ if (hobbys != null && hobbys.length > 0){
+ for(String hobby : hobbys){
+ System.out.println("爱好:" + hobby);
+ }
+ }
+ }
+}
+
+
diff --git a/src/main/java/org/example/Calculator.java b/src/main/java/org/example/Calculator.java
new file mode 100644
index 0000000..a7a12d8
--- /dev/null
+++ b/src/main/java/org/example/Calculator.java
@@ -0,0 +1,7 @@
+package org.example;
+
+public class Calculator {
+ public int add(int a, int b) {
+ return a + b;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/example/Servlet03.java b/src/main/java/org/example/Servlet03.java
new file mode 100644
index 0000000..38a9329
--- /dev/null
+++ b/src/main/java/org/example/Servlet03.java
@@ -0,0 +1,31 @@
+package org.example;
+
+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;
+
+/**
+ * 请求转发跳转
+ * request.getRequestDispotcher(url).foward(request,response)
+ * 可以让服务器跳转到客户端
+ * 服务端行为
+ */
+@WebServlet("/s03") //路径
+public class Servlet03 extends HttpServlet {
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // 接收客户端请求的参数
+ String uname = request.getParameter("uname");
+ System.out.println("servlet03 name:" + uname);
+
+ // 请求转发跳转到servlet04
+ //request.getRequestDispatcher("s04").forward(request,response);
+
+ // 请求转发跳转到html页面
+ request.getRequestDispatcher("login.html").forward(request, response);
+ }
+}
+
diff --git a/src/main/java/org/example/Servlet04.java b/src/main/java/org/example/Servlet04.java
new file mode 100644
index 0000000..0d37ca5
--- /dev/null
+++ b/src/main/java/org/example/Servlet04.java
@@ -0,0 +1,25 @@
+package org.example;
+
+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;
+
+/**
+ * 请求转发跳转
+ * request.getRequestDispotcher(url).foward(request,response)
+ * 可以让服务器跳转到客户端
+ * 服务端行为
+ */
+@WebServlet("/s04") //路径
+public class Servlet04 extends HttpServlet {
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // 接收客户端请求的参数
+ String uname = request.getParameter("uname");
+ System.out.println("servlet04 name:" + uname);
+ }
+}
+
diff --git a/src/main/java/org/example/Servlet05.java b/src/main/java/org/example/Servlet05.java
new file mode 100644
index 0000000..e015893
--- /dev/null
+++ b/src/main/java/org/example/Servlet05.java
@@ -0,0 +1,30 @@
+package org.example;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.servlet.annotation.*;
+import java.io.IOException;
+
+@WebServlet(name = "RequestForwardServlet", value = "/forward")
+public class Servlet05 extends HttpServlet {
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ // 设置响应体内容类型
+ response.setContentType("text/html; charset=utf-8");
+ // 设置请求对象属性
+ request.setAttribute("message","转发成功!");
+ // 获取请求派发器对象(参数是请求转发的Servlet的url)
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/result");
+ // 请求转发给url为‘/result’的Servlet
+ dispatcher.forward(request,response);
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ doPost(request,response);
+ }
+}
+
+
diff --git a/src/main/java/org/example/Servlet06.java b/src/main/java/org/example/Servlet06.java
new file mode 100644
index 0000000..c433327
--- /dev/null
+++ b/src/main/java/org/example/Servlet06.java
@@ -0,0 +1,34 @@
+package org.example;
+
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.servlet.annotation.*;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+@WebServlet(name = "ResultServlet", value = "/result")
+public class Servlet06 extends HttpServlet {
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ // 设置响应体内容类型
+ response.setContentType("text/html; charset=utf-8");
+ // 获取字符输出流
+ PrintWriter out = response.getWriter();
+ // 获取请求转发保存在request对象里的数据
+ String message = (String) request.getAttribute("message");
+ // 输出获取的信息
+ if (message!= null){
+ out.println("转发来的消息:"+message);
+ }
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ doPost(request,response);
+ }
+}
+
+
diff --git a/src/main/webapp/login.html b/src/main/webapp/login.html
new file mode 100644
index 0000000..fcdcd91
--- /dev/null
+++ b/src/main/webapp/login.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Title
+
+
+ 你好
+
+
\ No newline at end of file
diff --git a/src/main/webapp/web-INF/web.xml b/src/main/webapp/web-INF/web.xml
new file mode 100644
index 0000000..069fa47
--- /dev/null
+++ b/src/main/webapp/web-INF/web.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ DisplayHeader
+
+ src.main.java.DisplayHeader
+
+
+ DisplayHeader
+
+ /hello_servlet/DisplayHeader
+
+
\ No newline at end of file
diff --git a/src/test/java/demo1.java b/src/test/java/demo1.java
new file mode 100644
index 0000000..88330be
--- /dev/null
+++ b/src/test/java/demo1.java
@@ -0,0 +1,2 @@
+public class demo1 {
+}
diff --git a/src/test/java/testA.java b/src/test/java/testA.java
new file mode 100644
index 0000000..3a34324
--- /dev/null
+++ b/src/test/java/testA.java
@@ -0,0 +1,34 @@
+//import org.example.Main;
+import org.example.Servlet03;
+import org.junit.Test;
+
+import org.junit.Assert;
+
+
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+
+
+public class testA {
+
+ @Test
+ public void testM() {
+// Main mm = new Main();
+// mm.doCal();
+ }
+
+}
+//public class CalculatorTest {
+// @Test
+// public void testAdd() {
+// Calculator calculator = new Calculator();
+// int result = calculator.add(3, 4);
+// Assert.assertEquals(7, result);
+// }
+//}
+
--
Gitee
From a5ff8a37560de63adc173ddecaee167fd1c40422 Mon Sep 17 00:00:00 2001
From: nihao <1275415777@qq.com>
Date: Mon, 15 Apr 2024 15:48:08 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9A=84=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/org/example/Calculator.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/main/java/org/example/Calculator.java b/src/main/java/org/example/Calculator.java
index a7a12d8..ebc9be0 100644
--- a/src/main/java/org/example/Calculator.java
+++ b/src/main/java/org/example/Calculator.java
@@ -4,4 +4,11 @@ public class Calculator {
public int add(int a, int b) {
return a + b;
}
+}
+
+public String sayHello(String name){
+ return "Hello," + name +"!";
+}
+public static void main(string[], args){
+ System.out.println("hello word");
}
\ No newline at end of file
--
Gitee
From 0d0cc979b3bdb537363c307081fb3c496a74a720 Mon Sep 17 00:00:00 2001
From: nihao <1275415777@qq.com>
Date: Mon, 15 Apr 2024 15:52:42 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E5=BF=85?=
=?UTF-8?q?=E8=A6=81=E7=9A=84=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/org/example/Calculator.java | 14 --------------
1 file changed, 14 deletions(-)
delete mode 100644 src/main/java/org/example/Calculator.java
diff --git a/src/main/java/org/example/Calculator.java b/src/main/java/org/example/Calculator.java
deleted file mode 100644
index ebc9be0..0000000
--- a/src/main/java/org/example/Calculator.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.example;
-
-public class Calculator {
- public int add(int a, int b) {
- return a + b;
- }
-}
-
-public String sayHello(String name){
- return "Hello," + name +"!";
-}
-public static void main(string[], args){
- System.out.println("hello word");
-}
\ No newline at end of file
--
Gitee