【JavaWeb】XML Tomcat10 HTTP

这篇具有很好参考价值的文章主要介绍了【JavaWeb】XML Tomcat10 HTTP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、XML

XML是EXtensible Markup Language的缩写, 可扩展标记语言
XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签

1.1常见配置文件类型

  1. properties文件,例如druid连接池就是使用properties文件作为配置文件
  2. XML文件,例如Tomcat就是使用XML文件作为配置文件
  3. YAML文件,例如SpringBoot就是使用YAML作为配置文件
  4. json文件,通常用来做文件传输,也可以用来做前端或者移动端的配置文件

二、Tomcat10

当前应用最广的JavaWeb服务器
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

2.1 WEB项目的标准结构

【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
app 本应用根目录

  • static 非必要目录,约定俗成的名字,一般在此处放静态资源 ( css js img)
  • WEB-INF 必要目录,必须叫WEB-INF,受保护的资源目录,浏览器通过url不可以直接访问的目录
    • classes 必要目录,src下源代码,配置文件,编译后会在该目录下,web项目中如果没有源码,则该目录不会出现
    • lib 必要目录,项目依赖的jar编译后会出现在该目录下,web项目要是没有依赖任何jar,则该目录不会出现
    • web.xml 必要文件,web项目的基本配置文件. 较新的版本中可以没有该文件,但是学习过程中还是需要该文件
  • index.html 非必要文件,index.html/index.htm/index.jsp为默认的欢迎页

2.2 Tomcat目录

  • bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat10.exe、tomcat10w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;如果是解压版,那么会有startup.batshutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA\_HOME环境变量才能启动,shutdawn.bat用来停止Tomcat;

  • conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:

    • server.xml:配置整个服务器信息。例如修改端口号。默认HTTP请求的端口号是:8080
    • tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;
    • web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!
    • context.xml:对所有应用的统一配置,通常我们不会去配置它。
  • webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的项目。

    • 其中ROOT是一个特殊的项目,在地址栏中访问:http://127.0.0.1:8080,没有给出项目目录时,对应的就是ROOT项目.http://localhost:8080/examples,进入示例项目。其中examples"就是项目名,即文件夹的名字。

2.3 WEB项目部署的方式

  1. 直接将编译好的项目放在webapps目录下
  2. 可以将项目放在非webapps的其他目录下,在tomcat中通过配置文件指向app的实际磁盘路径

在tomcat的conf下创建Catalina/localhost目录,并在该目录下准备一个app.xml文件

<!-- 
	path: 项目的访问路径,也是项目的上下文路径,就是在浏览器中,输入的项目名称
    docBase: 项目在磁盘中的实际路径
 -->
<Context path="/app" docBase="D:\mywebapps\app" />

2.4 IDEA中开发并部署运行WEB项目

部署Tomcat
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
项目SDK版本:
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
为 模块 添加依赖:
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
选择modules,添加 framework support
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
选择Web Application 注意Version,勾选 Create web.xml
tomcat9 所以4.0
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
结果:
可以删除index.jsp ,替换为 index.html
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

2.5 处理配置文件

  • 在工程下创建resources目录,专门用于存放配置文件(都放在src下也行,单独存放可以尽量避免文件集中存放造成的混乱)
  • 标记目录为资源目录,不标记的话则该目录不参与编译
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

2.6 处理依赖jar包问题

  • 在WEB-INF下创建lib目录
  • 必须在WEB-INF下,且目录名必须叫lib!!!
  • 复制jar文件进入lib目录
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
    将lib目录添加为当前项目的依赖,后续可以用maven统一解决
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
    环境级别推荐选择module 级别,降低对其他项目的影响,name可以空着不写
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
    查看当前项目有那些环境依赖
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
    在此位置,可以通过-号解除依赖

2.7 IDEA部署-运行web项目

检查idea是否识别modules为web项目并存在将项目构建成发布结构的配置
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
以及artifacts下,有没有对应 _war_exploded,如果没有,就点击+号添加
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
运行配置 Edit Configurations选项 :
里面配置 tomcat 服务器 就可以启动了
Tomcat Server
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
爆红 fix or 手动设置 :
选择Deployment,通过+添加要部署到Tomcat中的artifact
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
点击apply 应用后,回到Server部分. After Launch是配置启动成功后,是否默认自动打开浏览器并输入URL中的地址,HTTP port是Http连接器目前占用的端口号
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
浏览器自动打开并自动访问了index.html欢迎页:
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

三、HTTP

【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

HTTP 超文本传输协议 (HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议。
它是一种详细规定了浏览器和万维网服务器之间互相通信的规则
客户端发送给服务器的称为"请求报文",服务器发送给客户端的称为"响应报文"。

3.1 HTTP协议的会话方式

浏览器与服务器之间的通信过程要经历四个步骤:
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

  • 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应
  • 对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接
  • 浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对

3.2 请求和响应报文

在浏览器中通过F12工具抓取请求响应报文包
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

3.3.1 报文的格式

主体上分为报文首部和报文主体,中间空行隔开
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
报文部首可以继续细分为 “行” 和 “头”
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

3.3.2 请求报文

客户端发给服务端的报文

请求报文格式 :

  • 请求首行(请求行); GET/POST 资源路径?参数 HTTP/1.1
  • 请求头信息(请求头);
  • 空行;
  • 请求体;POST请求才有请求体
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

3.3.3 GET 与 POST

form表单发送GET请求特点 :
1、由于请求参数在请求首行中已经携带了,所以没有请求体,也没有请求空行
2、请求参数拼接在url地址中,地址栏可见[url?name1=value1&name2=value2],不安全
3、由于参数在地址栏中携带,所以由大小限制[地址栏数据大小一般限制为4k],只能携带纯文本
4、get请求参数只能上传文本数据
5、没有请求体。所以封装和解析都快,效率高, 浏览器默认提交的请求都是get请求比如:地址栏输入回车,超链接,表单默认的提交方式

查看GET请求行,请求头,请求体 :

请求行组成部分

  • 请求方式 GET
  • 访问服务器的资源路径?参数1=值1&参数2=值2 … …
  • 协议及版本 HTTP/1.1
GET /05_web_tomcat/login_success.html?username=admin&password=123213 HTTP/1.1
  • 请求头:
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
- 当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]:   
- 可以通过此路径跳转回上一个页面, 广告计费,防止盗链
Referer: http://localhost:8080/05_web_tomcat/login.html

GET请求数据不放在请求体


form表单发送post请求特点

1、POST请求有请求体,而GET请求没有请求体。
2、post请求数据在请求体中携带,请求体数据大小没有限制,可以用来上传所有内容[文件、文本]
3、只能使用post请求上传文件
4、post请求报文多了和请求体相关的配置[请求头]
5、地址栏参数不可见,相对安全
6、post效率比get低

  • POST请求要求将form标签的method的属性设置为post
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
    请求体:浏览器提交给服务器的数据
username=admin&password=1232131

3.3.4 响应报文

  • 响应首行(响应行); 协议/版本 状态码 状态码描述
  • 响应头信息(响应头);
  • 空行;
  • 响应体;
    【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
    响应行组成部分:
  • 协议及版本 HTTP/1.1
  • 响应状态码 200
  • 状态描述 OK (缺省)
HTTP/1.1 200 OK
说明:响应协议为HTTP1.1,响应状态码为200,表示请求成功; 
HTTP/1.1 304 
说明:使用本地缓存

响应头:
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat
响应体:

需要浏览器解析使用的内容[如果响应的是html页面,最终响应体内容会被浏览器显示到页面中]
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

3.3 HTTP1.1

  • HTTP1.0版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器之间开启一个新的连接;

  • HTTP1.1版本中,允许浏览器在拿到当前请求对应的全部资源后再断开连接,提高了效率。


总结

【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

Tomcat 版本 选择:

【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

工程结构和可以发布的项目结构之间的目录对应关系:
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

IDEA部署并运行项目的原理 :

ideatomcat副本部署项目的模式是通过conf/Catalina/localhost/*.xml配置文件的形式实现项目部署的(也就是使用第二种的WEB项目部署的方式(2.3)
【JavaWeb】XML Tomcat10 HTTP,# JavaWeb,后端,xml,http,tomcat

响应状态码:

响应码对浏览器来说很重要,它告诉浏览器响应的结果。比较有代表性的响应码如下:

  • 200: 请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
  • 302: 重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location指定新请求的URL地址;
  • 304: 使用了本地缓存
  • 404: 请求的资源没有找到,说明客户端错误的请求了不存在的资源;
  • 405: 请求的方式不允许
  • 500: 请求资源找到了,但服务器内部出现了错误;

更多的响应状态码:文章来源地址https://www.toymoban.com/news/detail-820084.html

状态码 状态码英文描述 中文含义
1**
100 Continue 继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
2**
200 OK 请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求
3**
300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向
4**
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 请求要求用户的身份认证
402 Payment Required 保留,将来使用
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed 客户端请求中的方法被禁止
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时
409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
410 Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412 Precondition Failed 客户端请求信息的先决条件错误
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理
415 Unsupported Media Type 服务器无法处理请求附带的媒体格式
416 Requested range not satisfiable 客户端请求的范围无效
417 Expectation Failed 服务器无法满足Expect的请求头信息
5**
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理

到了这里,关于【JavaWeb】XML Tomcat10 HTTP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于降版本Tomcat10降到Tomcat9或者Tomcat8,提示找不到jakarta.servlet.http.HttpServletRequest包的解决方法

    Tomcat10相较于Tomcat9和8,在Servlet方面,对于javax.servlet包名改为了jakarta.servlet。 当你目前的项目是使用Tomcat10进行部署的,然后页面提示没有找到javax.servlet.http.HttpServletRequest包时,只有两种方法: 1、就是在Tomcat10的包下找到lib下的servlet-api.jar包 ,详情请看我上一篇文章:关于

    2024年01月25日
    浏览(42)
  • Tomcat主配置文件(server.xml)详解

    前言 Tomcat主配置文件( server.xml )是Tomcat服务器的主要配置文件,文件位置在conf目录下,它包含了Tomcat的全局配置信息,包括监听端口、虚拟主机、安全配置、连接器等。 目录 1 server.xml组件类别 2 组件介绍 3 server.xml配置文件详解 4 主要参数详解  4.1 Connector主要参数详解

    2024年02月05日
    浏览(41)
  • JavaWeb《后端内容:1. Tomcat - Servlet - Thymeleaf》

    目录 1. 基础概念 1.1 BS架构和CS架构 1.2 Tomcat图解 2.TomCat 2.1 IDEA配置web项目和tomcat 2.2 idea启动TomCat因为端口号失败的问题 3.Servlet使用流程 3.1 Servlet简单图解 3.2 Servlet导入依赖  3.3 编写Servlet和add.html 3.4 试着使用Jdbc和Dao层连接水果库存数据库 0. 基础结构的代码 1. 数据库表创建

    2024年02月03日
    浏览(47)
  • [JavaWeb]【五】web后端开发-Tomcat && SpringBoot解析

    目录 一 介绍Tomcat  二 基本使用 2.1 解压绿色版 2.2 启动TOMCAT 2.3 关闭TOMCAT 2.4 常见问题  2.5 修改端口号  2.6 部署应用程序 三 SpringBootWeb入门程序解析 前言:tomcat与SpringBoot解析                            

    2024年02月12日
    浏览(41)
  • 【仿写tomcat】六、解析xml文件配置端口、线程池核心参数

    上一篇文章中我们用了Excutors创建了线程,这里我们将它改造成包含所有线程池核心参数的形式。 主方法中对多线程操作部分改为使用CompletableFuture执行 现在我们有一个server.xml文件,我想解析其中的端口号以及线程池参数 如果想完成这个功能可以直接使用java本身自带的工具

    2024年02月12日
    浏览(31)
  • Tomcat的一些配置问题(server.xml/catalina.sh)

            在同一机器中运行多个Tomcat时,如果不修改server.xml的端口参数,会出现端口冲突使得Tomcat异常;Tomcat默认配置中,JAVA_OPTS不会设置太大,一般需要在catalina.sh中增加一行配置来加大该参数值。 目录 1.Server.xml配置 2.Catalina.sh配置 总结         需要改动的端口为

    2024年02月13日
    浏览(39)
  • Tomcat设置IP黑名单和白名单server.xml

    可以单个IP或者多个ip,多个ip用|分隔,支持正则 在server.xml文件的host节点添加如下语句 其中allow表示白名单,deny表示黑名单,denyStatus表示无法访问时的状态码。 allow和deny都为空时,表示所有id都能访问 allow为空,deny有值时,表示除deny中的ip外都能访问 allow有值,deny为空时

    2024年02月03日
    浏览(45)
  • spring5源码篇(13)——spring mvc无xml整合tomcat与父子容器的启动

    spring-framework 版本:v5.3.19 试想这么一个场景。只用 spring mvc(确切来说是spring-framework), 如何既不搭建web工程(无web.xml)又不用 spring boot 的去整合tomcat部署一个web服务? 1、引入 tomcat 和 spring mvc 2、实现 WebApplicationInitializer接口,即本篇实现的spring mvc 提供的 AbstractAnnotati

    2024年02月15日
    浏览(52)
  • Tomcat HTTP Status 404 tomcat 404问题解决

    今天初次使用tomcat的时候,用浏览器访问总是不成功。经过一番周折总算成功了,虽然这个知识点不是很难,但还是写篇博客,希望能帮助那些初学者。(注:笔者用的是:tomcat 7) 前提:你的tomcat可以访问:http://localhost:8080/ 问题:当把项目发布到tomcat下并启动tomcat,可以访问

    2023年04月08日
    浏览(49)
  • Http协议与Tomcat

    HTTP协议(HyperText Transfer Protocol)即超文本传输协议  ,是 TCP/IC网络体系结构应用层的一个客户端-服务端协议 ,是所有 客户端,服务端数据传输的基石 (数据传输规则)  特点 ⭐ 基于TCP协议 : 面向连接,安全 ⭐ 基于请求-响应模型: 一次请求对应一次响应 ⭐ 无状态协议

    2024年02月05日
    浏览(110)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包