请求&响应&三层知识点

Spring Boot开发 (1) :快速入门,HTTP请求响应、IOC & DI JavaWeb开发——SSM基础:快速入门,HTTP请求响应、IOC & DI。Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具,它基于项目对象模型(POM)的概念。SpringBoot可以帮助我们非常快速的构建应用程序,简化开发,提高效率。 阅读详情

json概念

常见的json框架

  • fastjson ==》 alibaba的产品
  • Gson==》谷歌的产品

前端角度

//json语法格式
{
  "名字":"值",
  "名字":"值",

}

//例子
var stu={
  "name":"张三",
  "age":18,
  "pet"//宠物:{
  "name":"小黄",
  "type":狗,
},
  "hobbeies":["抽烟","喝酒","烫头"],
  "girlFGriends":[
    {"name":"如花","age":88}
  ]

}



字符串和对象的转换

<body>
    <script>
        //json和jason字符串

        //var person = {"bane":"tin"} 这个person是对象
        //var person = '{"bane":"tin"}' 这个person是字符串
        var person = {"bane":"tin"}
        var jsonStr=JSON.stringify(person) //对象转字符串
        alert(jsonStr)



        /* var person1 = '{"bane":"tin"}'  //字符串转成对象
        var jsonObj = JSON.parse(person1)
        alert(jsonObj) */
        


    </script>
</body>
</html>

后端角度

json对象:不存在
java对象,存在
java如何处理我们的json格式的字符串

  • 把json字符串转换成java对象
  • 把java对象转换成json字符串

==》新的框架jackson
对象和字符串的转换使用的技术是Jackson框架

Jackson

Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架
早期框架SpringMVC==》表现型框架(web层)==》这个框架默认处理json使用的就是jackson

对象转JSON格式字符串的转换

将对象转换为json格式的字符串
public class JackSonTest {//转换为json格式的字符串
    @Test
    public void testJackSonTest() throws Exception{
        ArrayList<String > hobbies = new ArrayList<>();
        hobbies.add("抽烟");
        hobbies.add("喝酒");
        hobbies.add("烫头");
        Student student = new Student();
        student.setSid(2);
        student.setStuName("张三");
        student.setGender(1);
        student.setAddress("xxxxxx");
        student.setHobbies(hobbies);
        //初始化转换json对象
        ObjectMapper objectMapper = new ObjectMapper();
        //将对象转换成为json格式的字符串
        String s = objectMapper.writeValueAsString(student);
        System.out.println(s);
        //将集合转换为json格式的字符串
        System.out.println("===============================");
        String s1 = objectMapper.writeValueAsString(hobbies);
        System.out.println(s1);
    }

}

回显内容如下;
{"sid":2,"stuName":"张三","address":"xxxxxx","gender":1,"hobbies":["抽烟","喝酒","烫头"]}
===============================
["抽烟","喝酒","烫头"]
将集合转换为json格式的字符串
public class JackSonTest {//转换为json格式的字符串
    @Test
    public void testJackSonTest() throws Exception{
        ArrayList<String > hobbies = new ArrayList<>();
        
        hobbies.add("抽烟");
        hobbies.add("喝酒");
        hobbies.add("烫头");
        ObjectMapper objectMapper = new ObjectMapper();
        //将集合转换为json格式的字符串
        String s1 = objectMapper.writeValueAsString(hobbies);
        System.out.println(s1);
    }

}
回显内容
["抽烟","喝酒","烫头"]
Map集合转换为json格式字符串
public void testMap()throws Exception{
        HashMap<Object, Object> map = new HashMap<>();
        map.put("username","zhangsan");
        map.put("password","123123");
        map.put("status",1);
        map.put("creaTime", new Date());
        ObjectMapper objectMapper = new ObjectMapper();
        String s = objectMapper.writeValueAsString(map);
        System.out.println(s);
    }
运行结果:
{"password":"123123","creaTime":1689683632477,"username":"zhangsan","status":1}

结论:

  1. 对象==》json对象 {}
  2. map==》json对象 {}
  3. List==》json数组 [{},{}]

JSON格式字符串转对象

类格式的字符串转换为json格式
public class JackSonTest2 {
    String jsonStr = "{\"sid\":2,\"stuName\":\"张三\",\"address\":\"xxxxxx\",\"gender\":1,\"hobbies\":[\"抽烟\",\"喝酒\",\"烫头\"]}\n";
    @Test
    public void readObject() throws Exception {
        //初始化jackson
        ObjectMapper objectMapper = new ObjectMapper();
        //读数据
        Student student = objectMapper.readValue(jsonStr, Student.class);
        System.out.println(student);
            }

}
回显结果
Student(sid=2, stuName=张三, address=xxxxxx, gender=1, hobbies=[抽烟, 喝酒, 烫头])

使用map进行json格式字符串转换为对象
public class JackSonTest2 {
    String jsonStr = "{\"sid\":2,\"stuName\":\"张三\",\"address\":\"xxxxxx\",\"gender\":1,\"hobbies\":[\"抽烟\",\"喝酒\",\"烫头\"]}\n";
    @Test
    public void readObject() throws Exception {
        //初始化jackson
        ObjectMapper objectMapper = new ObjectMapper();
        //读数据
        Map map = objectMapper.readValue(jsonStr, Map.class);
        System.out.println(map);
    }

}
使用map集合对未定义的类进行转换为对象
public class JackSonTest2 {
    String aStu = "{\"password\":\"123123\",\"creaTime\":1689686523611,\"username\":\"zhangsan\",\"status\":1}\n";
    @Test
    public void readObject() throws Exception {
        //初始化jackson
        ObjectMapper objectMapper = new ObjectMapper();
        //读数据
        Map map1 = objectMapper.readValue(aStu, Map.class);
        System.out.println(map1);

    }

}
回显结果:
{password=123123, creaTime=1689686523611, username=zhangsan, status=1}


使用json数组转为对象

:::info

  1. 什么时候使用TypeReference?==》当你明确需要它把结果给你封装到一个具体的类中
  1. TypeReference是抽象类。抽象类中的匿名内部类
  1. 查看这个对象是哪个类的。
    student.stream().forEach(stu -> {
    System.out.println(stu.getClass().getCanonicalName());
    });
public class JackSonTest2 {
 	String jsonArr = "[{\"sid\":1,\"stuName\":\"zhangsan\",\"hobbies\":[\"抽烟\",\"喝酒\"]},{\"sid\":1,\"stuName\":\"zhangsan\",\"hobbies\":[\"抽烟\",\"喝酒\"]}]";
     public void redList() throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();
    //用来把JSON数组转换为对象
        //什么时候使用TypeReference?==》当你明确需要它把结果给你封装到一个具体的类中
        //TypeReference是抽象类。抽象类中的匿名内部类
        List<Student> student = objectMapper.readValue(jsonArr, new TypeReference<List<Student>>() {});
        System.out.println(student);
        //查看这个对象是哪个类的。
        student.stream().forEach(stu -> {
            System.out.println(stu.getClass().getCanonicalName());

        });

    }
}

jackson总结

[]: 是数组 List/set
{} 是对象 map/类.class
使用步骤:

  1. 导入坐标
  2. 写代码

核心的代码:把对象转换成json格式字符串
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = objectMapper.writeValueAsString(对象);

  1. 结论:
    1. list/set转换出来的都是json数组
    2. Map/具体对象 转化出来的都是json对象

读数据,将json格式字符串转换成java对象

//读取单个对象
OBjeckMapper objectMapper = new ObjectMappertaining();
类  对象 = objectMapper.readValue(json字符串, 类.class);//map.class 自己写的类.class


//读取多个对象 ==>
OBjeckMapper objectMapper = new ObjectMappertaining();
//下面的api里面传的是一个匿名内部类
//告诉jackson回头读取出来的数据转成指定的格式List<类/map>
objectMapper2.readValue(json字符串, new TypeReference<List<类/map>>() {});


请求

请求的方式

:::info
@RequestMapping这个注解,我们通过get请求和post请求访问目标接口,都会被触发,实际情况我们的需求,只能通过特定的请求方式去访问我们的服务器.
:::
对于@RequestMapping进行了扩展,多出来了如下4个注解

  • @GetMapping 只服务get请求
  • @PostMapping 只服务post请求
  • @PutMapping 只服务PUT请求
  • @DeleteMapping 只服务DELETE请求

@postMapping 存在请求体
页面浏览器除了表单其他的不可以发起请求,要求请的要么是ajax要么是postman

简单请求(简单参数 K=V参数)

:::info
简单参数:在向服务器发起请求时,向服务器传递的是一些普通的请求数据。
:::
@Documentd:系统注解,用来生成文档。用来生成javac

原始API方式进行请求

注意:原生的没有提供KV格式的请求方式

   @PostMapping("/login2")
   public String login(HttpServletRequest request){
       //这里使用的是原生api去处理,获取提交的参数
       String username = request.getParameter("username");
       System.out.println("username=>" + username);
       return "ok";

注意:下面代码更改后的可以发送kv格式的请求

在原生的之前处理过程如下
@PostMapping("/login3")
   public String login(HttpServletRequest request) throws IOException {
        //这里使用的是原生api去处理,读取的请求体
        String requestBody = request.getReader().readLine();    //username=tom&password=123 //{"username":"tom","password":"123"}
        System.out.println(requestBody);
       return "ok";
   }
参数在请求体中。
所有的数据都在请求体中。

在postman中发起请求,查看后台获取数据情况
image.png
image.png
在postman中发起KV格式请求,查看后台获取数据情况
image.png
image.png

SpringBoot方式进行请求

//    @PostMapping("/login")
//    public String login(String username,String password){
//        System.out.println(username+"==="+password);
//        return "ok";
//    }
@PostMapping("/login4")
    public User login(@RequestBody String jsonStr) throws IOException {
        //{"username":"tom","password":"123"} => json格式的字符串
        ObjectMapper objectMapper = new ObjectMapper();
        User user = objectMapper.readValue(jsonStr, User.class);
        System.out.println(user);
        return user;
    }
@PostMapping("/login1")
    public Result login(User user) {//用key和value的方式
        System.out.println(user);
        return user;
}
@PostMapping("/login")
    public String login(@RequestBody Map map) throws IOException {
        //{"username":"tom","password":"123"} => json格式的字符串

        System.out.println(map);
        return "user";
    }
这是一个对象,多有可以用map和user类

参数名不一致问题

:::info
结论:对于简单参数来讲,请求参数名和controller方法中的形参名不一致时,无法接收到请求数据
:::
那么如果我们开发中,遇到了这种请求参数名和controller方法中的形参名不相同,怎么办?
解决方案:可以使用Spring提供的@RequestParam注解完成映射

结论:对于简单参数来讲,请求参数名和controller方法中的形参名不一致时,无法接收到请求数据

那么如果我们开发中,遇到了这种请求参数名和controller方法中的形参名不相同,怎么办?

解决方案:可以使用Spring提供的@RequestParam注解完成映射


    @RequestMapping("/login")
    public String login(@RequestParam("name") String username,@RequestParam("pass") String password){
        //boot帮助咱们简化的版本
        //获取用户名和密码
        System.out.println(username + "=======================" +password);
        return "login : "+username;
    }

复杂请求(实体参数)

结论1:复杂参数尽量不要再get请求中传递,因为在get请求中,对于中文和特殊字符会及逆行URL编码,建议使用post请求发送这类发杂参数。

结论2:
如果是key-value的数据,后台是:

public void login(String username,String password){}
public void login(User user){}
//请求: 地址?id=1,2,3,4
@GetMapping()
public String demo(@RequestParam List<Integer> ids){
    return "ok";
}

如果是json格式的数据则:

  • 首先 必须有请求体
  • 只要是json请求 就需要@RequestBody
@PostMapping()
public String demo(@RequestBody User user){
    return "ok";
}
@PostMapping()
public String demo(@RequestBody List<User> list){
    return "ok";
}

路径请求

路径参数: 特点:

 @GetMapping("/findById/{id}")
    public String findById(@PathVariable Integer id){
        System.out.println(id);
        return "ok";
    }
    @PostMapping("/save/{name}/{age}")
    public String saveStu(@PathVariable("age") int age,@PathVariable("name")String name){
        System.out.println(age +" ===="+ name );
        return "ok";
    }

响应

boot响应

结果:
@ResponseBody:响应体只要加上这个注解,返回结果就会放到响应体中。
@RestController:这个注解加载类上代表里边的方法都存在这个注解了 @Documented
@Controller
@ResponseBody
结论:一个方法加了一个注解@ResponseBody注解,意味着这个方法返回值会被方程响应体会返回给页面。这个方法放在了类中,代表这个所有都有这个注解了
只要是返回页面的数据的内容,,boot框架会统一帮咱们转换json格式的字符串返回给页面

三层架构

真实开发中,不可能把所有业务都写到一个类中,要拆分代码
三层架构:

  • 表现层(web层):和前端交互。直白点就是xxx.controller
  • 业务层(service层):核心业务实现的地方(学习阶段,代码最少的地方!!!开发阶段,代码最多的地方)
  • 数据处理层(dao层,翻译过来database access object):和数据库进行交互。
    • dao还有一个名字叫mapper==》映射(mybatis架构)

xxxController:
持有service对象
service.方法()
xxxService:
持有mapper对象
mapper.方法()
xxxMapper:
查询数据库;


@Component
@RestController
@RequestMapping("/user")
public class UserController {
    UserService userService = new UserService();

    @GetMapping("/findAll")
    public List<User> findAll(){
        List<User> list = userService.findAll();
        return list;
    }
    @PostMapping("/update")
    public Map updata(@RequestBody User user){
        userService.update(user.getUsername());
        HashMap hashMap = new HashMap();
        hashMap.put("code",200);
        return hashMap;
    }


}

public class UserService {
    UserDao userDao = new UserDao();
    public List<User> findAll(){
       return userDao.findAll();
    }

    public void update(String username){
        userDao.update(username);
    }
}
@Component
@Repository
public class UserDao {
    public List<User> findAll(){
        //todo 去查询数据库 SELECT * FROM t_user
        ArrayList<User> list = new ArrayList<User>();
        list.add(new User("tom"));
        list.add(new User("jack"));
        list.add(new User("rose"));

        return list;
    }
    public void update(String username){
        System.out.println("修改用户名为"+username);
    }

}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component//程序启动时,会创建一个User对象放到spring容器中
public class User {
    private String username;
}

SpringIOC/DI

IOC:控制反转

直白点就是不再自己new对象,让spring帮你创建
本质:不再自己new对象,让spring创建对象。Spring如何创建对象呢?也是new 走的实际是反射,关键对象创建以后放入spring的容器中,后续我们要对象让spring要。
IOC==》三层的对象和特定对象需要创建ioc创建,实体类不能用!!!
实体类还是自己new对象

使用方法:在目标类上 加注解@Component
@Component==> spring帮我们创建对象

在spring的优化下我们针对@Component注解,进行了优化,提供语义化的注解
我们后期IOC通常应用 三层对象和配置对象上,其他情况我们还是自己new对象(例如pojo)

  • @Controller通常放在web层的Controller
  • @Service通常放在service层下的实现类上
@SpringBootTest(classes = BootApplication.class)
public class IOCTest {

    @Autowired //找spring容器要
    UserService userService;
    //找spring容器要对象
//    @Autowired
//    //Dog dog;
//    UserController userController;
//
//    @Autowired
//    UserService userService;
//
//    @Autowired
//    UserDao userDao;

    @Test
    public void testIOC(){
        System.out.println(userService);
        //多态
        //Animal dog = new Dog();
    }
}

DI:依赖注入

Spring创建对象的时候,给对象赋值。

【时空图神经网络 & 交通】相关模型3:STFGNN | 空间-时间依赖性 | 基于数据驱动的方法来生成“时间图” | 时空融合图模块,门控卷积模块 | 动态时间规整 | 顶会文章解析 STFGNN(时空融合图神经网络)在交通流量预测中的优势主要体现在以下几个方面:首先,它提出了一种数据驱动的方法生成“时间图”,弥补了传统空间图可能无法反映的某些相关性。其次,STFGNN通过并行处理不同时间段的空间图和时间图,有效地学习隐藏的时空依赖关系。此外,它将融合图模块与门控卷积模块整合到一个统一层中,通过层层堆叠处理长序列,进一步增强了模型的表达能力。实验结果表明,STFGNN在多个交通数据集上表现出色,优于其他基准方法,展示了其在实际应用中的强大潜力。 阅读详情

相关推荐

通达信股本变迁文件(gbbq)解密方法

近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义。。。问券商的交易软件要呗 到处查资料,得知通达信的权息文件数据齐全,不仅含有除权除息数据,还含有限售解禁、增发、可转债上市等股本变化数据 ——这对于某些对成交量变化敏感的交易模型是非常重要的

不甘碌碌老,结庐铸宝刀 2万+

TypeReference简单了解及使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 最近项目中使用到了TypeReference,发现自己使用了这么长时间的fastjson竟然没有了解过这个类,索性查一些资料总结一下。总结的不一定到位,就当自己学习过的证据吧!!! 提示:以下是本篇文章正文内容,下面案例可供参考 一、TypeReference是什么? TypeReference是com...

北京叮咚的博客 4万+

Android逆向分析

Android 逆向开发是指对已发布的 Android 应用进行分析和破解,以了解应用程序的内部工作原理,获取应用程序的敏感信息,或者修改应用程序的行为。Android应用 Java编写的,利用Android SDK编译代码,并并且把所有的数据和资源文件打包成一个APK(Android Package)文件这是一个后缀名为.apk的压缩文件,apk文件中包含了一个Anddroid应用程序的所有内容,是Android平台用于安装应用程序的文件。

qq_51598534的博客 6293

JSON解析讲解

JSON解析讲解 文章目录JSON解析讲解1.JSON1.1 JSON概述1.2 JSON语法1.3 JSON解析工具1.4 Gson解析工具1.5 FastJason解析工具fastjson的API介绍1.6 Jackson解析工具Jackson的API介绍 1.JSON 1.1 JSON概述 json:JavaScript Object Notation,js对象标记法。是一种轻量级的数据格式,可以代替XML JSON(JavaScript Object Notation, JS 对象简谱) 是

yalenlang_long的博客 800

无监督学习与互信息

在机器学习中,获取大量高质量标注数据成本高昂。为解决此问题,无监督学习利用丰富的无标注数据成为研究重点。其中,互信息是衡量两个随机变量之间依赖关系的关键指标,能够捕捉非线性统计关联,非常适合处理非结构化数据。通过最大化神经网络中变量间的互信息,可以有效地从无标注数据中提取有用信息,提升模型在下游任务(如分类)的性能。互信息与熵密切相关,其值等于联合分布与边缘分布乘积间的KL散度,也可通过熵与条件熵的差值得出,具有对称性,并反映了已知一个变量后另一个变量不确定性的减少。

盼小辉丶的博客 3518

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体、概念和它们之间的关系都以图表形式呈现出来的一种数据结构。要构建一个知识图谱,需要从不同的数据源中采集到相关信息,并将这些信息整合在一起,最终形成一个全面而且精确的知识图谱。

微学AI的博客 2544

JSON格式及FastJson使用详解

笔者已经把面试题和答案整理成了面试专题文档《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)笔者已经把面试题和答案整理成了面试专题文档。

A1867350的博客 838

Microsoft Forms功能深度解析:企业数据收集与协作的智能利器

Microsoft Forms是微软365生态中的在线表单工具,支持问卷调查、测验和投票创建,具备拖拽式界面、多题型设计和实时数据分析功能。其核心价值在于易用性、跨平台兼容性以及与Teams、SharePoint等微软服务的深度集成,满足GDPR/HIPAA等合规要求。提供表单创建、权限管理、自动化流程(通过Power Automate)和审计日志等功能,适用于金融、医疗、教育等多行业场景。虽然存在逻辑分支有限等约束,但通过案例证明能显著提升数据收集效率(达70-85%)。使用时需注意许可证配置(Busin

xueyunshengling的博客 9124

Json \ Jackson \ ObjectMapper 的关系,Java对象和Json对象的相互转化

Jason 是存储和交换文本信息的一种语法。 Jackson 是当前最广泛用来序列化 和 反序列化 json 的 java 开源框架。 ObjectMapper 是 Jackson 中最常用的一个API。

GoodManS的优快云 878

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

简介水文学法实现河道内生态流量计算

WW、forever的博客 5014

PrimeTime low power-多电压设计流程(1)

PrimeTime支持使用IEEE 1801统一电源格式(UPF)标准来指定设计的多电压特性。PrimeTime能够在多电压供电和使用set_voltage命令在特定电源网上设置电压值的情况下,正确分析设计的时序。要了解如何使用多电压设计流程,请参考以下内容:- 多电压分析需求- 指定电源连接性- UPF命令- GoldenUPF流程- 多重电源电压分析。

QRBQ 528

【Java Web】005 -- 请求响应 & 分层解耦(Postman、三层架构、IOC、DI、注解)

请求响应 & 分层解耦,内容主要包括:Postman、三层架构、IOC(控制反转)、DI(依赖注入)、注解。

汤姆lazy的优快云博客 9389

FlexSim:FlexSim软件介绍与安装

在开始安装FlexSim之前,首先需要从FlexSim官方网站下载安装包。FlexSim提供不同版本的软件,包括教育版、专业版等,确保选择适合您需求的版本。下载页面通常会列出系统要求,包括操作系统、处理器、内存和硬盘空间,确保您的计算机满足这些要求。访问FlexSim官方网站。导航至下载页面。选择适合您需求的FlexSim版本。点击下载按钮,开始下载安装包。在开始构建模型之前,首先需要明确模型的目标。模型目标是指导模型设计和分析的核心,它定义了你希望通过模型解决的问题或探索的系统行为。

kkchenjj的博客 5802

JavaWeb——005 请求响应 & 分层解耦(Postman、三层架构、IOC、DI、注解)

在上一次的课程中,我们开发了springbootweb的入门程序。基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。其实呢,是我们在浏览器发起请求,请求了我们的后端web服务器(也就是内置的Tomcat)。而我们在开发web程序时呢,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应,响应一个字符串 “Hello World”。

pangyaqi的博客 2202

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

后端请求响应和分层解耦web开发的三层架构

在 web 开发中,三层架构通常指的是将一个应用程序分为三个逻辑层:表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。 表示层(Presentation Layer): 表示层是用户与应用程序交互的界面,通常是用户界面(UI)或者用户体验(UX)层。 它负责接收用户的请求,展示信息给用户,并将用户的输入传递给业务逻辑层进行处理。 在 web 开发中,表示层通常由 HTML、CSS、JavaScript

多多的博客 12万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解

一. HTTP请求报文解剖 HTTP Request :HTTP请求 Request Line:请求行 Header:请求头 Request Body:请求体 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: 其中,①,②和③属于请求行;④属于请求头;⑤属于报文体 ① 是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST,如果是RESTful接口的话一

weixin_43899069的博客 5万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

axios 请求拦截器&响应拦截器

一、 拦截器介绍 一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器、响应拦截器。 请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie、请求体加验证、设置请求头等,相当于是对每个接口里相同操作的一个封装; 响应拦截器 同理,响应拦截器也是如此功能,只是在请求得到响应之后,对响应体的一些处理,通常是数据统一处理等,也常来判断登录失效等。 二、 Axios实例 创建axios实例 // 引入axios import axios from 'axios' //

初学者0721的博客 2万+

黑马2023Javaweb (5)|请求响应 & 分层解耦(Postman、三层架构、IOC、DI、注解)

浏览器(带参数数据)请求web服务器,web服务器通过匹配请求路径,获得数据,并做出响应。该响应在浏览器中展示。

leeyayai_xixihah的博客 1492

HTTP请求与响应相关知识点解读

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在Web浏览器(客户端)和Web服务器之间交换信息的协议。HTTP是无状态协议,这意味着每次请求是独立的,服务器不保存客户端之前的请求信息。HTTP是一种请求-响应的协议,客户端发送请求,服务器返回响应。常见的HTTP请求方法包括GET、POST、PUT、DELETE等,每个方法有特定的用途。HTTP响应由状态码、响应头和响应体组成,状态码用于表示请求的处理结果。前端通常使用JavaScript的fetch。

2301_79858914的博客 2510

SpringBootWeb请求响应和三层架构

请求和响应简单来说都是前端和后端互相沟通的一个方式,请求指的是前端程序向后端发送数据“请求”操作,响应指的是后端程序将前端的请求处理后做出的“回应”。

CadWasUsed的博客 988

关于请求头、请求体、响应头和响应体的介绍

关于请求头、请求体、响应头和响应体的介绍

customer08的博客 2万+

请求头和响应头

目录 请求 请求方法 两者区别 其他请求方式 请求报文 请求行 请求头 ​​​​​​​​​​​​​​​​​​​​​请求体 响应 响应行 响应状态码 响应头 响应体 请求 请求,由客户端向服务端发出,可以分为3部分内容:请求方法(Request Method) 、请求的网址( Request URL )、请求报文(Request message) 请求方法 常见的请求方法有两种:GET和POST。 在浏览器中直接输入 URL 并回车,这便发起了一个 GET 请求,请求的

HHYZBC的博客 1万+

JavaWeb——005 -- 请求响应 & 分层解耦(Postman、三层架构、IOC、DI、注解)

前言(SpringBoot程序请求响应流程)

pangyaqi的博客 1089

请求对象&响应对象(Request&Response)相关知识点

1.HTTP协议的概念 HTTP协议的介绍 HTTP的特点 HTTP请求 1.请求的组成部分 请求行 请求头 请求体 2.请求的方式 GET方式 POST方式 注意:只有post的请求方式才有请求体 2.HTTP请求的三个组成 请求行 请求头 请求体 3.请求信息的组成:请求行 1.请求方发:GTE和POST 2.URI 统一资源标识符 3.协议和版本号(HTTP/1.1) 4.请求信息的组成:请求头、请求体 请求头 请求头由多个键和值组成 请求体 小结 request对象介绍与作用

anyi2351033836的博客 1537

05JavaWeb——SpringBootWeb请求响应(请求参数、响应、分层解耦)

在上一次的课程中,我们开发了springbootweb的入门程序。基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。其实呢,是我们在浏览器发起请求,请求了我们的后端web服务器(也就是内置的Tomcat)。而我们在开发web程序时呢,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应,响应一个字符串 “Hello World”。

qq_56947957的博客 1583

SpringBootWeb请求响应

在上一次的课程中,我们开发了springbootweb的入门程序。基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。其实呢,是我们在浏览器发起请求,请求了我们的后端web服务器(也就是内置的Tomcat)。而我们在开发web程序时呢,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应,响应一个字符串 “Hello World”。

从原理到实践,探索 AI、机器人、编程与科研技术。 885
上一篇: Maven&Springboot知识点
下一篇: python入门篇(一)
Jie_Chang
博客等级 码龄4年 571粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jie_Chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值