Web入门(学习笔记)

Web入门

文章目录

  • Web入门
    • Spring
    • SpringBootWeb入门
    • HTTP协议
      • HTTP-概述
        • HTTP
        • 特点
      • HTTP-请求协议
        • HTTP-请求数据格式
      • HTTP-响应协议
        • 响应状态码
      • HTTP-协议解析
    • Web服务器-Tomcat
      • Web服务器
      • 简介
      • 基本使用Tomcat
        • 文件夹目录解析
        • 常见问题
        • Tomcat部署项目
      • 入门程序解析
      • **内嵌的Tomcat服务器**:

Spring

Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能。

SpringBoot可以帮助我们非常快速的构建应用程序、简化开发、提高效率。

SpringBootWeb入门

需求:使用SpringBoot 开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello world"

  • 创建Spring Boot 工程,并勾选web开发相关依赖
  • 定义HelloController类,添加方法hello,并添加注解
//请求处理类
@RestController
public class HelloController {@RequestMapping("/hello")public String hello() {System.out.println("Hello World");return "Hello World";}
}
  • 运行测试

打开浏览器:localhost:8080/hello(默认占用8080端口)

HTTP协议

HTTP-概述

HTTP
  • 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
特点
  • 基于TCP协议 : 面向连接,安全
  • 基于请求-响应模型的:一次请求对应一次响应
  • HTTP协议是无状态的协议:对于事物处理没有记忆能力。每次请求-响应都是独立的
    • 缺点:多次请求间不能共享数据
    • 优点:速度快

HTTP-请求协议

HTTP-请求数据格式
请求名含义
Host请求的主机名
User-Agent浏览器版本
Accept表示浏览器能接收的资源类型,如text/* image/*或者*/*表示所有
Accept-Language表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
Accept-Encoding表示浏览器可以支持的压缩类型,例如gzip,deflate等
Content-Type请求主题的数据类型
Content-Length请求主体的大小(单位:字节)
请求行:请求数据第一行(请求方式、资源路径、协议)请求头:第二行开始,格式:key:value请求体:POST请求,存放请求参数GET /hello HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
Cookie: Webstorm-e8df1f74=7f802f55-3128-445b-b96d-a8e14fe2c819
Host: localhost:8080
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0
sec-ch-ua: "Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows

请求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findAll?name=oppo&status=1GET的请求大小是有限制的

请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的

HTTP-响应协议

HTTP/1.1 200			//响应行:响应数据第一行(协议、状态码、描述)
//响应头:从第二行开始,格式key:value
Content-Type: text/html;charset=UTF-8
Content-Length: 11
Date: Sun, 24 Nov 2024 08:25:29 GMT
Keep-Alive: timeout=60
Connection: keep-alive
//响应体:最后一部分,存放响应数据
响应状态码
状态码含义
1xx响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它
2xx成功-表示请求已经被接收,处理已经完成
3xx重定向-重定向到其他地方;让客户端再发起一次请求以完成整个处理
4xx客户端错误-处理发生错误,责任在客户端,如:请求了不存在的资源、客户端未被授权、禁止访问等
5xx服务器错误-处理发生错误,责任在服务端,如:程序抛出异常
响应头含义
Content-Type表示该响应内容的类型,例如text/html,application/json
Content-Length表示该响应内容的长度(字节数)
Content-Encoding表示该响应压缩算法,例如gzip
Cache-Control指示客户端应如何缓存,例如max-age=300表示最多可以缓存300秒
Set-Cookie告诉浏览器为当前页面所在的域设置cookie

HTTP-协议解析

服务端,解析请求,对浏览器进行响应

Web服务器-Tomcat

Web服务器

Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"

主流的Web服务器

  • Apache Tomcat
  • jetty
  • WebLogic
  • WebSphere

简介

  • 概念:Tomcat 是 Apache 软件及机会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量规范。
  • JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范综合。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
  • Tomcat 也称为Web容器、Servlet 容器。Servlet 程序需要依赖于Tomcat才能运行

JavaSE java标准版

JavaME java小型版 开发与嵌入式程序

JavaEE Java企业版

基本使用Tomcat

文件夹目录解析
  • bin 可执行文件
  • conf 配置文件
  • lib Tomcat依赖的jar包
  • logs 日志文件
  • temp 临时文件
  • webapps 应用发布目录
  • work 工作目录

启动: 双击bin\startup.bat

  • 控制台中文乱码:修改conf/logging.properties

关闭

  • 直接关掉运行窗口
  • bin\shutdown.bat
  • Ctrl+C
常见问题
  • 启动窗口一闪而过:检查JAVA_HOME路径
  • 端口号冲突:找到并关闭(在任务管理器中找到8080端口)
  • 配置Tomcat端口号(conf\server.xml)
    <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

HTTP协议默认端口号为80,如果将Tomcat端口号改为80,将来访问Tomcat时,将不用输入端口号

Tomcat部署项目

将项目文件放置到webapps目录下,即可部署完成

入门程序解析

起步依赖

  • spring-boot-starter-web 包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test 包含了单元测试所需要的常见依赖

内嵌的Tomcat服务器

基于Springboot开发的web应用程序,内置了tomcat服务器,当启动类运行时,会自动启动内嵌的tomcat服务器。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【科研】9如何高效阅读和理解学术论文

【科研】9如何高效阅读和理解学术论文 写在最前面一、为什么需要系统的阅读方法&#xff1f;二、阅读论文的11步方法三、实践示例四、常见问题解答五、结语 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ …

3.22【计组】 流水线加法器

实验一 timescale 1ns / 1ps/* ALU模块实现两个32bit数的add、sub、and、or、not、slt功能&#xff0c; 但由于Nexy7输入口限制&#xff0c;将num1简化为8位&#xff0c;在过程中再extend成32位&#xff0c;num2作为内部wire自行赋值&#xff0c;此处赋为5 由于最后的结果在to…

算法与数据结构练习——异或

知识点讲解&#xff1a; 一、异或操作定义&#xff1a; 异或是指相同为0&#xff0c;不同为1&#xff0c;也可理解为无进位相加&#xff01;&#xff01; 很重要&#xff01;&#xff01; 二、关于异或运算的几个性质&#xff1a; 1.0^NN &#xff08;0和任何数异或都…

计算机的错误计算(一百六十九)

摘要 探讨 MATLAB 中一个不动点的计算精度问题。 不动点是一类特殊的循环迭代。它有形式 例1. 已知迭代[1] 计算 显然&#xff0c;每个 均为 0.5 . 下面看看 MATLAB 的计算结果。不妨不用循环语句&#xff0c;直接用算术表达式表示 这时计算结果在如下图片&#xff1a; …

11.25.2024刷华为OD

文章目录 HJ76 尼科彻斯定理&#xff08;观察题&#xff0c;不难&#xff09;HJ77 火车进站&#xff08;DFS&#xff09;HJ91 走格子方法&#xff0c;&#xff08;动态规划&#xff0c;递归&#xff0c;有代表性&#xff09;HJ93 数组分组&#xff08;递归&#xff09;语法知识…

思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。

实验拓扑(分为静态路由和动态路由两种) 静态路由互通 动态路由互通 实验背景 这个是想实现外网与内网的连接跟网络的探讨&#xff0c;最终实现互通以及使用并且在网络地址转换后能使用网络然后再这个基础上再配置访问控制列表和网络地址转换的的学习过程。 实验需了解的知识…

Idea 2024.3 突然出现点击run 运行没有反应,且没有任何提示。

写这篇文章的目的是为了提供一个新的解决思路&#xff0c;因为存在同病不同原因。 如果你进行了1. 检查运行配置 (Run Configuration) 2. 清理和重建项目 3. 清除缓存并重启 IDEA 4.排除kotlin 5.重装idea等等操作之后仍然没有解决&#xff0c;可以试着按一下步骤进行解决。 检…

数据结构--树二叉树顺序结构存储的二叉树(堆)

前言 前面我们学习了顺序表、链表、栈和队列&#xff0c;这些都是线性的数据结构。今天我们要来学习一种非线性的数据结构——树。 树的概念及结构 树的概念 树是一种非线性的数据结构&#xff0c;是由n&#xff08;n≥0&#xff09;个有效结点组成的一个具有层次关系的集合…

qt QProxyStyle详解

1、概述 QProxyStyle是Qt框架中QStyle类的一个子类&#xff0c;它提供了一种代理机制&#xff0c;允许开发者在不直接修改现有样式&#xff08;QStyle&#xff09;实现的情况下&#xff0c;对样式行为进行定制或扩展。通过继承QProxyStyle&#xff0c;开发者可以重写其虚方法&…

STL基本算法之copy与copy_backward

copy 不论是对客端程序或对STL内部而言&#xff0c;copy()都是一个常常被调用的函数。由于copy进行的是复制操作&#xff0c;而复制操作不外乎应用assignment operator或者copy construct(copy 算法用的是前者)&#xff0c;但是某些元素型别拥有的是trivial assignment operato…

不可分割的整体—系统思考的微妙法则

不可分割的整体——系统思考的微妙法则 作为企业领导者&#xff0c;我们经常需要做出决策&#xff0c;但有时候&#xff0c;我们会忽略一个事实&#xff1a;每个决策都不是孤立的&#xff0c;它背后都是一个复杂系统的一部分。 无论是市场动态、团队协作&#xff0c;还是产品…

云计算基础-期末复习

第一章&#xff1a;云计算概论 一、云计算的定义与特征 1. 定义&#xff1a; 云计算是一种通过网络以按需、可扩展的方式获取计算资源和服务的模式。它将计算资源视为一种公用事业&#xff0c;用户可以根据需求动态获取和释放资源&#xff0c;而无需了解底层基础设施的细节。…

基于Java的小程序电商商城开源设计源码

近年来电商模式的发展越来越成熟&#xff0c;基于 Java 开发的小程序电商商城开源源码&#xff0c;为众多开发者和企业提供了构建个性化电商平台的有力工具。 基于Java的电子商城购物平台小程序的设计在手机上运行&#xff0c;可以实现管理员&#xff1b;首页、个人中心、用户…

【机器学习】机器学习的基本分类-监督学习-逻辑回归-对数似然损失函数(Log-Likelihood Loss Function)

对数似然损失函数&#xff08;Log-Likelihood Loss Function&#xff09; 对数似然损失函数是机器学习和统计学中广泛使用的一种损失函数&#xff0c;特别是在分类问题&#xff08;例如逻辑回归、神经网络&#xff09;中应用最为广泛。它基于最大似然估计原理&#xff0c;通过…

Milvus 2.5:全文检索上线,标量过滤提速,易用性再突破!

01. 概览 我们很高兴为大家带来 Milvus 2.5 最新版本的介绍。 在 Milvus 2.5 里&#xff0c;最重要的一个更新是我们带来了“全新”的全文检索能力&#xff0c;之所以说“全新”主要是基于以下两点&#xff1a; 第一&#xff0c;对于全文检索基于的 BM25 算法&#xff0c;我们采…

RHCE作业五-shell脚本

一要求&#xff1a; 通过shell脚本分析部署nginx网络服务 1.接收用户部署的服务名称 2.判断服务是否安装 ​ 已安装&#xff1b;自定义网站配置路径为/www&#xff1b;并创建共享目录和网页文件&#xff1b;重启服务 ​ 没有安装&#xff1b;安装对应的软件包 3.测试 判断服务…

分页查询日期格式不对

方式一:在属性上加入注解&#xff0c;对日期进行格式化 方式二:在 WebMvcConfiguration 中扩展Spring MVC的消息转换器&#xff0c;统一对日期类型进行格式化处理 /*** 统一转换处理扩展spring mvc* 后端返回前端的进行统一转化处理* param converters*/Overrideprotected voi…

深度学习3:数据预处理使用Pandas与PyTorch的实践

文章目录 导读一、主题与提纲1.1. 读取数据集1.2. 处理缺失值1.3. 转换为张量格式 二、结论 本文是经过严格查阅相关权威文献和资料&#xff0c;形成的专业的可靠的内容。全文数据都有据可依&#xff0c;可回溯。特别申明&#xff1a;数据和资料已获得授权。本文内容&#xff0…

Tülu 3:重新定义开源大模型的后训练范式

一、引言 在大型语言模型&#xff08;LLM&#xff09;的发展历程中&#xff0c;预训练阶段往往受到最多关注&#xff0c;动辄需要数百万美元算力投入和数万亿token的训练数据。然而&#xff0c;一个鲜为人知但同样关键的事实是&#xff1a;预训练完成的模型实际上并不能直接投…

【机器学习】机器学习的基本分类-监督学习-逻辑回归(Logistic Regression)

逻辑回归是一种分类算法&#xff0c;尽管名字中包含“回归”&#xff0c;但其主要用于解决二分类和多分类问题。它通过学习一个逻辑函数&#xff0c;预测输入属于某个类别的概率。 1. 逻辑回归的基本概念 目标 逻辑回归的目标是找到一个函数 h(x)&#xff0c;输出一个概率值 …