• 5-2:servlet中重写doGet和doPost方法并使用Post测试GET、POST请求


    5-2:servlet中重写doGet和doPost方法

    1. doGet方法

    Http用GET方式提交的请求,普通的查询就会进入到此方法。

    2. doPost方法

    http用POST方式提交的请求就会进入到此方法

    3. postman工具

    作用:

    • 专门用来模拟Http多种方式提交的工具,开发测试必备利器
    • 提供安装包直接安装使用
    • 选择post方式提交

    4. 其他方法

    还有其他的方法,像doHead、doDelete等,一样都是根据http提交Method来区分

    5. Servlet访问URL路径映射

    url-pattern:以 “/” 开头,可以用/xxx/* 来区分模块, * 是通配符,最好用模块区分,方式通配符都映射成功,但会导致不同优先级的问题。


    后记

    doGet和doPost的小案例

    案例一:重写doGet后,postman测试必须使用GET请求测试!

    TestServlet.java

    package com.cuikaiyang.web;
    
    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;
    
    /**
     * @author cuikaiyang
     * @version 1.0
     * @data 8/26/22 9:55 PM
     */
    
    public class TestServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            // 设置响应内容
            resp.setContentType("text/html;charset=utf-8");
            PrintWriter printWriter = resp.getWriter();
            printWriter.write("Hello doGet 崔凯洋的网络日志");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    使用postman的GET方法测试结果如下:
    在这里插入图片描述

    使用postman的POST方法测试结果如下:
    在这里插入图片描述
    有关状态码为405,可以参考这篇文章:https://blog.csdn.net/Attsky/article/details/126546161

    案例二:分别重写doGet、doPost后,postman测试GET、POST请求测试都可以

    TestServlet.java

    package com.cuikaiyang.web;
    
    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;
    
    /**
     * @author cuikaiyang
     * @version 1.0
     * @data 8/26/22 9:55 PM
     */
    
    public class TestServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            // 设置响应内容
            resp.setContentType("text/html;charset=utf-8");
            PrintWriter printWriter = resp.getWriter();
            printWriter.write("Hello doGet 崔凯洋的网络日志");
        }
    
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            // 设置响应内容
            resp.setContentType("text/html;charset=utf-8");
            PrintWriter printWriter = resp.getWriter();
            printWriter.write("Hello doPost 崔凯洋的网络日志");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    web.xml

    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    
        <servlet>
            <servlet-name>testServletservlet-name>
            <servlet-class>com.cuikaiyang.web.TestServletservlet-class>
        servlet>
    
        <servlet-mapping>
            <servlet-name>testServletservlet-name>
            <url-pattern>/test/findMeurl-pattern>
        servlet-mapping>
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    PostMan分别测试GET 和 POST请求:
    在这里插入图片描述
    在这里插入图片描述

    摘要:本篇文章主要介绍了重写doGet和doPost请求,然后在PostMan里做测试。最重要的是项目要导入Tomcat9安装包lib目录下的servlet-api.jar,然后在自己写的类里面继承HttpServlet并重写doGet和doPost请求。

    有关于乱码的问题要设置响应内容类型:

     resp.setContentType("text/html;charset=utf-8");
    
    • 1

    向页面中写入一段字符串需要借助以下代码:

     PrintWriter printWriter = resp.getWriter();
     printWriter.write("Hello doGet 崔凯洋的网络日志");
    
    • 1
    • 2

    熟练的使用快捷键重写-Mac版:control + Enter
    在这里插入图片描述

    还有要了解web.xml 如何绑定一个请求

    <servlet>
            <servlet-name>testServletservlet-name>
            <servlet-class>com.cuikaiyang.web.TestServletservlet-class>
    servlet>
    
    <servlet-mapping>
            <servlet-name>testServletservlet-name>
            <url-pattern>/test/findMeurl-pattern>
    servlet-mapping>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    例如上面这段xml,testServlet是servlet的名字可以随便起名字,但是最好要与类相关,绑定该servlet的类路径。
    servlet-mapping里写的是浏览器访问/test/findMe时候,将要访问testServlet。

    整体的流程就是:
    请添加图片描述

  • 相关阅读:
    【牛客编程题】shell34题(Linux awk,grep命令)
    DJ8-1 半导体存储原理
    R3F(React Three Fiber)经验篇
    算法设计与分析 | 众数问题(c语言)
    米家、homekit、智汀更看好哪一个?看完你就明白了
    java计算机毕业设计售楼系统(附源码、数据库)
    Spring Ioc源码分析系列--容器实例化Bean的四种方法
    代码随想录算法训练营第23期day31|贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和
    Linux socket编程(5):三次握手和四次挥手分析和SIGPIPE信号的处理
    使用Docker部署debezium来监控MySQL数据库
  • 原文地址:https://blog.csdn.net/Attsky/article/details/126551841