当前位置: 首页 > news >正文

【Java】HttpServlet类简单方法和请求显示

1、HttpServlet类简介🍀

Servlet类中常见的三个类有:☑️HttpServlet类,☑️HttpServletRequest类,☑️HttpResponse类

🐬其中,HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对象,并把Http请求直接封装到HttpServlet对象中,大大简化了HttpServlet解析请求数据的工作量💪

🐬使用HttpServlet类时,需要继承这个类、重写里面的方法并把重写的代码插入到Tomcat的既定流程当中

创建HttpServlet的步骤——“四部曲”

1)扩展HttpServlet抽象类; 
2)覆盖HttpServlet的部分方法,如覆盖doGet()或doPost()方法; 
3)获取HTTP请求信息。通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串; 
4)生成HTTP响应结果。通过HttpServletResponse对象生成响应结果,它有一个getWriter()方法,该方法返回一个PrintWriter对象。

2、HttpServlet类中的方法

(1)常见方法

HttpServlet类中常见的方法如下🌟

方法方法作用说明
initservlet 被实例化之后,自动执行的方法.用来进行初始化工作这三个方法都不需要手动调用。Tomcat会在合适的时机,自动调用这三个方法
destoryServlet 被销毁之前,自动执行的方法.用来进行释放资源的操作
service每次收到 http 请求,就会自动执行的方法.处理请求, 计算响应(服务器的主逻辑)
doGet用于获取服务器信息,并将其做为响应返回给客户端根据请求的方法,被service调用
doPost用于客户端把数据传送到服务器端,Post适合发送大量的数据。
doDelete/doPut/doOptions用来处理一个HTTP DELETE操作,这个操作允许客户端请求从服务器上删除URL/这个操作自动地决定支持哪一种HTTP方法/操作包含请求体的数据,Servlet应该按照他行事

(2)验证doGet、doPost、doDelete

·postman

什么是postman?

在开发APP接口的过程中,一般接口写完之后,后端开发都会模拟调用一下请求。在用Postman之前,对于一般的get请求基本都会用浏览器来简单模拟。

Postman是一款支持http协议的接口调试与测试工具,具有功能强大、使用简单且易用性好的特点🚀

postman下载地址

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("/method")
public class MethodServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doGet-sys");resp.getWriter().write("doGet");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doPost-sys");resp.getWriter().write("doPost");}@Overrideprotected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doDelete-sys");resp.getWriter().write("doDelete");}
}

·验证doGet方法

 控制台打印

·验证doPost

 

·验证doDelete 

 

3、返回请求内容

用StringBuilder来存储返回的请求内容并打印 

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.util.Enumeration;@WebServlet("/show")
public class ShowRequestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {StringBuilder stringBuilder = new StringBuilder();stringBuilder.append(req.getProtocol());//返回协议名stringBuilder.append("</br>");stringBuilder.append(req.getMethod());//返回使用的方法stringBuilder.append("</br>");stringBuilder.append(req.getRequestURI());//返回发送请求的URIstringBuilder.append("</br>");stringBuilder.append(req.getContextPath());//返回Context路径stringBuilder.append("</br>");stringBuilder.append(req.getQueryString());//返回请求的queryEnumeration<String> headernames = req.getHeaderNames();while (headernames.hasMoreElements()){String key = headernames.nextElement();String value = req.getHeader(key);stringBuilder.append(key + ":" + value);//返回query中的key和value}resp.setContentType("text/html;charset=utf8");resp.getWriter().write(stringBuilder.toString());}
}

使用浏览器打开,得到下面结果👏

使用postman,得到相同结果 

相关文章:

【Java】HttpServlet类简单方法和请求显示

1、HttpServlet类简介&#x1f340; Servlet类中常见的三个类有&#xff1a;☑️HttpServlet类&#xff0c;☑️HttpServletRequest类&#xff0c;☑️HttpResponse类 &#x1f42c;其中&#xff0c;HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对…...

使用Rancher管理Kubernetes集群

部署前规划 整个部署包括2个部分&#xff0c;一是管理集群部署&#xff0c;二是k8s集群部署。管理集群功能主要提供web界面方式管理k8s集群。正常情况&#xff0c;管理集群3个节点即可&#xff0c;k8s集群至少3个。本文以3节点管理集群&#xff0c;3节点k8s集群为例 说明部署过…...

QT中操作word文档

QT中操作word文档&#xff1a; 参考如下内容&#xff1a; C(Qt) 和 Word、Excel、PDF 交互总结 Qt对word文档操作总结 QT中操作word文档 Qt/Windows桌面版提供了ActiveQt框架&#xff0c;用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成&#xff1a; QAxContainer模…...

纯前端在线Office文档安全预览之打开Word文档后禁止打印、禁止另存为、禁止复制

在一些在线Office文档中&#xff0c;有很多重要的文件需要保密控制&#xff0c;比如&#xff1a;报价单、客户资料等数据&#xff0c;只能给公司成员查看&#xff0c;但是不能编辑&#xff0c;并且不能拷贝&#xff0c;打印、不能另存为&#xff0c;导致重要资料外泄。 可以通…...

李沐深度学习-d2lzh_pytorch模块实现

d2lzh_pytorch 模块 import random import torch import matplotlib_inline from matplotlib import pyplot as plt import torchvision import torchvision.transforms as transforms import torchvision.datasets import sys from collections import OrderedDict# --------…...

什么是OSPF?为什么需要OSPF?OSPF基础概念

什么是OSPF&#xff1f; 开放式最短路径优先OSPF&#xff08;Open Shortest Path First&#xff09;是IETF组织开发的一个基于链路状态的内部网关协议&#xff08;Interior Gateway Protocol&#xff09;。 目前针对IPv4协议使用的是OSPF Version 2&#xff08;RFC2328&#x…...

Java多线程并发篇----第二十六篇

系列文章目录 文章目录 系列文章目录前言一、什么是 Executors 框架?二、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?三、什么是 Callable 和 Future?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…...

list下

文章目录 注意&#xff1a;const迭代器怎么写&#xff1f;运用场合&#xff1f; inserterase析构函数赋值和拷贝构造区别&#xff1f;拷贝构造不能写那个swap,为什么&#xff1f;拷贝构造代码 面试问题什么是迭代器失效&#xff1f;vector、list的区别&#xff1f; 完整代码 注…...

【Linux】进程间通信——system V 共享内存、消息队列、信号量

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;优惠多多。&#xff08;联系我有折扣哦&#xff09; 文章目录 写在前面1. 共享内存1.1 共享内存的概念1.2 共享内存的原理1.3 共享内存的使用1.3.1 …...

网络卡问题排查手段

问题 对后端来说&#xff0c;网络卡了问题&#xff0c;本身很难去排查&#xff0c;因为是 App 通过互联网连接服务 总结下&#xff0c;以往经验&#xff0c;网络卡&#xff0c;通常会有以下情况造成&#xff1a; 某地区网络问题某地区某运营商问题后端服务超载前端网络模块 …...

20240119-子数组最小值之和

题目要求 给定一个整数数组 arr&#xff0c;求 min(b) 的总和&#xff0c;其中 b 的范围涵盖 arr 的每个&#xff08;连续&#xff09;子数组。由于答案可能很大&#xff0c;因此返回答案模数 Example 1: Input: arr [3,1,2,4] Output: 17 Explanation: Subarrays are [3]…...

c# 释放所有嵌入资源, 到某个本地文件夹

版本号 .net 8 代码 using System.Reflection;namespace Demo;internal class Program {static void Main(string[] args){// 获取当前 执行exe 的目录 / 当前命令行所在的目录 var currentDir Directory.GetCurrentDirectory();Console.WriteLine(currentDir);Extract…...

Unity SnapScrollRect 滚动 匹配 列表 整页

展示效果 原理: 当停止滑动时 判断Contet的horizontalNormalizedPosition 与子Item的缓存值 相减,并得到最小值&#xff0c;然后将Content horizontalNormalizedPosition滚动过去 使用方式&#xff1a; 直接将脚本挂到ScrollRect上 注意&#xff1a;在创建Content子物体时…...

网络命令ping和telnet

1. 请解释ping和telnet的工作原理。 ping和telnet是两种常用的网络工具&#xff0c;其工作原理分别如下&#xff1a; ping&#xff1a; 目的&#xff1a;ping主要用于检查网络是否通畅以及测量网络连接速度。工作原理&#xff1a;ping是基于ICMP&#xff08;Internet Control …...

ros2学习笔记-CLI工具,记录命令对应操作。

目录 环境变量turtlesim和rqt以初始状态打开rqt node启动节点查看节点列表查看节点更多信息命令行参数 --ros-args topic话题列表话题类型话题列表&#xff0c;附加话题类型根据类型查找话题名查看话题发布的数据查看话题的详细信息查看类型的详细信息给话题发布消息&#xff0…...

自然语言处理的发展

自然语言处理的发展大致经历了四个阶段&#xff1a;萌芽期、快速发展期、低谷的发展期和复苏融合期。 萌芽期&#xff08;1956年以前&#xff09;&#xff1a;这个阶段可以看作自然语言处理的基础研究阶段。人类文明经过了几千年的发展&#xff0c;积累了大量的数学、语言学和…...

flink operator 拉取阿里云私有镜像(其他私有类似)

创建 k8s secret kubectl --namespace flink create secret docker-registry aliyun-docker-registry --docker-serverregistry.cn-shenzhen.aliyuncs.com --docker-usernameops_acr1060896234 --docker-passwordpasswd --docker-emailDOCKER_EMAIL注意命名空间指定你使用的 我…...

C语言算法赛——蓝桥杯(省赛试题)

一、十四届C/C程序设计C组试题 十四届程序C组试题A#include <stdio.h> int main() {long long sum 0;int n 20230408;int i 0;// 累加从1到n的所有整数for (i 1; i < n; i){sum i;}// 输出结果printf("%lld\n", sum);return 0; }//十四届程序C组试题B…...

【文本到上下文 #2】:NLP 的数据预处理步骤

一、说明 欢迎阅读此文&#xff0c;NLP 爱好者&#xff01;当我们继续探索自然语言处理 (NLP) 的广阔前景时&#xff0c;我们已经在最初的博客中探讨了它的历史、应用和挑战。今天&#xff0c;我们更深入地探讨 NLP 的核心——数据预处理的复杂世界。 这篇文章是我们的“完整 N…...

Minio文件分片上传实现

资源准备 MacM1Pro 安装Parallels19.1.0请参考 https://blog.csdn.net/qq_41594280/article/details/135420241 MacM1Pro Parallels安装CentOS7.9请参考 https://blog.csdn.net/qq_41594280/article/details/135420461 部署Minio和整合SpringBoot请参考 https://blog.csdn.net/…...

Asian Beauty Z-Image Turbo效果展示:不同光照角度(侧逆光/伦勃朗光/蝴蝶光)表现

Asian Beauty Z-Image Turbo效果展示&#xff1a;不同光照角度&#xff08;侧逆光/伦勃朗光/蝴蝶光&#xff09;表现 在摄影艺术中&#xff0c;光线是塑造人物灵魂的画笔。侧逆光勾勒轮廓&#xff0c;伦勃朗光刻画戏剧&#xff0c;蝴蝶光则带来柔和与优雅。对于专注于东方美学…...

如何用轻量工具实现Windows 11系统深度净化?

如何用轻量工具实现Windows 11系统深度净化&#xff1f; 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简化和改善你的Wi…...

Pixel Dream Workshop 算法原理浅析:从扩散模型到创意生成

Pixel Dream Workshop 算法原理浅析&#xff1a;从扩散模型到创意生成 1. 引言&#xff1a;理解扩散模型的价值 最近两年&#xff0c;扩散模型在图像生成领域掀起了一场革命。从最初的DALLE到Stable Diffusion&#xff0c;再到各种创意生成工具&#xff0c;这项技术正在改变我…...

SJA1105Q升级踩坑记:RGMII V2.0时序下,33Ω串阻为何成了千兆通信的‘隐形杀手’?

SJA1105Q升级中的RGMII V2.0时序陷阱&#xff1a;33Ω串阻如何摧毁千兆通信稳定性 当NXP SJA1105Q这款号称"增强版"的工业交换机芯片落到我们硬件工程师手中时&#xff0c;谁曾想PCB上那些看似无害的33Ω小电阻&#xff0c;竟会成为千兆通信系统的阿喀琉斯之踵。这不…...

为什么你的Monte Carlo期权定价结果总偏差>8%?:揭秘随机数种子、路径步长与方差缩减的3重陷阱

第一章&#xff1a;Monte Carlo期权定价偏差的典型现象与问题界定Monte Carlo方法在欧式、亚式及路径依赖型期权定价中广泛应用&#xff0c;但其数值结果常表现出系统性偏差——并非源于算法逻辑错误&#xff0c;而是由随机采样、方差结构与边界处理等多重因素耦合所致。实践中…...

开源像素艺术生成工具上手指南:像素幻梦2.0-Stable镜像免配置部署

开源像素艺术生成工具上手指南&#xff1a;像素幻梦2.0-Stable镜像免配置部署 1. 像素幻梦简介 像素幻梦(Pixel Dream Workshop)是一款基于FLUX.1-dev扩散模型构建的下一代像素艺术生成工具。它采用16-bit像素工坊风格的视觉设计&#xff0c;为创作者提供沉浸式的AI绘图体验。…...

4个强大的开源工具功能扩展方案

4个强大的开源工具功能扩展方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial request limit. / Too many fre…...

避坑指南:Double DQN和Dueling DQN在TensorFlow 2.x中的5个常见实现错误

Double DQN与Dueling DQN在TensorFlow 2.x中的五大工程陷阱与解决方案 当你在深夜调试强化学习模型时&#xff0c;是否遇到过这种情况&#xff1a;训练曲线像过山车一样剧烈波动&#xff0c;明明采用了Double DQN或Dueling DQN这些改进算法&#xff0c;效果却比基础DQN还要差&a…...

AI教材生成大揭秘!工具选择与低查重教材编写的实用干货

在教材编写的过程中&#xff0c;许多编辑者常常会感到遗憾&#xff1a;尽管正文章节已经经过了反复打磨&#xff0c;但因为缺乏必要的配套资源&#xff0c;整体教学效果却受到影响。课后练习的设计需要具有层次感&#xff0c;但缺乏灵活的想法&#xff1b;教学课件希望能做到形…...

从零封装一个 Vue 低代码表单组件:我是如何借鉴 FcDesigner 的设计思路的

从零封装一个 Vue 低代码表单组件&#xff1a;我是如何借鉴 FcDesigner 的设计思路的 低代码开发正在改变前端工程师的工作方式。作为一名长期深耕表单领域的前端开发者&#xff0c;我曾参与过多个企业级低代码平台的搭建&#xff0c;也经历过从零开始封装表单组件的完整周期。…...