Web入门

ops/2025/1/24 11:45:23/

Spring

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

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

SpringBootWeb入门

①.创建springboot工程,并勾选web开发相关依赖

②.定义HelloController类,添加方法 hello,并添加注解
③.运行测试

SpringBoot父工程:

所有创建的SpringBoot工程都需要继承自这个父工程,在Maven中叫继承

进行外部开发的依赖:

进行单元测试的依赖:

HTTP协议

HTTP概述

概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

特点:
1.基于TCP协议:面向连接,安全
2.基于请求-响应模型的:一次请求对应一次响应
3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的
缺点:多次请求间不能共享数据
优点:速度快

HTTP请求协议

请求数据格式

请求行

请求数据第一行(请求方式、资源路径、协议)

请求头

第二行开始,格式key:value

GET /brand/findAll?name=0PP0&status=1 HTTP/1.1   请求方式:GET  /brand/findAll后面跟的是请求参数   /brand/findAll?name=0PP0&status=1:请求路径   HTTP/1.1 :协议以及协议的版本
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*

Accept-Encoding:gzip,deflate,br
Accept-Language:zh-CN,zh;q=0.9
Host:localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0: Win64:x64)AppleWebKit/537.36 (KHTML, like Gecko) chrome/..

POST /brand HTTP/1.1
Accept:application/json,text/plain,*/*
Accept-Encoding: gzip,deflate, br
Accept-Language:zh-CN,zh;q=0.9
Content-Length:161
Content-Type:application/json;charset=UTF-8Cookie:Idea-8296eb32-841b16f0-0cfe-495a-9cc9-d5aaa71501a6; JSESSIONID=0FDE4E430876BD9C5C955F061207386FHost: localhost:8080
User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) chrome/...

["status":1,"brandName":"黑马","companyName":"黑马程序员",“id":"","description":"黑马程序员”}

Accept:请求头的名字  text/html,application/xhtml+xml,application/xml:请求头对应的值,中间用冒号连接  

解决浏览器兼容性问题最核心的是要拿到浏览器的版本

请求响应

响应格式

HTTP/1.1 200 OK    (HTTP/1.1:协议以及协议的版本  200:响应的状态码<响应成功还是失败>  OK:响应成功)
Content-Type:application/json
Transfer-Encoding:chunked

Date: Tue,10 May 2022 07:51:07 GMT

Keep-Alive:timeout=60

Connection:keep-alive
[{id:1,brandName:"阿里巴巴",companyName:"腾讯计算机系统有限公司",description:"玩玩玩”}]

协议解析

概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

Tomcat

介绍

概念:Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范

JavaEE:Java Enterprise Edition,java企业版。指|ava企业级开发的技术规范总和。包含13项技术规范:IDBC、INDI、EIBRMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
Tomcat 也被称为 Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行
官网:https://tomcat.apache.org/

Web服务器
对HTTP协议操作进行封装,简化web程序开发
部署web项目,对外提供网上信息浏览服务
Tomcat
一个轻量级的web服务器,支持servlet、jsp等少量javaEE规范
也被称为web容器、servlet容器

基本使用

下载:官网下载,地址 https://tomcat.apache.org/download-90.cgi
安装:绿色版,直接解压即可
卸载:直接删除目录即可
启动:双击:bin\startup.bat
      控制台中文乱码:修改conf/logging.properties


关闭:
       直接x掉运行窗口:强制关闭
       bin\shutdown.bat:正常关闭
       Ctrl+C:正常关闭

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

Tomcat 部署项目:
将项目放置到 webapps 目录下,即部署完成

SpringBootWeb-入门程序解析

1.起步依赖
spring-boot-starter-web
spring-boot-starter-test
2.内嵌Tomcat服务器
基于Springboot开发的web应用程序,内置了tomcat服务器,当启动类运行时,会自动启动内嵌的tomcat服务器

请求响应

概述

将所有的信息封装到一个对象中,这个对象就是HttpServletRequest,也叫请求对象

通过HttpServletResponse这个对象来设置响应数据

请求

Postman

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。作用:常用于进行接口测试

简单参数

实例:

java">@RequestMapping(ov"/simpleParam")
public string simpleParam(HttpServletRequest request){
//获取请求参数
String name request.getParameter(s:"name");
String agestr=request.getParameter(s:"age");
int age = Integer.parseInt(agestr);
System.out.println(name+":"+age);
return "OK";


java">//springboot方式
@RequestMapping(ov"/simpleParam")
public string simpleParam(string name, Integer age){
System.out.println(name+ ":" + age);
return "OK";
}

请求的参数名与形参名保持一致就能请求成功


java">@RequestMapping(~"/simpleParam")
public String simpleParam(@RequestParam(name"name")
String username,Integer age){
System.out.println(username+ ":"+ age);
return "OK";
}

注意事项
@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false

修改:

小结:

实体参数

数组集合参数

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

数组集合参数


集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParàm 绑定参数关系

小结:

数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装

集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系


http://www.ppmy.cn/ops/152732.html

相关文章

Unity3D仿星露谷物语开发25之创建时钟界面

1、目标 在时钟界面显示当前时钟信息&#xff0c;同时设置特殊按钮可以快速推进时间用于测试。 2、创建GameClock.cs脚本 在Assets -> Scripts -> TimeSystem目录下创建GameClock.cs脚本。 代码如下&#xff1a; using System.Collections; using System.Collections…

关于ARM和汇编语言

一图流 ARM 计算机组成 输入设备 输出设备 存储设备 运算器 控制器 处理器读取内存程序执行的过程 取指阶段&#xff1a;控制器器通过地址总线向存储器发送想要获取的指令的地址编号&#xff0c;存储器将指定的指令发送给处理器 译码阶段&#xff1a;控制器对指令进行分…

vue2的$el.querySelector在vue3中怎么写

这个也属于直接操作 dom 了&#xff0c;不建议在项目中这样操作&#xff0c;不过我是在vue2升级vue3的时候遇到的&#xff0c;是以前同事写的代码&#xff0c;也没办法 先来看一下对比 在vue2中获取实例是直接通过 this.$refs.xxx 获取绑定属性 refxxx 的实例&#xff0c;并且…

Spring Boot 3.x 整合 Logback 日志框架(支持异步写入)

Spring Boot 3.x 整合 Logback 日志框架&#xff08;支持异步写入&#xff09; 在构建任何应用程序时&#xff0c;良好的日志管理都是必不可少的。日志可以帮助我们监控、调试和跟踪代码的运行情况。 1. 添加日志配置文件 在 /resources 资源目录下&#xff0c;创建名为 log…

计算机网络 (53)互联网使用的安全协议

一、SSL/TLS协议 概述&#xff1a; SSL&#xff08;Secure Sockets Layer&#xff09;安全套接层和TLS&#xff08;Transport Layer Security&#xff09;传输层安全协议是工作在OSI模型应用层的安全协议。SSL由Netscape于1994年开发&#xff0c;广泛应用于基于万维网的各种网络…

专业138总分400+中国科学技术大学843信号与系统考研中科大电子信息通信生医先研,真题,大纲,参考书。

顺利逆袭上岸中科大&#xff0c;专业138&#xff0c;总分400&#xff0c;这一年复习确实成长很多&#xff0c;总结一下&#xff0c;希望对大家报考中科大有帮助。843信号与系统&#xff08;重点&#xff09; 你要说843第二难&#xff0c;感觉没人敢说第一.&#xff0c;说实话&…

红外热成像之无人机载荷

电力巡检 相较于传统的人工电力巡线方式&#xff0c;无人机巡检能够在高空对人工难以达到或无法检测的设备进行检测&#xff0c;实现了电子化、信息化、智能化巡检&#xff0c;可以提高巡检的工作效率和应急抢险水平。 森林防火 无人机搭载红外光电系统能在森林高空进行全天候监…

解密AIGC三大核心算法:GAN、Transformer、Diffusion Models原理与应用

在当今数字化时代&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术正以前所未有的速度改变着我们的生活和工作方式。从创意无限的文本生成&#xff0c;到栩栩如生的图像创作&#xff0c;再到动听的音乐旋律&#xff0c;AIGC的魔力无处不在。而这一切的背后&#…