servlet的执行顺序

news2025/7/10 12:11:07

执行的时候Tomcat先初始化 然后调用 server 根据server来回调请求方式下面会追入源码解释

package com.haogu.servlet;


import javax.servlet.ServletConfig;
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(value = {"/hello","/hello2"},loadOnStartup = 1)
public class HelloServlet extends HttpServlet {



    /**
     * 1.查看源码的方式
     *   1.1 查看HttpServlet数据类型  abstract class
     *   1.2 继承之后查看是否有必须实现的抽象方法  HttpServlet 没有抽象方法
     *   1.3 查看继承关系
     *         Servlet, ServletConfig, Serializable
     *   1.4 查看里面的常量、变量
     *       看完源码知道 七种提交方式 DELETE HEAD GET POST PUT TRACE OPTIONS
     *   1.5 查看里面的方法
     *       service 接受所有的方法,然后根据发送过来的请求分发到对应的方法里面
     *       init 初始化方法  只会初始化一次
     *       destroy 销毁方法
     *
     *      HttpServlet生命周期
     *      1.构造器 ,init初始化 init初始化配置文件
     *      2.每次接受到请求的时候tomcat都会先使用servlet里面的service方法
     *      3.service方法会根据请求方式分发到不同的对应方法里面
     *      4.当服务器关闭的时候会销毁对象,会执行destroy方法
     *
     *
     *
     *      http://localhost:8080/hello?user=admin&pwd=123
     *      协议://ip地址:端口号/资源路径?参数1 = 参数值1 & 参数2 = 参数值2
     *
     *      web项目的工程目录
     *      src : 放置java文件的
     *      web:放置前端页面\ CSS \ JS
     *          WEB-INF:
     *              放置内部资源的:用户无法直接访问
     *
     * */

    public HelloServlet() {
        System.out.println("1.------------------------本身的构造器");
    }


    @Override
    public void init() throws ServletException {
        System.out.println("2.------------------------init初始化");
    }


    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("2.------------------------init初始化config");
    }


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("3.------------------------service");
        this.doGet(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("4.------------------------doGet");
    }

    @Override
    public void destroy() {
        System.out.println("5.------------------------destroy");
    }
}

追入继承的Httpservlet找到service方法 根据和这个方法来进行方法的回调。

 如果想要你的web前端输入的数据传入数据库,要把导入的jar包放置在web目录下的WEB-INF文件下,否则会报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2040433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++二分查找】1954. 收集足够苹果的最小花园周长

本文涉及的基础知识点 C二分查找 LeetCode1954. 收集足够苹果的最小花园周长 给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff…

Windows平台RTSP|RTMP播放器如何实现实时录像功能

技术背景 RTSP、RTMP直播播放,这里不再赘述,我们可以很轻松的实现毫秒级的延迟体验,这里讲的是如何实现RTSP、RTSP流的实时录像功能。 我们理解的录像,可能觉得,只要有个开始录像、停止录像接口就够了,实…

mysql速起架子

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 下载mysql tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 解压 mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0 改名 去到bin目录 cd bin mkdir data gr…

【48 Pandas+Pyecharts | 2024年巴黎奥运会奖牌数据分析可视化】

PandasPyecharts | 2024年巴黎奥运会奖牌数据分析可视化 文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 处理奖牌数据2.3 统计各参数国家/地区奖牌数据 🏳️‍🌈 3. Pyecharts数…

《Unity3D网络游戏实战》通用服务器框架

服务端程序的两大核心是处理客户端的消息和存储玩家数据 模块划分 游戏流程 连接阶段:客户端调用Connect连接服务端即为连接阶段。连接后双端即可通信,但服务端还不知道玩家控制的是哪个角色。于是客户端需要发送一条登录协议,协议中包含用户…

【Rust】使用开源项目搭建瓦片地图服务

本文通过获取在线和离线地图数据,使用开源Rust项目搭建瓦片地图服务,并使用DevExpress的MapControl控件使用自建地图服务 获取地图数据 获取地图数据有很多种方式,这里分别用在线和离线地图数据举例说明 在线下载瓦片地图 打开在线瓦片地…

Java开发代码规范文档

一、命令规范 包命名规范 包Package的作用是将功能相似或相关的类或者接口进行分组管理,便于类的定位和查找,同时也可以使用包来避免类名的冲突和访问控制,使代码更容易维护。通常,包命使用小写英文字母进行命名,并使…

Mysql(三)---增删查改(基础)

文章目录 前言1.补充1.修改表名1.2.修改列名1.3.修改列类型1.4.增加新列1.5.删除指定列 2.CRUD3.新增(Create)3.1.单行插入3.2.指定列插入3.3.多行插入 4.数据库的约束4.1.约束的分类4.2.NULL约束4.3.Unique约束4.4.Default 默认值约束4.5.PRIMARY KEY:主键约束4.6.…

文件共享服务NFS(服务名nfs,端口tcp/2049)

目录 前言 配置文件 工作原理 NFS服务器的配置 查看服务器是否安装 查看服务器状态 开启服务 编写配置文件 客户端挂载 前言 NFS(Network File System)是一种分布式文件系统协议,它允许网络中的不同计算机共享文件和目录&#xff0…

[网鼎杯2018}fakebook靶场思路,MariaDB注入,通关教程前言

靶场链接:BUUCTF在线评测[%E7%BD%91%E9%BC%8E%E6%9D%AF%202018]Fakebook Tips:更多优质【网络安全】文章主页 你的00后专属网安学习搭子-羽~ 教程 首页 sql万能密码 登录失败 注册一个账号试试 当前页面好像也没有什么注入点 目录扫描 访问 得到user.ph…

用R语言进行绝对值运算、平方根运算和三角函数运算

下面内容摘录自《R 语言与数据科学的终极指南》专栏文章的部分内容,每篇文章都在 5000 字以上,质量平均分高达 94 分,看全文请点击下面链接: 3章3节:R的赋值操作与算术运算_r 链式赋值-CSDN博客文章浏览阅读172次。掌…

代码随想录算法训练营43期 | Day 14——226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、二叉树最小深度

代码随想录算法训练营 226.翻转二叉树101. 对称二叉树递归法 104.二叉树的最大深度二叉树最小深度 226.翻转二叉树 leetcode链接 思路: 递归三部曲: 确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑 递归法 TreeNode* invertTreeNode(Tree…

谷歌「Her」来啦!发布Gemini Live语音模式,现场演示两次翻车

重磅惊喜! 今天,在MadeByGoogle发布会上,谷歌公布了 AI语音助手 Gemini Live,对标的正是GPT-4o,而且是两周前开放测试的语音模式。 Gemini Live 可以进行顺畅的语音交流,听从语音指令,可以随时…

设计模式21-组合模式

设计模式21-组合模式(Composite Pattern) 写在前面 动机定义与结构定义结构主要类及其关系 C代码推导优缺点应用场景总结补充叶子节点不重载这三个方法叶子节点重载这三个方法结论 写在前面 数据结构模式 常常有一些组件在内部具有特定的数据结构。如何…

StreamUtils 流处理工具

一、工具类展示 提供对集合的过滤、拼接、排序、MAP转化、分组、转为SET集合等方法 /*** stream 流工具类**/ NoArgsConstructor(access AccessLevel.PRIVATE) public class StreamUtils {/*** 将collection过滤** param collection 需要转化的集合* param function 过滤方法…

【Linux Install】Ubuntu20, Windows10 双系统安装

1. 制作启动盘 1.1 下载 Ubuntu 系统镜像 ISO 文件 从 Ubuntu 官网下载 (https://cn.ubuntu.com/download/desktop)。官网访问慢的,从国内镜像点下。 1.2 烧录 Ubuntu ISO 镜像 下载 Rufus:从Rufus官网下载 Rufus 工具。 插入U 盘:将U盘插…

mysql-增添轮播图

使用工具Navicat连接mysql: 首先 然后 需要注意的是需要上面两个步骤执行之后,再点击连接测试才可以成功,其他单独连接测试都不成功,然后点击确定即可!!!!! MySQL修改: 首先,进入mysql mysql -u root -p 密码忘记参考教程:Linux错误 ERROR 1045 (28000): Acce…

数据结构入门——07堆

1.堆 堆(Heap)是一种特殊的完全二叉树数据结构,具有以下两个主要特性: 结构特性: 堆是一棵完全二叉树,即除了最后一层的叶子节点外,每一层都是满的,最后一层的叶子节点从左向右依次…

西安国际数字影像产业园作为一个数字创意孵化园的实际情况怎么样?

在科技飞速发展的今天,数字创意产业正迅速崛起,成为全球经济的新增长点。西安国际数字影像产业园作为中国西部数字创意产业的领军者,凭借其独特的优势和发展策略,迅速崭露头角,成为全国瞩目的焦点。那么,是…

前端统计SDK设计和实现

前端统计的范围 访问量 PV自定义事件性能,错误 前端统计的实现 发送统计数据 不用 axios ( 因为统计服务器通常由第三方提供,需要跨域 ),而用 img 发送,因为可跨域,且兼容性非常好 自定义事件的统计 pv 的统计 性能…