当前位置: 首页 > 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,得到相同结果 

http://www.lryc.cn/news/284835.html

相关文章:

  • 使用Rancher管理Kubernetes集群
  • QT中操作word文档
  • 纯前端在线Office文档安全预览之打开Word文档后禁止打印、禁止另存为、禁止复制
  • 李沐深度学习-d2lzh_pytorch模块实现
  • 什么是OSPF?为什么需要OSPF?OSPF基础概念
  • Java多线程并发篇----第二十六篇
  • list下
  • 【Linux】进程间通信——system V 共享内存、消息队列、信号量
  • 网络卡问题排查手段
  • 20240119-子数组最小值之和
  • c# 释放所有嵌入资源, 到某个本地文件夹
  • Unity SnapScrollRect 滚动 匹配 列表 整页
  • 网络命令ping和telnet
  • ros2学习笔记-CLI工具,记录命令对应操作。
  • 自然语言处理的发展
  • flink operator 拉取阿里云私有镜像(其他私有类似)
  • C语言算法赛——蓝桥杯(省赛试题)
  • 【文本到上下文 #2】:NLP 的数据预处理步骤
  • Minio文件分片上传实现
  • C语言总结十一:自定义类型:结构体、枚举、联合(共用体)
  • 解决Spring Boot应用打包后文件访问问题
  • 循环神经网络的变体模型-LSTM、GRU
  • 视频图像的color range简介
  • tcp的三次握手
  • unity 矩阵探究
  • MySQL---单表查询综合练习
  • Python项目——搞怪小程序(PySide6+Pyinstaller)
  • MySQL练习题
  • vue-项目打包、配置路由懒加载
  • 词语的魔力:语言在我们生活中的艺术与影响