HTTP协议,请求响应

news2024/11/19 17:37:51

、概述

二、HTTP请求协议

三、HTTP响应协议

四、请求数据

1.简单实体参数

    @RequestMapping("/simpleParam")
    public  String simpleParam(@RequestParam(name ="name" ,required = false ) String username, Integer age){
        System.out.println (username +":"+age);//自动转换数据类型
        return "OK";
    }

2.实体参数

@RequestMapping("/simplePojo")
public String simplePojo(User user){
    System.out.println ( user );
    return "ok";

3.数组参数

@RequestMapping("/arrayParam")
public String arrayParam(String [] hobby){
    System.out.println ( Arrays.toString ( hobby ) );
    return "ok";

4.集合参数

 @RequestMapping("/listParam")
    public String listParam(@RequestParam  List<String> hobby){
        System.out.println ( hobby );
        return "ok";

    }

5.日期参数

    @RequestMapping("/dateParam")
    public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime){
        System.out.println (updateTime);
        return "ok";
    }

6.Json参数

    @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println (user);
        return "ok";
    }

7.路径参数

    //路径参数
    @RequestMapping("/path/{id}")
    public String pathParam(@PathVariable Integer id){
        System.out.println (id);
        return "ok";
    }


    @RequestMapping("/path/{id}/{name}")
    public String pathParams(@PathVariable Integer id,@PathVariable String name){
        System.out.println (id);
        return "ok";
    }

五、响应数据

package com.itheima.controller;

import com.itheima.pojo.Address;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class ResponseController {
    @RequestMapping("hello")
    public String hello(){
        System.out.println ("Hello World ~");
        return "Hello World";
    }
    @RequestMapping("/getAddr")
    public Address getAddr(){
        Address addr=new Address ();
        addr.setProvince ( "广东" );
        addr.setCity ( "深圳" );
        return addr;
    }
    @RequestMapping("/listAddr")
    public List<Address> listAddr(){
        List<Address> list =new ArrayList<> ();
        Address addr=new Address ();
        addr.setProvince ( "广东" );
        addr.setCity ( "西安" );
        Address addr2=new Address ();
        addr2.setProvince ( "陕西" );
        addr2.setCity ( "西安" );
        list.add ( addr );
        list.add ( addr2 );
        return  list;
    }
}

package com.itheima.pojo;

/**
 * 统一响应结果封装类
 */
public class Result {
    private Integer code ;//1 成功 , 0 失败
    private String msg; //提示信息
    private Object data; //数据 data

    public Result() {
    }
    public Result(Integer code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public Integer getCode() {
        return code;
    }
    public void setCode(Integer code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }

    public static Result success(Object data){
        return new Result(1, "success", data);
    }
    public static Result success(){
        return new Result(1, "success", null);
    }
    public static Result error(String msg){
        return new Result(0, msg, null);
    }

    @Override
    public String toString() {
        return "Result{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}
import com.itheima.pojo.Address;
import com.itheima.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class ResponseController {
    @RequestMapping("hello")
    public Result hello(){
        System.out.println ("Hello World ~");
       // return new Result (1,"success","Hello World");
        return Result.success ("hello world");
    }
    @RequestMapping("/getAddr")
    public Result getAddr(){
        Address addr=new Address ();
        addr.setProvince ( "广东" );
        addr.setCity ( "深圳" );
        return Result.success (addr);
    }
    @RequestMapping("/listAddr")
    public Result listAddr(){
        List<Address> list =new ArrayList<> ();
        Address addr=new Address ();
        addr.setProvince ( "广东" );
        addr.setCity ( "西安" );
        Address addr2=new Address ();
        addr2.setProvince ( "陕西" );
        addr2.setCity ( "西安" );
        list.add ( addr );
        list.add ( addr2 );
        return Result.success (list);
    }
}

六、请求响应---响应案例

import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import com.itheima.utils.XmlParserUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class EmpController {
@RequestMapping("/listEmp")
    public Result list(){
    //1.加载并解析xml文件
    String file=this.getClass ().getClassLoader ().getResource ( "emp.xml" ).getFile ();
    System.out.println ( file );
    List<Emp> empList = XmlParserUtils.parse ( file, Emp.class );

    //2.对数据进行转换处理
    empList.stream ().forEach (emp -> {
        //处理gender 1:男 2:女
        String gender = emp.getGender ();
        if ("1".equals (gender)){
            emp.setGender ( "男" );
        }else if("2".equals (gender)){
            emp.setGender ( "女" );
        }
        String job = emp.getJob ();
        if ("1".equals ( job )){
            emp.setJob ( "讲师" );
        }else if ("2".equals ( "gender" )){
            emp.setJob ( "班主任" );
        }else  if ("3".equals ( job )){
            emp.setJob ( "就业指导" );
        }
    }  );

    //3.响应数据
    return Result.success (empList);

    }
}

七、分层解耦

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java的火车高铁订票购票系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

PowerShell 内网不能直接安装SqlServer模块的处理办法

PowerShell 内网不能直接安装SqlServer模块的处理办法 文章目录 下载sqlserver module安装sqlserver module导入和验证sqlserver 模块推荐阅读 下载sqlserver module 首先先将sqlserver.nupkg下载到本地&#xff0c;我是放到了C:\windows\system32目录下。 PowerShell Galler…

2023年【电工(初级)】最新解析及电工(初级)新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;初级&#xff09;最新解析是安全生产模拟考试一点通总题库中生成的一套电工&#xff08;初级&#xff09;新版试题&#xff0c;安全生产模拟考试一点通上电工&#xff08;初级&#xff09;作业手机同…

采访|使用过ChatGPT的同学在与人工智能对话后的体验

“我能够回答各种问题&#xff0c;包括但不限于有关互联网、科技、娱乐、教育等领域的知识。我不会感到疲倦或分心&#xff0c;也没有情绪或偏见。”这是ChatGPT对自己的描述。ChatGPT拥有从巨大语料库中学习、理解自然语言文本的强大功能。强大的对话、理解能力使得它仅仅用了…

ArcGIS Engine:报错无法嵌入互操作类型“ESRI.ArcGIS.Geometry.EnvelopeClass”。请改用适用的接口。

此错误是由于尝试直接实例化ArcGIS COM组件的某些互操作类引起的。这在.NET Framework 4及更高版本中是不被推荐的。 为了解决此问题&#xff0c;你需要确保在工程的引用中将ArcGIS的互操作类型设置为“不嵌入”。 按照以下步骤操作&#xff1a; 在解决方案资源管理器中找到…

网络爬虫指南

一、定义 网络爬虫&#xff0c;是按照一定规则&#xff0c;自动抓取网页信息。爬虫的本质是模拟浏览器打开网页&#xff0c;从网页中获取我们想要的那部分数据。 二、Python为什么适合爬虫 Python相比与其他编程语言&#xff0c;如java&#xff0c;c#&#xff0c;C&#xff…

如何使用百度“云一朵”来分析PDF文件

PDF 文件是一种常见的文件格式&#xff0c;用于存储文档、图像和其他内容。在许多情况下&#xff0c;我们需要对 PDF 文件进行分析&#xff0c;以提取其中的信息。百度“云一朵”提供了一个 PDF 分析 API&#xff0c;可以帮助我们轻松地对 PDF 文件进行分析。 在本博客文章中&…

第15届蓝桥STEMA测评真题剖析-2023年8月20日Scratch编程中级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第155讲。 第15届蓝桥第1次STEMA测评&#xff0c;这是2023年8月20日举办的STEMA&#xff0c;比赛仍然采取线上形式。这…

Java基础---第十五篇

系列文章目录 文章目录 系列文章目录一、红黑树有哪几个特征?二、说说你平时是怎么处理 Java 异常的三、说说深拷贝和浅拷贝?一、红黑树有哪几个特征? 紧接上个问题,面试官很有可能会问红黑树,下面把红黑树的几个特征列出来: 二、说说你平时是怎么处理 Java 异常的 try…

Ubuntu22.04 交叉编译gcc9.5 for arm

一、准备 环境&#xff1a;ubuntu22.04为刚刚安装&#xff0c;未安装gcc等包 vi ~/.bashrc输入 export PATH$PATH:/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin 保存,reboot 安装&#xff1a; sudo apt install cmake sudo apt install gawk sudo apt instal…

【go语言】方法

go的方法是一种作用在接收者&#xff08;某种类型的变量&#xff0c;不能是接口和指针&#xff09;上的特殊函数 方法的声明 // 类型方法接收者是值类型 func (t TypeName) MethodName (ParamList ) (Returnlist) {//method body }// 类型方法接收者是指针 func (t *TypeName…

A股上市公司数字技术创新与企业高质量发展 企业全要素生产率-5种测算方法 2000-2022

数据简介&#xff1a;全要素生产率(TFP&#xff09;也可以称之为系统生产率。指生产单位&#xff08;主要为企业&#xff09;作为系统中的各个要素的综合生产率&#xff0c;以区别于要素生产率&#xff08;如技术生产率&#xff09;。测算公式为&#xff1a;全要素生产率产出总…

解决nvm切换node版本失败的终极办法-秒杀网上99%的水文

nvm是一款强大的node多版本管理器&#xff0c;可以轻易选择你需要的node版本&#xff0c;这对win7平台简直就是超好的福音&#xff1a;可以突破node 14.15以上的安装限制。 但是nvm安装有一个巨大的坑点&#xff1a;nvm use 版本号以后&#xff0c;并没有生效&#xff0c;nvm …

2023年【R2移动式压力容器充装】模拟考试及R2移动式压力容器充装模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R2移动式压力容器充装模拟考试考前必练&#xff01;安全生产模拟考试一点通每个月更新R2移动式压力容器充装模拟考试题题目及答案&#xff01;多做几遍&#xff0c;其实通过R2移动式压力容器充装操作证考试很简单。 1…

概率密度函数,概率分布函数

概率密度函数&#xff1a;描述信号的取值在某个确定的取值点附近的概率的函数&#xff1b;概率分布函数的导数。 以幅值大小为横坐标&#xff0c;以每个幅值间隔内出现的概率为纵坐标进行统计分析。反映了信号落在不同幅值强度区域内的概率情况。 直方图&#xff1a;对每个幅…

【Linux】TCP的服务端(守护进程) + 客户端

文章目录 &#x1f4d6; 前言1. 服务端基本结构1.1 类成员变量&#xff1a;1.2 头文件1.3 初始化&#xff1a;1.3 - 1 全双工与半双工1.3 - 2 inet_aton1.3 - 3 listen 2. 服务端运行接口2.1 accept&#xff1a;2.2 服务接口&#xff1a; 3. 客户端3.1 connect&#xff1a;3.2 …

Pikachu靶场——不安全的文件下载(Unsafe Filedownload)

文章目录 1. Unsafe Filedownload1.1 Unsafe Filedownload1.1.1 源代码分析1.1.2 漏洞防御 1.2 不安全的文件下载防御措施 1. Unsafe Filedownload 不安全的文件下载概述&#xff1a; 文件下载功能在很多web系统上都会出现&#xff0c;一般我们当点击下载链接&#xff0c;便会…

认知智能最新研究成果

声明&#xff1a;以下内容仅代表个人对现象和本质探索&#xff0c;不代表对学术成果评价。曾有幸和马文明斯基的学生段老师和方老师一起讨论过人工智能问题。随着自己对问题进一步理解&#xff0c;刚好18年左右开始接触认知智能理论核心认知计算部分。 第一&#xff1a;算法是一…

MySQL5.7版本与8.0版本在Ubuntu(WSL环境)系统安装

目录 前提条件 1. MySQL5.7版本在Ubuntu&#xff08;WSL环境&#xff09;系统安装 1. 1 下载apt仓库文件 1.2 配置apt仓库 1.3 更新apt仓库的信息 1.4 检查是否成功配置MySQL5.7的仓库 5. 安装MySQL5.7 1.6 启动MySQL 1.7 对MySQL进行初始化 1.7.1 输入密码 …

IDM(Internet Download Manager)2024中文版下载工具软件

IDM&#xff08;Internet Download Manager&#xff09;&#xff1a;功能强大&#xff0c;下载速度快&#xff0c;支持多线程下载&#xff0c;下载过程中遇到突然断电等情况&#xff0c;可以进行断点续传&#xff0c;很多人因此而首选IDM。 优点&#xff1a; &#xff08;1&a…