day14 HTTPServlet

news2024/11/19 21:23:36

HTTP协议

含义:是TCP、IP协议之上的应用层协议

作用:规定浏览器和服务器数据之间的交互格式

注意:该协议的端口为80,Tomcat是8080

http的特点

1.无状态,无记忆

2.“1.0”版本需要多次请求和响应,1.1一次连接后可以处理多个请求

3.基于请求和响应

4.简单快速,灵活

请求:浏览器访问服务器的过程

响应:服务器响应数据给浏览器

浏览器发送请求(request)的结构极其内容

请求行:请求的方式,地址,协议,版本

请求头:有键值对组成

请求体:浏览器向服务其发送想要什么数据的请求,只有post有请求体,get没有请求体,可以在html文件中设置method=“post”进行规定

请求方发post和get的区别

postget
地址栏发送的数据不在地址栏显示发送的数据会在地址栏显示
大小没有限制不能大于2k
安全性安全不安全,
缓存没有使用缓存使用了缓存

服务器响应(response)数据的结构和内容

响应行:响应的方式,地址,协议,版本

响应头:有键值对组成,服务器返回给浏览器的

响应体:服务器发送数量给浏览器

常见的状态码及其含义

状态码含义
200服务器正常响应
302页面进行跳转
304服务器告诉浏览器使用本地缓存
404请求的资源找不到
405servlet执行doget和dopost方法
500通常是java代码出问题

servlet(处理请求和响应)

含义:是一种动态的web资源,用于连接服务器

总结:servlet运行在web服务器,由java编写的程序,用于连接后端

servlet的开发方式(资源名称使用/开头)

先要导入javax.api.jar包

将一个类实现Servlet接口,并重写里面的方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cyu60bzo-1684894010717)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411191155237.png)]

方法1.写web.xml文件

<servlet>
    <!--名字一般使用实现类的名字命名-->
    <servlet-name>HellowServlet</servlet-name>
    <!--tomcat根据servlet的全限定名创建对象-->
    <servlet-class>cn.wolfcode._01_hellow.HellowServlet</servlet-class>
</servlet>
        
<servlet-mapping>
    <servlet-name>HellowServlet</servlet-name>
    <!--
    给外界提供一个访问当前servlet的资源名称
    注意:必须使用/开头
    -->
    <url-pattern>/hellow</url-pattern>
</servlet-mapping>

使用浏览器对别名进行访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9f9yPDYa-1684894010720)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411191624722.png)]

方式2:在类名上方添加WebServlet注解,里面要加"/"

注解中的name可以不用,默认使用的类名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyROz1VP-1684894010721)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411191918823.png)]

Servlet的生命周期[单例,使用的缓存池]

**Servlet创建对象:**tomcat第一次访问时创建,只有一次

**初始化操作(init)😗*只初始化一次

**运行操作(service)😗*可以多次处理请求和响应

**销毁操作(destory)😗*正常关闭服务器时销毁Servlet对象

servelet的请求流程(接口)

**1.请求:**http://localhost:80/life

**2.localhost:**主机

**3.80端口,**tomcat

4.上下文路径:/,表示当前项目名称是空,可以省略,不存在404

5.资源路径:/life,确定唯一的web资源(静态的,动态的),不存在404

6.启动服务器:加载相关的配置文件(注解/xml),资源路径与类的全限定名一致

7.检查当前Sservlet是否创建:使用的缓存

8.根据资源名称找到对应类的全限定名

9.使用反射创建对象

10.创建ServletConfig对象,调用init方法,完成初始化操作

11.创建ServletRequest和ServletRespons对象,调用service方法队请求的客户端做出响应

servelet的请求流程(继承)

1.找到AServlet对象

2.Tomcat调用service中的(ServletRequest servletRequest, ServletResponse servletResponse)

3.AServlet中没有该方法,找父类(HTTPServlet)中的service并执行

4.调用service(HttpServletRequest req,HttpServletReponse resq)方法

5.如果AServlet中没有重写该方法,则执行父类中的方法,此时需要AServlet重写doGet和doPost方法,否则报错405

6.如果AServlet重写了该方法,则执行AServlet中的service方法

Servlet 的继承体系

HttpServlet 继承 GenericServlet

GenericServlet实现Servlet ,ServletConfig

**GenericServlet作用:**用于处理各种协议发出的请求和响应

HttpServlet的作用: 专门用于处理HTTP协议发送的请求和响应

ServletConfig 对象

作用:用于解决Servlet初始化时硬编码问题

使用**servletConfig.getInitParameter(“对象”)**进行解决

有两种方法获取ServletConfig对象

方法1.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YuFB5rMC-1684894010722)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411201147032.png)]

方法2.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mEX5SM4E-1684894010722)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411201242369.png)]

loadOnStartup 属性(取值越小越先加载:1-10)

作用:在启动web服务器的时候就创建对象,减少第一个用户访问时的等待时间

方式1:在web-xml中进行配置,下面1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nbgcGatD-1684894010723)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411214349987.png)]

面进行添加loadOnStartup = 1,里面的注解名需要添加value

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGzUgFfc-1684894010724)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411214407679.png)]

细节

1.一个 中写多个

2.一个 对应多个

3.通配符映射"*"

格式说明
/* ,/目录名/*匹配该目录下所有的地址
*.扩展名匹配某个扩展名结尾的访问地址

注意:中不能叫default和jsp

格式说明
/* ,/目录名/*匹配该目录下所有的地址
*.扩展名匹配某个扩展名结尾的访问地址

注意:中不能叫default和jsp

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

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

相关文章

CentOS 7 离线安装MySQL

MySQL下载官网&#xff1a; https://downloads.mysql.com/archives/community/ 文章使用的MySQL版本下载地址&#xff1a; https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz 一、卸载旧的mysql 1、删除MySQL的安装文件 [rootwww ~]# …

软件设计师 计算机网络

名字带IP AP的都是网络层 所有带T的除了TFTP其他都是TCP&#xff0c;所有不带T的除了POP3其他都是UDP​ **物理层的互联设备有中继器和集线器&#xff0c;集线器是一种特殊的多路多端口中继器 网络层&#xff1a;路由器 物理层&#xff1a;中继器 数据链路层&#xff1a;网桥…

推动解决新能源电车充电不便的难题

安科瑞虞佳豪 新一轮科技革命和产业变革的蓬勃发展&#xff0c;加速了汽车与能源、交通、信息通信等领域的深度融合&#xff0c;汽车产业朝着电动化、智能化、网联化方向前行&#xff0c;新能源汽车产业迎来了前所未有的发展机遇。花生好车紧跟发展潮流和趋势&#xff0c;大力…

数据结构:二叉树的顺序结构--堆

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下栈和队列方面的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通…

代码随想录算法训练营day50 | 123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV

代码随想录算法训练营day50 | 123.买卖股票的最佳时机III&#xff0c;188.买卖股票的最佳时机IV 123.买卖股票的最佳时机III解法一&#xff1a;动态规划 188.买卖股票的最佳时机IV解法一&#xff1a;动态规划 总结 123.买卖股票的最佳时机III 教程视频&#xff1a;https://www…

【NovelAI 小说SD批量生成 视频克隆】环境配置和使用方法

【样品】《我在东北立堂口》图生图半自动版SD一键成片 操作步骤&环境配置地址&#xff1a; 【NovelAI】月产10000全自动批量原创小说短视频支持文生图和视频克隆 该文章面向购买脚本的付费用户&#xff0c;提供所有问题以及解决办法。使用 notepad 打开对应的文件即可&…

光敏晶体管(ALS-PT19-315C/L177/TR8) 光照度和电压,电流关系分析.

背景 当我们使用光敏晶体管进行,测算光照度时,大多使用ADC电路测到电压. 那么怎么根据这个电压计算出对应具体的光照度呢? 下面将以 ALS-PT19-315C/L177/TR8 型号的 光敏晶体管为例,来进行分析介绍,并给出 如何根据最大光照度范围 选定合适的电阻和电容. 1,直接看数据手册给…

如何快速录制电脑屏幕?教您一键录屏的3种方法!

案例&#xff1a;如何快速录制电脑屏幕&#xff1f; 【打开录屏工具录制电脑屏幕&#xff0c;需要耗费一定的时间。有没有方法可以快速打开电脑录屏工具&#xff0c;实现一键录屏&#xff1f;】 随着互联网的发展和普及&#xff0c;电脑屏幕录制已经成为了一项必要的工作技能…

R语言实践——rWCVP入门

rWCVP入门 介绍1. 访问到WCVP1.1 方法一1.2 方法二&#xff08;谨慎&#xff09; 2. WCVP数据筛选2.1 关于按分类单元筛选的说明2.2 关于按分布区域筛选的说明 笔者实践 介绍 世界维管植物名录&#xff08;WCVP&#xff09;是维管植物物种的全球共识。它提供了科学已知的> …

Flink用户自定义连接器(Table API Connectors)学习总结

文章目录 前言背景官网文档概述元数据解析器运行时的实现 自定义扩展点工厂类Source扩展Sink和编码与解码 自定义flink-http-connectorSQL示例具体代码pom依赖HttpTableFactoryHttpTableSourceHttpSourceFunctionHttpClientUtil 最后参考资料 前言 结合官网文档和自定义实现一…

Leetcode | 1534 统计好三元组

1534 统计好三元组 文章目录 [1534 统计好三元组](https://leetcode.cn/problems/count-good-triplets/description/)题目解法1 暴力穷举解法2 枚举优化 题目 给你一个整数数组 arr &#xff0c;以及 a、b 、c 三个整数。请你统计其中好三元组的数量。 如果三元组 (arr[i], a…

怎么把录音转文字?推荐你这三款工具

随着科技不断发展&#xff0c;录音转文字的技术也逐渐被广泛应用于各种场景中。其中最常见的一种就是会议记录。在日常工作中&#xff0c;会议是企业和组织中必不可少的一个环节&#xff0c;但在会议过程中的录音和记录往往需要花费大量的时间和精力。这个时候&#xff0c;我们…

【AI聊天丨 ChatGPT应用案例一】— 仅用30分钟,ChatGPT帮你完成专利交底书!

Hi&#xff0c;大家好&#xff0c;我是零点壹客&#xff0c;今天主要也是想和大家一起唠唠ChatGPT&#xff0c; 尤其这两个月&#xff0c;ChatGPT出奇的火&#xff0c;想必各位圈友们或多或少的都已经有些了解。 ChatGPT的出现很大程度上已经改变了我们的工作方式&#xff0c;尤…

GPT4限制被破解!ChatGPT实现超长文本处理的新方法

目录 前言 使用chat-gpt过程中有哪些痛点 1.无法理解人类情感和主观性 2.上下文丢失 3.约定被打断 那如何去解决这个痛点 Transformer&#xff08;RMT&#xff09;怎么去实现的 1.Transformer 模型 2.RMT模型 3.计算推理速率 4.渐进学习能力 总结 写到最后 大家好…

DeepPyramid:在白内障手术视频中实现金字塔视图和可变形金字塔接收的语义分割

文章目录 DeepPyramid: Enabling Pyramid View and Deformable Pyramid Reception for Semantic Segmentation in Cataract Surgery Videos摘要本文方法模块细节 实验结果 DeepPyramid: Enabling Pyramid View and Deformable Pyramid Reception for Semantic Segmentation in …

探秘 | 简说IP地址以及路由器的功能究竟是什么?

我们都知道我们在上网的时候都有一个IP地址&#xff0c;用来和其他人进行通信和数据交换。 其中IP地址又分为内网地址和外网地址&#xff0c;也叫作私有地址和公有地址。 为什么要区分私有地址和公有地址呢&#xff1f;原因很简单&#xff0c;因为公有的IP地址不够使用了&…

UnityVR--组件4--Ray/Raycast/Linecast/OverlapSphere

目录 Ray/Raycast/Linecast//OverlapSphere简介 Ray类 Physics.Raycast方法 应用1&#xff1a;实现鼠标点击出射线并检测物体 应用2&#xff1a;实现鼠标点击拖拽物体 Physics.Linecast和Physics.OverlapSphere 应用3&#xff1a;进入范围时触发攻击 Ray/Raycast/Lineca…

day13 网络编程Tomcat服务器

c/s架构和b/s架构的区别 c/s架构:客户端软件,直观,体验好,界面美观,安全性高 b/s架构:浏览器–>服务器,可移植性好,开发和维护性好 网络访问的三要素:ip,端口,协议 udp协议和tcp协议的区别 udp协议:只管发送,不管发送到哪里,是否能不能接收,一对多,无连接通信协议 ​ …

蓝桥:前端开发笔面必刷题——Day3 数组(三)

文章目录 &#x1f4cb;前言&#x1f3af;两数之和 II&#x1f4da;题目内容✅解答 &#x1f3af;移除元素&#x1f4da;题目内容✅解答 &#x1f3af;有序数组的平方&#x1f4da;题目内容✅解答 &#x1f3af;三数之和&#x1f4da;题目内容✅解答 &#x1f4dd;最后 &#x…

混沌演练实践(二)-支付加挂链路演练 | 京东云技术团队

1. 背景 当前微服务架构下&#xff0c;各个服务间依赖高&#xff0c;调用关系复杂&#xff0c;业务场景很少可以通过一个系统来实现&#xff0c;常见的业务场景实现基本涉及多个上下游系统&#xff0c;要保证整体链路的稳定性&#xff0c;需要尽量减少系统之间的耦合性&#x…