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

【JavaEE】_HttpServlet类

目录

1. init方法

2. destory方法

3. service方法

4. servlet生命周期


前文已经提及到:servlet是tomcat提供的,用于操作HTTP协议的一组API,可以将这组API理解为HTTP服务器的框架;

编写一个servlet程序,往往都要继承HttpServlet类,重写里面的方法,而无需写一个main方法;

对于以往的程序,可将程序视为一辆汽车,main方法就是发动机;

对于servlet程序,可将servlet程序视为一辆火车的车厢,这个程序没有main方法,不是直接运行的,而是放到tomcat上运行的,而tomcat程序是有main方法的,tomcat就是火车头,写的webapp就是车厢。而继承HttpServlet类,重写其方法,就是把程序员自己定义的代码插入到tomcat中;

1. 核心方法

方法名称调用时机
init在HttpServlet实例化之后被调用一次
destroy在HttpServlet实例不再使用的时候调用一次
service收到HTTP请求的时候调用
doGet收到GET请求时调用(由service方法调用)
doPost收到POST请求时调用(由service方法调用)
doPut/doDelete/do Options/...收到其他请求时调用(由service方法调用)

注意:1. 以上方法均可在子类中重写; 

2. 以上方法被重写后,均不需要程序员手动调用,都是tomcat在合适的时机自行调用

2. init方法

1. init方法在Servlet被实例化之后自动执行,用于完成初始化操作

3. destory方法

1. destory方法在Servlet被销毁之前自动执行,用于释放资源

2. destory方法很大概率是执行不到的,一个Servlet不用了,说名tomcat要关闭了,tomcat关闭有两种方式:

(1)直接销毁tomcat进程,这种情况下完全来不及调用destory;(更常见)

(2)通过8005管理端口,给tomcat发送停机指令,调用destory关闭tomcat;

4. service方法

1. service方法在每次收到HTTP请求时自动执行,用于处理请求与计算响应

2. 如果不重写service,父类(HttpServlet)的service就会根据请求的方法,分别调用doGet或doPost或doPut方法;

例如:

.java内容如下:

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 doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("doPost");resp.getWriter().write("doPost");}@Overrideprotected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doPut");resp.getWriter().write("doPut");}@Overrideprotected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doDelete");resp.getWriter().write("doDelete");}
}

使用Postman构造一个post请求进行测试:

同理构造doPut方法和doDelete方法进行发送;

在服务器日志端也可查看到记录:

5. servlet生命周期

开始时,执行 init;

每次收到请求,执行 service;

销毁前执行 destroy;

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

相关文章:

  • 11-pytorch-使用自己的数据集测试
  • 数据安全之路:深入了解MySQL的行锁与表锁机制
  • 【深度学习】Pytorch 教程(十二):PyTorch数据结构:4、张量操作(3):张量修改操作(拆分、拓展、修改)
  • 适合新手博主站长使用的免费响应式WordPress博客主题JianYue
  • FPGA OSERDESE2
  • 如何卸载Erlang以及RabbitMQ
  • ros自定义action记录
  • 挑战30天学完Python:Day18 正则表达式
  • 力扣● 343. 整数拆分 ● 96.不同的二叉搜索树
  • 游戏同步+游戏中的网络模块
  • 【03】逆序数组
  • 基于Prony算法的系统参数辨识matlab仿真
  • 创建第一个React项目
  • Redis篇之Redis持久化的实现
  • dpdk环境搭建和工作原理
  • 接口测试实战--自动化测试流程
  • babylonjs中文文档
  • WordPress使用
  • IDEA 2021.3激活
  • 进度条小程序
  • K8S安装部署
  • AI大模型与小模型之间的“脱胎”与“反哺”(第一篇)
  • C#学习总结
  • 计算机网络-网络互联
  • 免费的ChatGPT网站( 7个 )
  • Opencv3.2 ubuntu20.04安装过程
  • OpenGL ES (OpenGL) Compute Shader 计算着色器是怎么用的?
  • Python爬虫进阶:爬取在线电视剧信息与高级检索
  • Floor报错原理详解+sql唯一约束性
  • Arduino中安装ESP32网络抽风无法下载 暴力解决办法 python