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

Servlet系列教材 (五)- 基础 - doGet方法 doPost方法 service方法 可以发现,service(), doGet(), doPost() 三种方式的参数列表都是一样的。当浏览器使用post方式提交数据的时候,servlet需要提供doPost()方法。实际上,在执行doGet()或者doPost()之前,都会先执行service()当浏览器使用get方式提交数据的时候,servlet需要提供doGet()方法。由service()方法进行判断,到底该调用doGet()还是doPost()Servlet 需要提供对应的doGet() 与 doPost()方法。 阅读详情

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 崔凯洋的网络日志");
    }
}

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

使用postman的POST方法测试结果如下:
在这里插入图片描述
有关状态码为405,可以参考这篇文章:https://blog.youkuaiyun.com/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 崔凯洋的网络日志");
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>testServlet</servlet-name>
        <servlet-class>com.cuikaiyang.web.TestServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>testServlet</servlet-name>
        <url-pattern>/test/findMe</url-pattern>
    </servlet-mapping>
</web-app>

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

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

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

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

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

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

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

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

<servlet>
        <servlet-name>testServlet</servlet-name>
        <servlet-class>com.cuikaiyang.web.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
        <servlet-name>testServlet</servlet-name>
        <url-pattern>/test/findMe</url-pattern>
</servlet-mapping>

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

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

Servlet核心解析:HttpServletRequest与生命周期实战 Java Web开发中,HTTP请求处理是核心环节。Servlet作为Java服务端处理请求的基础组件,定义了请求-响应模型。它没有main方法,依靠Tomcat等容器启动并管理生命周期。HttpServletRequest封装了请求行、参数、Header、Session等全部信息,掌握其API是处理请求数据的基础。Servlet生命周期包含加载、实例化、初始化、服务、销毁五个阶段,理解其线程模型对并发安全至关重要。通过web.xml配置Servlet映射,可以清晰看到请求如何被分发到具体处理类。这篇文章从 阅读详情

相关推荐

Servlet核心机制与生命周期详解:从原理到Spring MVC底层的贯通

在Java Web开发中,无论框架如何演进,Servlet始终是请求-响应模型的基础。理解Servlet的生命周期,掌握其单实例多线程的并发模型,是排查线上问题与应对面试的关键。HTTP协议本身无状态,因此会话管理借助Cookie与Session实现身份追踪,而Filter与Listener则为请求链路提供了统一的拦截与事件监听能力。这些底层机制不仅适用于传统Java EE应用,也是Spring MVC的核心——DispatcherServlet本质上就是一个增强的Servlet。从URL解析、请求参数处理

weixin_33910759的博客 330

2-5:Http常见的响应状态码及作用

本文主要介绍了HttpCode常见的响应状态码以及对应的原因,这个面试经常会被问及。

崔凯洋的博客 462

Jakarta EE 实验 — Web 聊天室(Web Chatroom)开发(二)

摘要:本文介绍了JakartaEE Web聊天室项目的扩展实现,包括三个主要改进:1) 使用URL重写(response.encodeURL())解决禁用Cookie时的Session维持问题;2) 通过AJAX轮询(每5秒请求)实现更即时的消息广播;3) 演示转发(forward)与重定向(redirect)的差异,特别展示了转发模式下的表单重复提交问题。项目保持原有Maven+Tomcat运行环境,所有改进都通过详细注释说明,并提供了完整的更新代码。测试时可禁用浏览器Cookie验证URL重写,或切换转

元直的博客 1367

Servlet复习笔记(3)——为何重写doGet和doPost方法、HttpServletRequest、请求转发、\含义

1. Servlet中的service, doGet, doPost方法的区别和联系 在继承HttpServlet的时候为何一般只重写doGet和doPost方法呢?我们来看一下HttpServlet的源码: protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod()

m0_38140207的博客 2450

eNSP-Pro配置又丢了?手把手教你用导出功能防患于未然

本文详细介绍了eNSP-Pro配置防丢失的全套方案,包括运行时内存、虚拟存储设备和宿主机文件系统的配置存储机制,以及多维度备份策略和特殊场景下的恢复技巧。通过优化保存流程、自动化定时导出和版本化管理,帮助网络工程师有效防止配置丢失,提升工作效率。

weixin_42665725的博客 239

用R语言实现“中断时间序列分析” --- R code for ITS

ITS方法可用于评估一项干预措施的效果,从水平改变和斜率改变两个角度来描述干预引起的变化。

franksui的博客 4026

JavaWeb(三)——Servlet基础

Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术。 Servlet是运行在服务器上的一个java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端,作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 开发一个Servlet程序需要完成两个步骤: 编写一个类,实现Serlet接口 把开发好java类部署到web服务器中 Servlet的运行过程 Servlet程序是由WEB服务器调用,web服务器收到客

winner_20020626的博客 1320

Python连接高斯数据库踩坑实录:从SASL报错到SSL安全连接的完整指南

本文详细记录了Python连接高斯数据库时遇到的SASL authentication报错及其解决方法。通过剖析SASL认证机制,对比了修改数据库配置、使用官方驱动等方案的利弊,并重点提供了通过自动化脚本生成SSL证书,实现安全、免密连接的完整指南,帮助开发者彻底解决连接难题。

weixin_28340315的博客 438

浅谈HttpServlet之重写doGet、doPost

浅谈HttpServlet之重写doGet、doPost

weixin_47268883的博客 1579

【寄存器模型】一、一个简单的寄存器模型

在描述寄存器模型之前,首先来了解一下实际寄存器的组成结构:如下图所示的DUT内部真实的寄存器寄存器中最小的一个单位是域(field),域是由一个或多个bit拼接而成的。一个或多个域就构成了一个寄存器(reg)。一个或多个寄存器就构成了一个块(block)。将DUT中的寄存器抽象出来,建立寄存器模型,如下图所示:uvm library已经定义好了field、reg、block等相关的概念,构建寄存器模型时,只需要继承这些类即可。:构建寄存器模型中的域段。uvm_reg。...

carrotbanana的博客 5368

IPD流程中CBB管理的5个致命误区,第3个坑了80%的团队

本文深入剖析了IPD流程中CBB管理的五个致命误区,尤其指出缺乏有效的度量与激励机制是影响80%团队的核心陷阱。文章强调CBB的核心在于前瞻性设计,而非简单归档,并需平衡通用性与产品竞争力,同时建立持续运营机制,确保CBB与市场需求对齐,从而真正实现缩短开发周期、降低成本的目标。

weixin_29234423的博客 569

堆栈花园的Servlet学习备忘录——service方法和doGet方法,doPost方法的联系

平常使用servlet的时候,一般会创建一个servlet类去继承HttpServlet这个抽象类,然后根据需要,重写实现doGet方法或者doPost方法,让tomcat来调度浏览器发出的对动态资源文件(class字节码文件)的请求。那这些方法底层到底做了什么呢? 1. 首先我们要知道所有继承了HttpServlet的类,tomcat才有资格去调用它们。 2. 假如现在有个类叫MyServlet,那么tomcat会在浏览器发出请求后,Servlet myServlet = new MyServle..

堆栈花园的学习备忘录 283

ScanNet数据集详解

ScanNet 是一个 RGB-D 视频数据集,在超过 1500 次扫描中包含了 250 万个视图,并标注了 3D 相机位姿、表面重建和实例级的语义分割。为了收集这些数据,设计了一个易于使用且具有扩展性的 RGB-D 捕获系统,包括自动化的表面重建和众包的语义标注。如果您想下载 ScanNet 数据,请使用您的机构邮箱地址填写一份 ScanNet 使用条款协议,并发送至 scannet@googlegroups.com。压缩包是将3D的标注信息“拍扁”成2D图片的结果,对应原始视频的每一帧。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 3918

JavaWeb必学必会|GET与POST请求全流程实战教学:JSP表单 + Servlet处理(doGet/doPost)保姆级入门

🎉恭喜你!你已经掌握了JavaWeb中最核心的前后端交互机制!如何使用JSP创建表单如何用Servlet处理GET和POST请求doGet()与doPost()的区别与应用场景完整的Web请求处理流程💬“实践是检验真理的唯一标准”—— 动手写一遍,胜过看十遍!

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 851

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3574

SAP S/4HANA 数据归档的实施方法

实施 SAP S/4HANA 数据归档是一个系统的过程,涉及到策略的定义、技术的执行以及后续的维护和验证。正确的归档策略不仅能优化系统性能,还能帮助企业降低运营成本,确保数据安全,并符合相关法律法规的要求。通过以上案例,我们可以看到不同行业如何依据自己的业务需求和法规要求,利用 SAP S/4HANA 的强大功能来实现数据归档的目标。这些实践证明了数据归档在现代企业信息管理中的重要地位和作用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 890

Servlet学习笔记4——HTTP协议请求方式与HttpServletRequest对象详解

文章目录适配器HTTP请求的两种方式HTTP协议详解关于模板方法设计模式HttpServletRequest对象详解 适配器 当前项目中的程序没有使用适配器模式代码丑陋 A、B、C类直接实现接口,其中m1,m2,m3方法是需要使用的,其它方法都给默认空实现,代码丑陋不够优雅! 1、抽取Servlet适配器类型,以后所有的Servlet类不再直接实现Servlet接口了,因为这样代码很丑陋。 可以让以后所有的Servlet继承“Servlet适配器类型”,这样代码会很优雅。 2、Servlet适配器类型除了完

. 979

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaWeb_servlet(4)_ HttpServlet

JavaWeb_servlet HTTP 请求的 Servlet ● 因为现在我们的请求都是基于 HTTP 协议的,所以我们应该专门为 HTTP 请求写一个 Servlet 做为通用父类。 对于专注于 HTTP 的 Servlet,我们需要处理以下几个问题: service() 方法的参数 ServletRequest 和 ServletResponse,但因为所有的请求都是 HTTP 请求,所...

魏宇轩 615

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

HttpServlet是Servlet接口的一个实现类

一、简介 HttpServlet是Servlet接口的一个实现类,并且它是一个抽象的类,servlet.http包中定义了采用HTPP协议的(一个无状态的协议的)HttpServlet类 二、响应流程 1、Web客户端向Servlet容器发送http请求 2、Servlet容器解析了Web客户端发来的请求 3、Servlet容器创建了一个HttpRequest对象,在这个对象中封装了请求信息 4、Servlet容器创建了一个HttpResponse对象 5、Servlet容器调用了HttpSe

qq_47099087的博客 861

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Servlet使用_ 1 数据库相关的操作,使用封装的工具类 2 编写四个servlet,使用注解指定相关的(3)

Java官方规定的web开发的api(规范)。网络编程对于客户端和服务端:两端使用支持网络编程的语言,就能实现网络编程(网络通信)但是应用层协议,还是需要应用程序自己来进行封装和分用。客户端:基于浏览器可以省略程序自己封装分用http数据的步骤(浏览器会帮助我们进行封装和分用);服务端:基于web服务器(部署网站,对应省略http协议处理的逻辑)也可以类似的省略封装和分用的步骤。对于web服务器,有多种产品(支持多种编程语言),支持Java语言的,对应也有多种产品。

2401_84185145的博客 489

servlet的作用、生命周期与案例

servlet是什么?有什么用? 通俗的说 servlet 的本质是一个java程序 ,Servlet 同时也是连接 Web 服务器与服务端 Java 程序的协议,是一种通信规范。这个规范是以一套接口的形式体现的。 作用:当浏览器通过http调用web服务器(如 romcat)时,web服务器通过servlet来调用我们在后台写的java程序,且web服务器只能调用实现了servlet接口的类,所以web服务器想调用后台程序时就需要通多servlet来调用 该方法中定义了servlet在get、post

qq_45812181的博客 1369

Servlet API

1. Servlet API 1.1 HttpServlet 方法 方法名称 调用时机 init 在 HttpServlet 实例化之后被调用一次 destory 在 HttpServlet 实例不再使用的时候调用一次 service 收到 HTTP 请求的时候调用 doGet 收到 GET 请求的时候调用(由 service 方法调用) doPost 收到 POST 请求的时候调用(由 service 方法调用) doPut/doDelete/doOptions/… 收

wwzzzzzzzzzzzzz的博客 1707

Servlet与HttpServlet核心原理精讲:从生命周期到Spring Boot底层机制

Java Web开发中,HTTP协议的无状态特性与请求响应的复杂性,催生了标准化处理模型的需求。Servlet作为Java后端处理HTTP请求的规范接口,由Tomcat等Web容器负责实例化与调度,其生命周期管理、单实例多线程模型以及doGet/doPost方法分发机制,构成了整个Java服务端技术体系的基石。理解请求转发与重定向的差异、Filter过滤链的作用,能帮助开发者解决中文乱码、并发安全等高频工程问题。而Spring Boot与Spring MVC之所以能简化开发,底层正是基于Dispatcher

weixin_34038293的博客 351

Servlet学习笔记

Servlet是个啥1.从使用的角度:Servlet是Java提供的动态web资源开发技术,动态资源就是每次使用不同的参数访问同一个资源,所返回的情况也不一样。例如登录网页时使用不同的账号名和密码,所返回的欢迎语不一样。2.从原理的角度:Servlet是JavaEE的规范之一,有一个Sevlet接口,需要定义Sevlet类去实现接口中所有的方法,并由web服务器运行。Servlet的快速开发步骤1. 导入坐标:创建web项目,导入Servlet的依赖坐标。

king220022的博客 125

Servlet 入门详解

本文介绍了Servlet的基础知识,主要包括:Servlet是运行在服务器端的Java小程序,用于处理HTTP请求并生成动态响应。核心内容包括Servlet接口体系结构(Servlet→GenericServlet→HttpServlet)、两种配置方式(注解和web.xml)以及Servlet生命周期的四个阶段(加载实例化→初始化→服务→销毁)。通过示例演示了如何创建和部署第一个Servlet程序,并分析了常见问题如404错误和中文乱码的解决方法。Servlet是Java Web开发的核心技术,必须运行在

2401_88882920的博客 337

JavaWeb--1.Servlet

​ 在pom.xml文件中加入相关依赖</</</</</</

qq_66013948的博客 1242
上一篇: 5-1:什么是Servlet-开发你的第一个动态网站
崔凯洋
博客等级 码龄6年 26粉丝 132原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值