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

servlet的执行顺序

执行的时候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.------------------------本身的构造器");}@Overridepublic void init() throws ServletException {System.out.println("2.------------------------init初始化");}@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("2.------------------------init初始化config");}@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("3.------------------------service");this.doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("4.------------------------doGet");}@Overridepublic void destroy() {System.out.println("5.------------------------destroy");}
}

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

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

相关文章:

servlet的执行顺序

执行的时候Tomcat先初始化 然后调用 server 根据server来回调请求方式下面会追入源码解释 package com.haogu.servlet;import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.…...

Go语言 类封装和绑定方法

本篇文章主要内容为Go语言类相关操作:封装和绑定方法介绍及示例。 目录 封装 绑定方法 类方法形参 指针形参 设置类方法参数 指针与非指针区别 总结 封装 go语言支持类的操作,但是没有class关键字,使用struct来模拟类。 示例如下&am…...

DirectShow过滤器开发-写WAV音频文件过滤器

下载本过滤器DLL 本过滤器将PCM音频流,或ADPCM,IEEE_FLOAT,ALAW,MULAW,GSM610音频流写入WAV音频文件。 写WAV音频文件过滤器信息 过滤器名称:写WAV 过滤器GUID:{CF704A9C-0C67-4712-BA33-DD0A…...

php根据截止时间计算剩余的时间,并且在剩余时间不足1天时仅显示小时数

//获取政策库文章public function getIndexZckList(){$fl_id = input(fl_id);if(empty(...

Docker最佳实践进阶(一):Dockerfile介绍使用

大家好,上一个系列我们使用docker安装了一系列的基础服务,但在实际开发过程中这样一个个的安装以及繁杂命令不仅仅浪费时间,更是容易遗忘,下面我们进行Docker的进阶教程,帮助我们更快速的部署和演示项目。 一、什么是Dockerfile? Dockerfile 是一个文本文件,其中包含了…...

Anything in Any Scene:无缝融入任何场景,实现逼真视频对象插入技术

人工智能咨询培训老师叶梓 转载标明出处 现实世界的视频捕获虽然因其真实性而宝贵,但常常受限于长尾分布的问题,即常见场景过度呈现,而关键的罕见场景却鲜有记录。这导致了所谓的"分布外问题",在模拟复杂环境光线、几何…...

安卓开发中的AppCompat框架|安卓系统|安卓应用|兼容性|UI组件|核心组件|ActionBar|Fragment|最佳实践|框架|移动开发|移动应用

目录 1. 什么是AppCompat框架 1.1 AppCompat的起源 1.2 AppCompat的重要性 2. AppCompat框架的核心组件 2.1 AppCompatActivity 2.2 AppCompat主题 2.3 AppCompat Widgets 3. 在项目中使用AppCompat框架 3.1 添加依赖项 3.2 应用AppCompat主题 4. AppCompat的高级功…...

React使用useRef ts 报错

最近在写自己的React项目&#xff0c;我在使用useRef钩子函数的时候发现 TS2322: Type MutableRefObject<HTMLDivElement | undefined> is not assignable to type LegacyRef<HTMLDivElement> | undefined Type MutableRefObject<HTMLDivElement | undefined&g…...

python-信息交互-pyautogui

python-信息交互-pyautogui 一: pyautogui1> waht?2> 功能分类3> 概念及作用二: 通用功能1> function all2> function 注释三: 鼠标控制1> mouse functions2> mouse functions demo3> mouse drag demo四: keyboard控制1> keyboard functions2> …...

flink1.18 编译遇到的问题

1. flink-runtime-web编译失败 源码编译时一直卡在 [INFO] Running ‘npm ci --cache-max0 --no-save’ in 处理方法&#xff1a; 修改flink-runtime-web/pom.xml文件 将<arguments>ci --cache-max0 --no-save ${npm.proxy}</arguments> 替换为&#xff1a;<a…...

2024年8月份编译Openwrt系统基础

概述&#xff1a; 本文档记录openwrt系统的编译过程&#xff0c;以备后续再用&#xff0c;技术支持与指导&#xff01; 1.编译环境 环境需要Linux&#xff0c;我使用的环境是WSL2、Ubuntu 20.04 2.安装编译必须的依赖&#xff08;wsl、linux&#xff09; WSL2&#xff1a;Bu…...

Vue3+vite+ts 项目使用mockjs

1、安装mockjs npm i mockjs 2、安装vite-plugin-mock npm i vite-plugin-mock -D 3、安装axios npm i axios 4.在src目录下创建mock文件夹,在文件夹内创建login.ts等文件&#xff0c;并在文件夹内放置以下内容&#xff08;注&#xff1a;URL要和真实请求地址保持一致&am…...

动态规划(二)——例题

目录 Help Jimmy 题目 解题思路 神奇的口袋 题目 枚举的解法 递归的解法 动态规划的解法 滑雪 题目 解题思路 解法一 解法二 Help Jimmy 题目 "Help Jimmy" 是在下图所示的场景上完成的游戏&#xff1a; 场景中包括多个长度和高度各不相同的平台。地面是…...

Node.js中判断是文件还是文件夹的多种方法

在Node.js中&#xff0c;我们经常需要判断一个路径是文件还是文件夹。Node.js提供了多种方法来实现这一功能&#xff0c;本文将详细介绍这些方法&#xff0c;并给出相应的示例代码。 一、使用fs.Stats对象 在Node.js中&#xff0c;fs模块提供了fs.stat()或fs.statSync()方法&…...

idea 如何打war包

idea 如何打war包 1.在IntelliJ IDEA中打包WAR文件&#xff0c;你可以按照以下步骤操作:1.设置项目结构:首先&#xff0c;打开IDEA&#xff0c;选择File>Project Structure(或使用快捷键CtrlAltShiftS)。在打开的窗口中&#xff0c;选择 Artifacts 选项 2.添加Web Applicat…...

米联客-FPGA程序设计Verilog语法入门篇连载-15 Verilog语法_跨时钟域设计

软件版本&#xff1a;无 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用所有系列FPGA 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑&#xff01; 1概述 本小节主要讲解Verilog语法的…...

gradio 对话界面实现支持图片、视频正常显示

参考: https://www.gradio.app/docs/gradio/chatbot 问题: gradio网页输出视频nan;图片webp显示不出来 解决方法:需要通过gradio的Video、Image包装 代码: 这里下面启动个后端vlm模型(参考:https://blog.csdn.net/weixin_42357472/article/details/141126225),前端通…...

催收业务怎么提高接通率

提高催收呼叫业务的接通率是一个综合性的任务&#xff0c;需要从多个方面进行优化。以下是一些具体的策略和建议&#xff1a; 一、优化呼叫时间与频次 1. 选择合适的呼叫时间&#xff1a;通过分析目标客户的活跃时段&#xff0c;选择他们最可能接听电话的时间进行呼叫…...

动态生成sitemaps和robots.txt文件:提升SEO与网站可爬性

本文由 ChatMoney团队出品 在现代Web开发中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是网站成功的关键因素之一。搜索引擎通过网络爬虫来索引网页&#xff0c;而sitemaps和robots.txt文件则是帮助这些爬虫更好地理解和索引网站内容的重要工具。 sitemaps简介 Sit…...

LeetCode 第二十五天 2024.8.12

1. &#xff1a;递增子序列 题目链接: 491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 应用条件&#xff1a;回溯 难点&#xff1a; 这道题的难点在于如何去重&#xff0c;肯定不能像我们在组合中去重那样对数组排序。而且我们是要对每一层进行去重&#xff0c;…...

DALL-E2-pytorch训练日志完全解读指南:如何从loss曲线判断模型健康状态

DALL-E2-pytorch训练日志完全解读指南&#xff1a;如何从loss曲线判断模型健康状态 【免费下载链接】DALLE2-pytorch Implementation of DALL-E 2, OpenAIs updated text-to-image synthesis neural network, in Pytorch 项目地址: https://gitcode.com/gh_mirrors/da/DALLE2…...

ETH-01模块避坑指南:为什么HTTP协议不行而TCP直接监听成功?

ETH-01模块协议选择实战&#xff1a;从HTTP困境到TCP高效监听 第一次拿到ETH-01这个串口转以太网模块时&#xff0c;我和大多数开发者一样&#xff0c;本能地选择了HTTP协议进行通信测试。毕竟在Web开发领域&#xff0c;HTTP就像空气一样无处不在。但当我花了整整两天时间调试…...

Rock3A开发板实战:OpenBMC移植全记录(附避坑指南)

Rock3A开发板OpenBMC移植实战&#xff1a;从硬件适配到性能调优 当RK3568处理器遇上OpenBMC&#xff0c;会碰撞出怎样的火花&#xff1f;作为瑞芯微旗下性能与功耗平衡的明星芯片&#xff0c;RK3568在边缘计算领域已证明其价值。而将其应用于BMC&#xff08;基板管理控制器&…...

3个革命性功能:163MusicLyrics让音乐歌词管理效率提升10倍

3个革命性功能&#xff1a;163MusicLyrics让音乐歌词管理效率提升10倍 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 在数字音乐时代&#xff0c;歌词管理已成为音乐爱好…...

无公网IP解决方案:OpenClaw+nanobot内网穿透配置

无公网IP解决方案&#xff1a;OpenClawnanobot内网穿透配置 1. 为什么需要内网穿透&#xff1f; 去年我在尝试将OpenClaw接入家庭NAS时遇到了一个典型问题&#xff1a;没有公网IP。这意味着我无法在外网直接访问部署在家里的nanobot服务。经过多次尝试&#xff0c;最终通过内…...

【架构实战】架构师成长路线图

一、架构师的核心能力 架构师不是只会画图的技术人&#xff0c;而是能在技术、业务、团队之间找到平衡点的综合型人才。 技术深度 精通至少一个技术领域理解底层原理&#xff0c;不浮于表面持续跟踪新技术趋势 系统思维 全局视角看问题懂得权衡&#xff08;Trade-off&#xff0…...

项目分享|LLM驱动的多市场股票智能分析器

项目分享|LLM驱动的多市场股票智能分析器 引言 在股票投资分析中&#xff0c;实时行情跟踪、多维度数据解析和科学决策判断是核心需求&#xff0c;而个人投资者往往面临数据分散、分析耗时、缺乏专业工具的问题。由ZhuLinsen开源的daily_stock_analysis项目完美解决了这些痛点…...

从课程设计到实际应用:聊聊51单片机倒车雷达项目的那些优化点

从课程设计到实际应用&#xff1a;51单片机倒车雷达项目的工业级优化指南 当你完成了一个能测距、能报警的51单片机倒车雷达课程设计后&#xff0c;是否思考过这个"玩具级"项目与真正车载产品的差距&#xff1f;本文将带你跨越这道鸿沟&#xff0c;从精度、可靠性、功…...

Qwen2.5-Omni:多模态流式交互的Thinker-Talker架构与TMRoPE技术解析

1. Qwen2.5-Omni的核心设计理念 第一次接触Qwen2.5-Omni时&#xff0c;最让我惊讶的是它处理多模态数据的流畅程度。想象一下&#xff0c;你正在和AI助手讨论一段视频内容&#xff0c;它能同时理解画面中的物体、背景音乐的情绪&#xff0c;还能用自然语音回应你的问题——这就…...

解锁毕业论文新姿势:书匠策AI,你的学术“超级外挂”!

在学术的征途上&#xff0c;毕业论文无疑是每位学子必须跨越的一道重要关卡。它不仅是对你大学四年学习成果的全面检验&#xff0c;更是你迈向学术殿堂或职场的重要敲门砖。然而&#xff0c;面对堆积如山的资料、错综复杂的逻辑结构&#xff0c;以及那令人头疼的格式要求&#…...