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

JavaWeb--day4--WebHttp协议Tomcat

请添加图片描述
(以下内容全部来自上述课程及课件)

这里maven我学过了,可见:Maven项目管理–基础篇,所以跳过

在这里插入图片描述
在这里插入图片描述

SpringBootWeb

1. 需求

需求:基于SpringBoot的方式开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串 “Hello World ~”。
在这里插入图片描述

2. 开发步骤

第1步:创建SpringBoot工程项目
第2步:定义HelloController类,添加方法hello,并添加注解
第3步:测试运行

2.1 创建SpringBoot工程(需要联网)

基于Spring官方骨架,创建SpringBoot工程。
在这里插入图片描述
基本信息描述完毕之后,勾选web开发相关依赖。
在这里插入图片描述
点击Finish之后,就会联网创建这个SpringBoot工程,创建好之后,结构如下:
在这里插入图片描述

注意:在联网创建过程中,会下载相关资源(请耐心等待)

2.2 定义请求处理类

在com.itheima这个包下创建一个子包controller
在这里插入图片描述
然后在controller包下新建一个类:HelloController
在这里插入图片描述

package com.itheima.controller;import org.springframework.web.bind.annotation.*;@RestControllerpublic class HelloController {@RequestMapping("/hello")public String hello(){System.out.println("Hello World ~");return "Hello World ~";}	 }    

2.3 运行测试

运行SpringBoot自动生成的引导类
在这里插入图片描述
在这里插入图片描述
打开浏览器,输入 http://localhost:8080/hello
在这里插入图片描述

3. Web分析

在这里插入图片描述
浏览器:
输入网址:http://192.168.100.11:8080/hello

  • 通过IP地址192.168.100.11定位到网络上的一台计算机

我们之前在浏览器中输入的localhost,就是127.0.0.1(本机)

  • 通过端口号8080找到计算机上运行的程序

localhost:8080 , 意思是在本地计算机中找到正在运行的8080端口的程序

  • /hello是请求资源位置
    资源:对计算机而言资源就是数据
    web资源:通过网络可以访问到的资源(通常是指存放在服务器上的数据)

localhost:8080/hello ,意思是向本地计算机中的8080端口程序,获取资源位置
是/hello的数据

  • 8080端口程序,在服务器找/hello位置的资源数据,发给浏览器

服务器:(可以理解为ServerSocket)

  • 接收到浏览器发送的信息(如:/hello)
  • 在服务器上找到/hello的资源
  • 把资源发送给浏览器

我们在JavaSE阶段学习网络编程时,有讲过网络三要素:

  • IP :网络中计算机的唯一标识
  • 端口 :计算机中运行程序的唯一标识
  • 协议 :网络中计算机之间交互的规则

问题:浏览器和服务器两端进行数据交互,使用什么协议?
答案:http协议

Http协议

1. 介绍

在这里插入图片描述
HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。

  • http是互联网上应用最为广泛的一种网络协议

  • http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输

  • 浏览器向服务器进行请求时:服务器按照固定的格式进行解析
    在这里插入图片描述

  • 服务器向浏览器进行响应时:浏览器按照固定的格式进行解析
    在这里插入图片描述

2. 特点

  • 基于TCP协议: 面向连接,安全

TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全

  • 基于请求-响应模型: 一次请求对应一次响应(先请求后响应)

请求和响应是一一对应关系,没有请求,就没有响应

  • HTTP协议是无状态协议: 对于数据没有记忆能力。每次请求-响应都是独立的

无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。

  • 缺点: 多次请求间不能共享数据
  • 优点: 速度快

请求之间无法共享数据会引发的问题:

  • 如:京东购物。加入购物车和去购物车结算是两次请求
  • 由于HTTP协议的无状态特性,加入购物车请求响应结束后,并未记录加入购物车是何商品
  • 发起去购物车结算的请求后,因为无法获取哪些商品加入了购物车,会导致此次请求无法正确展示数据

3. HTTP-请求协议

请添加图片描述
在这里插入图片描述
GET请求和POST请求的区别:
在这里插入图片描述

4. HTTP-响应协议

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

5. HTTP-协议解析

这里是用代码演示服务器可以使用java完成编写,是可以接受页面发送的请求和响应数据给前端浏览器
的,而在开发中真正用到的Web服务器,我们不会自己写的,都是使用目前比较流行的web服务器。
如:Tomcat。
想具体了解可看视频:HTTP-协议解析

Tomcat

1. 服务器介绍

服务器硬件
指的也是计算机,只不过服务器要比我们日常使用的计算机大很多。

服务器,也称伺服器。是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

在网络环境下,根据服务器提供的服务类型不同,可分为:文件服务器,数据库服务器,应用程序服务器,WEB服务器等。

服务器只是一台设备,必须安装服务器软件才能提供相应的服务。

服务器软件
服务器软件:基于ServerSocket编写的程序

  • 服务器软件本质是一个运行在服务器设备上的应用程序
  • 能够接收客户端请求,并根据请求给客户端响应数据

在这里插入图片描述

2. Web服务器

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作
(不用程序员自己写代码去解析http协议规则),让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。
在这里插入图片描述
Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Tomcat服务器软件中,当Web服务器软件启动后,部署在Web服务器软件中的页面就可以直接通过浏览器来访问了。

Web服务器软件使用步骤

  • 准备静态资源
  • 下载安装Web服务器软件
  • 将静态资源部署到Web服务器上
  • 启动Web服务器使用浏览器访问对应的资源

3. Tomcat

请添加图片描述
官网: https://tomcat.apache.org/
下载:https://tomcat.apache.org/download-90.cgi
在这里插入图片描述

Tomcat软件类型说明:

  • tar.gz文件,是linux和mac操作系统下的压缩版本
  • zip文件,是window操作系统下压缩版本(我们选择zip文件)

在这里插入图片描述

注意,Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。

在这里插入图片描述

IDEA部署可见:IntelliJ IDEA 新手入门教程-Java、Web、Maven创建(带图解)


文章转载自:

http://vWMhiWG3.rbgwj.cn
http://P34i5YVK.rbgwj.cn
http://SbOYwhyy.rbgwj.cn
http://von7jqGW.rbgwj.cn
http://WTRgNU8r.rbgwj.cn
http://q8fGH0bl.rbgwj.cn
http://uNHIwEPa.rbgwj.cn
http://TYk5UAvg.rbgwj.cn
http://L4RFvjwl.rbgwj.cn
http://yQbM68Eu.rbgwj.cn
http://yTScw7Xt.rbgwj.cn
http://a4hqw4mM.rbgwj.cn
http://j7Xppwf1.rbgwj.cn
http://DXp9Wyp4.rbgwj.cn
http://QVqmK2Oo.rbgwj.cn
http://YuF49teu.rbgwj.cn
http://QmrbGgsL.rbgwj.cn
http://pi0jHg7g.rbgwj.cn
http://IIzr7961.rbgwj.cn
http://363ma7ht.rbgwj.cn
http://gbh3u3Eq.rbgwj.cn
http://Mly6v1sL.rbgwj.cn
http://mRcrR079.rbgwj.cn
http://wh8kNVtp.rbgwj.cn
http://TikdgquV.rbgwj.cn
http://GU90xEwR.rbgwj.cn
http://4LI1ufKG.rbgwj.cn
http://kCjgRbBO.rbgwj.cn
http://pcnpH4fk.rbgwj.cn
http://7eVfslTd.rbgwj.cn
http://www.dtcms.com/a/382156.html

相关文章:

  • Linux命令行的核心理念与实用指南(进阶版)
  • 机器学习-模型验证
  • 3-机器学习与大模型开发数学教程-第0章 预备知识-0-3 函数初步(多项式、指数、对数、三角函数、反函数)
  • 使用Aop和自定义注解实现SpringTask定时任务中加锁逻辑的封装
  • 远程依赖管理新范式:cpolar赋能Nexus全球协作
  • 【个人项目】【前端实用工具】OpenAPI to TypeScript 转换器
  • 贪心算法应用:物流装箱问题详解
  • 《用 TensorFlow 构建回归模型:从零开始的预测之路》
  • charles功能
  • Ceph OSD 元数据信息
  • Stanford CS336 | Assignment 2 - FlashAttention-v2 Pytorch Triotn实现
  • 【Docker】容器
  • C++ 类型推导(第一部分)
  • 联邦学习模型完成之后在验证集上面,如何判断输出正确与否
  • 优选算法---链表
  • 从理据到算法:认知语义学象似性对人工智能深层语义分析的重塑与前瞻
  • 39.网络流入门
  • PTQ 模型 量化方法
  • 基于Spring Boot的家政服务管理系统+论文示例参考
  • uniapp封装长按一直触发事件和松开后触发一次的事件(自定义事件)
  • Unity核心概念⑦:Transform
  • 【数据行业发展】可信数据空间~数据价值的新型基础设施
  • 使用“洋葱架构”构建单体应用
  • DAY 27 函数专题2:装饰器-2025.9.14
  • 浅析Linux进程信号处理机制:基本原理及应用
  • php学习(第五天)
  • C盘清理技巧分享的技术文章大纲
  • PINN物理信息神经网络驱动的三维声波波动方程求解MATLAB代码
  • 深度学习优化器进化史:从SGD到AdamW的原理与选择
  • 计算机视觉(opencv)实战十九——角点检测图像特征(Harris 角点、Shi-Tomasi 角点)