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" + + "\n"+ + "\n"); + + Enumeration headerNames = request.getHeaderNames(); + + while(headerNames.hasMoreElements()) { // 遍历请求头部的名称,并输出每个头部的名称和对应的值。 + String paramName = (String)headerNames.nextElement(); + out.print("\n"); + String paramValue = request.getHeader(paramName); + out.println("\n"); + } + out.println("
Header 名称Header 值
" + paramName + " " + paramValue + "
\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