JavaWeb,XML、Tomcat、HTTP的学习

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

XML

XML具体不需要太深入,但是要知道它是什么,是干嘛用的。

xml作为配置文件,可以更好地存储一些信息

xml文件第一行一定是<?xml version="1.0" encoding="字符集"?>

根标签只能有一个

xml是有约束的,分为dtd约束和schema约束,dtd约束简单不细致,schema约束复杂细致。

xml文件举例:

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student id="01">
        <name>张三</name>
        <age>18</age>
    </student>
    <student id="02">
        <name>李四</name>
        <age>20</age>
    </student>
</students>

xml文件的语法与html类似,也是只有一个根标签,也是由元素组成,元素也是由标签+属性+文本组成,可以说,html就是有html语法约束的xml文件。

XML的解析(使用DOM4J)

XML不需要具体了解,大体看一下流程即可

package XML_leaning;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.InputStream;
import java.util.List;

public class TestDom4j {
    public static void main(String[] args) throws DocumentException {
        //读取jdbc.xml配置文件,获得document对象
        SAXReader saxReader = new SAXReader();
        //通过类加载器获得指向字节码根路径下的指定文件的输入流
        InputStream resourceAsStream = TestDom4j.class.getClassLoader().getResourceAsStream("jdbc.xml");
        //通过输入流获得配置文件,解析成一个dom对象
        Document document = saxReader.read(resourceAsStream);
        //从domcument对象上获取配置文件中的信息
        Element rootElement = document.getRootElement();
        System.out.println(rootElement.getName());
        List<Element> elements = rootElement.elements();
        for (Element element : elements) {
            System.out.print("\\t" + element.getName());
            Attribute attribute = element.attribute("id");
            System.out.println(" " + attribute.getName() + "=" +  attribute.getValue());
            List<Element> elements1 = element.elements();
            for (Element element1 : elements1) {
                System.out.println("\\t\\t" + element1.getName() + ":" + element1.getText());
            }
        }
    }
}

 不需要特别搞懂,知道是配置文件,用来存储一些配置信息,作用类似于properties文件即可。

Tomcat

Tomcat是专门运行WEB应用软件的服务器软件

汤姆猫的知识点较少,大多数是操作的东西,有一个知识点叫WebAPP标准结构要知道:

WebAPP标准结构

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

HTTP

HTTP 超文本传输协议 (HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。客户端与服务端通信时传输的内容我们称之为报文HTTP协议就是规定报文的格式。HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。实际我们要学习的就是这两种报文。客户端发送给服务器的称为"请求报文",服务器发送给客户端的称为"响应报文"

交互的方式和数据的格式

HTTP提供了客户端和服务端的交互的方式和数据的格式

交互的方式

请求:客户端向服务端发送

响应:服务端向客户端返回

数据的格式

请求时发送的数据称为请求报文

响应时返回的数据称为响应报文

报文

报文是有规定的格式:

  • 报文首部:
  • 报文主体

请求报文的格式对应称为请求行、请求头、请求体

响应报文的格式对应称为响应行、响应头、响应体

HTTP长链接和短链接

HTTP是一种应用层协议,规定的是报文的格式,但是不规定传输。

TCP是一种传输层协议,是面向连接的协议。而想要确定传输的实体,就要通过IP协议。

IP是一种网络层协议。

TCP连接的步骤为:创建连接(三次握手)—>关闭连接(四次挥手)

短链接即为在客户端向服务端发送请求时,每有一个资源需要向服务端发送连接,都进行一遍三次握手四次挥手,如果有n个资源需要向服务器端发送连接,就进行了n遍三次握手四次挥手

长连接即为在客户端向服务端发送请求时,先三次握手建立连接,获取到所有资源后才四次握手关闭连接,减少了TCP连接的次数

HTTP1.1时,增加了缓存机制,即一个资源获取到后会先缓存下来,如此重复获取此资源时,不用再重复请求。节省了带宽并使得响应速度也更快

请求和响应报文

报文的格式

报文分为报文首部和报文主体,报文首部和报文主体之间用空行隔开

报文首部

空行(CR+LF,即回车加换行)

报文主体

报文首部可以继续细分为 行 和 头

  • 报文首部
    • 请求行/状态行
    • 请求首部字段/响应首部字段
    • 通用首部字段
    • 实体首部字段
    • 其他

请求报文

客户端发给服务端的报文

  • 请求报文格式

    • 请求首行(请求行); GET/POST 资源路径?参数 HTTP/1.1
    • 请求头信息(请求头);
    • 空行;
    • 请求体;POST请求才有请求体

    GET请求方式会将参数放在地址栏上,不安全,且GET方式只能携带纯文本。POST请求方式将参数放在请求体,较为安全,且POST方式能携带所有内容。GET方式没有请求体。

响应报文

服务端发给客户端的报文

  • 响应报文格式
    • 响应首行(响应行); 协议/版本 状态码 状态码描述
    • 响应头信息(响应头);
    • 空行;
    • 响应体;

状态码

响应状态码:响应码告诉浏览器响应的结果。较有代表性的响应码:

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

还有一些其他的状态码,我粘贴在下面,遇见时对照查找是哪种情况即可:文章来源地址https://www.toymoban.com/news/detail-812890.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、Tomcat、HTTP的学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Tomcat主配置文件(server.xml)详解

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

    2024年02月05日
    浏览(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)
  • Tomcat+Http+Servlet

    JAVAWeb技术栈 BS架构: B/S架构(Browser/Server架构)是一种常见的软件架构模式,用于构建Web应用程序。在B/S架构中,浏览器(Browser)作为客户端,通过网络协议(通常是HTTP)与服务器(Server)进行通信,而服务器负责处理客户端的请求并生成响应。 客户端(浏览器):客户端

    2024年02月12日
    浏览(63)
  • WEB集群——http、tomcat

    1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8,配置服务启动脚本,部署jpress应用。 (1)、什么是静态网页          请求响应信息,发给客户端进行处理,由浏览器进行解析,显示的页面称为静态页面 在网站设计中,纯粹 HTML 格式的

    2024年02月14日
    浏览(32)
  • HTTP概述以及Tomcat概述

    HTTP 概念: H yper T ext T ransfer P rotocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点: 基于TCP协议:面向连接、安全 基于请求-响应模型的:一次请求对应一次响应 HTTP协议是无状态的协议:对于事物处理没有记忆能力。每次请求-响应都是独立的。 缺点

    2024年02月12日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包