首页 > 其他分享 >Servlet技术

Servlet技术

时间:2023-04-23 15:00:19浏览次数:49  
标签:生命周期 请求 service 方法 技术 调用 Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

Servlet 的生命周期

Servlet生命周期可被定义为从创建直到毁灭的整个过程。

三个步骤即:初始化------>处理请求------>销毁

创建Servlet对象后---------->初始化(调用 init () 方法)--------->处理/响应客户端的请求(调用 service() 方法)--------->销毁(调用 destroy() 方法,最后由 JVM 的垃圾回收器进行垃圾回收)

1)初始化阶段

当客户端向 Servlet 容器发出 HTTP 请求要求访问 Servlet 时,Servlet 容器首先会解析请求,检查内存中是否已经有了该 Servlet 对象,如果有,则直接使用该 Servlet 对象,如果没有,则创建 Servlet 实例对象,然后通过调用 init() 方法实现 Servlet 的初始化工作。需要注意的是,在 Servlet 的整个生命周期内,它的 init() 方法只能被调用一次。

2)运行阶段(处理请求)

这是 Servlet 生命周期中最重要的阶段,在这个阶段中,Servlet 容器会为这个请求创建代表 HTTP 请求的 ServletRequest 对象和代表 HTTP 响应的 ServletResponse 对象,然后将它们作为参数传递给 Servlet 的 service() 方法。

service() 方法从 ServletRequest 对象中获得客户请求信息并处理该请求,通过 ServletResponse 对象生成响应结果。

在 Servlet 的整个生命周期内,对于 Servlet 的每一次访问请求,Servlet 容器都会调用一次 Servlet 的 service() 方法,并且创建新的 ServletRequest 和 ServletResponse 对象,也就是说,service() 方法在 Servlet 的整个生命周期中会被调用多次。

3)销毁阶段

当服务器关闭或 Web 应用被移除出容器时,Servlet 随着 Web 应用的关闭而销毁。在销毁 Servlet 之前,Servlet 容器会调用 Servlet 的 destroy() 方法,以便让 Servlet 对象释放它所占用的资源。在 Servlet 的整个生命周期中,destroy() 方法也只能被调用一次。

创建Servlet有三种方法:

  1. 实现javax.servlet.Servlet接口;
  2. 继承javax.servlet.GenericServlet类;
  3. 继承javax.servlet.http.HttpServlet类;

标签:生命周期,请求,service,方法,技术,调用,Servlet
From: https://www.cnblogs.com/w2086/p/17346561.html

相关文章

  • 【网络安全知识】网络技术领域术语大全,强烈建议收藏!
    自主访问控(DAC:DiscretionaryAccessControl)自主访问控制(DAC)是一个访问控制服务,其执行一个基于系统实体身份的安全政策和它们的授权来访问系统资源。双附接集线器(DAC:Dual-attachedConcentrator)双附接集线器(DAC)是FDDI或CDDI集线器有能力接入到一个FDDI或CDDI网络的两......
  • netcore 技术栈=
    学习计划.netcore工作原理(基本用法已掌握,但是要更深入一点).netcore的IOC,DI,AOP,DDDABP框架linux(常用命令,ftp)部署.netcore应用到CentOSNginx反向代理及分布式Session在容器中部署.netCore应用通过Nginx反向代理到Docker中的.netCore容器及分布式集成(Docker,K8s,Jenkins,Gi......
  • 会话跟踪技术
    会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开链接,会话结束。在一次会话中可以包含多次请求和响应。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。HTTP协议是无状态的,每次浏览器向服......
  • 思考总结技术知识
     Kafka引以为傲的特性:顺序写、零拷贝顺序写保证高性能,写入速度快。其并不是直接刷到磁盘,而是先提交到内存缓冲区,不用太担心机器宕机数据丢失,因为有ISR成员,通过参数设置同时写入几个才代表生产者发送消息成功,只要这几个成员不同时宕机就不会有问题,为了容灾我们可以配置跨机房、......
  • 亮点预告!金蝶云·苍穹技术开放日第五期AI专场邀你围观!
    「金蝶云·苍穹技术开放日」系列活动由金蝶云苍穹平台生态部主办,迄今已成功举办三期,旨在为开发者提供技术分享和行业交流的平台。​每一期我们都会聚焦一个技术主题,邀请本领域权威技术专家和外部嘉宾分享技术研究和Madewithkingdee实践案例。​金蝶云·苍穹技术开放日第五期......
  • Servlet3无web.xml的原理
    在最新的SpringMVC中,一个web项目中无需传统的web.xml文件,这是怎么实现的呢?其实这并不是SpringMVC的功劳,而是servlet3规范以及web容器对这个规范的支持。简单使用配置引入依赖:.......<!--指定servlet版本为3.0--><dependency><groupId>javax.serv......
  • 京东小程序接入ARVR的技术方案和性能调优
    作者:京东零售戴旭京东小程序是一个开放技术平台,正在被越来越多的头部品牌选择,用于站内私域流量的营销和运营。诸如各种日化、奢侈品等品牌对ARVR有较多的诉求,希望京东小程序引擎提供一些底层能力,叠加品牌自主的个性化开发和定制,以支持更加丰富的场景和玩法,比如AR试妆、试戴等。......
  • 2 第一个servlet程序
    在上一篇文章中,我已经创建了一个javaweb的项目,下面,我们来创建第一个servlet程序1第一种方法我们先创建一个包,命名为com.test01(命名不唯一,甚至不创建也没事)在这个包内创建一个类,我这里命名为HelloServlet输入以下代码,会默认生成一些代码,我们在init函数中增加一个输出,方便我......
  • Dlib 结合 Opencv 识别技术代码资料
    结合Dlibshap64面部识别#include<dlib/opencv.h>#include<opencv2/opencv.hpp>#include<dlib/image_processing/frontal_face_detector.h>#include<dlib/image_processing/render_face_detections.h>#include<dlib/image_processing.h>......
  • 2023 目标检测技术调研
     目标是找到一个实时的,能处理1080p视频流的算法,工程实现比较靠谱的项目 yolov7https://www.analyticsvidhya.com/blog/2022/08/yolov7-real-time-object-detection-at-its-best/https://viso.ai/deep-learning/yolov7-guide/ yolov8,2023年1月份https://github.com/ul......