JaveWeb后端-Web基础-SpringBoot Web、HTTP协议

Spring

官网:spring.io

SpringBootWeb使用步骤

1、创建SpringBoot工程,勾选web开发依赖


2、定义请求处理类~~Controller,定义请求处理方式

java 复制代码
@RestController//表示当前类是一个请求处理类
public class HelloController {
    @RequestMapping("/hello")
    public String hello(String name){
        System.out.println("name:"+name);
        return "hello:"+name+"~";
    }
}

3、运行启动类,测试

HTTP协议

Hyper Text Transfer Protocol

特点:

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

2、基于请求-响应模型:一次请求对应一次响应

3、HTTP是无状态的连接:对事务处理没有记忆能力,每次请求-响应都是独立的

缺点:多次请求间不能共享数据

优点:速度快

HTTP-请求协议

请求数据格式

红色:请求行

黄色:请求头

常见请求头

请求体:POST请求,存放请求参数
get方式和post方式

请求数据获取

java 复制代码
@RestController
public class RequestController {
    @RequestMapping("/request")
    public String request(HttpServletRequest request){
        //1、获取请求方式
        String method = request.getMethod();
        System.out.println("请求方式:"+method);
        //2、获取请求url地址
        String url = request.getRequestURL().toString();//http://localhost:8080/request
        System.out.println("请求url地址:"+url);
        String uri = request.getRequestURI();
        System.out.println("请求uri地址:"+uri);
        //3、获取请求协议
        String protocol = request.getProtocol();//HTTP/1.1
        System.out.println("请求协议:"+protocol);
        //4、获取请求参数-name,age
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        System.out.println("请求参数-name:"+name);
        System.out.println("请求参数-age:"+age);
        //5、获取请求头-Accept
        String header = request.getHeader("Accept");
        System.out.println("请求头-Accept:"+header);

        return "OK";
    }

}

HTTP-响应协议

响应数据格式

响应数据:响应行,响应头,响应体

状态码图鉴

java 复制代码
@RestController
public class ResponseController {
    /**
     * 方式一:使用HttpServletResponse设置响应数据
     * @param response
     * @throws IOException
     */
    @RequestMapping("/response")
    public void response(HttpServletResponse  response) throws IOException {
        //1、设置响应状态码
        response.setStatus(401);
        //2、设置响应头
        response.setHeader("name","it");
        //3、设置响应体
        response.getWriter().write("<h1>hello response</h1>");
    }
    /**
     * 方式二:使用ResponseEntity设置响应数据
     */

    @RequestMapping("/response2")
    public ResponseEntity<String> response2(){
        return ResponseEntity.status(401)//响应状态码
                .header("name","javaweb-ai")//响应头
                .body("<h1>hello response2</h1>");//响应体
    }

}
相关推荐
zhuà!25 分钟前
腾讯地图TMap标记反显,新增标记
前端·javascript·vue.js
未知原色28 分钟前
web worker使用总结(包含多个worker)
前端·javascript·react.js·架构·node.js
ttod_qzstudio38 分钟前
CSS改变图片颜色方法介绍
前端·css
幽络源小助理43 分钟前
SpringBoot+Vue摄影师分享社区源码 – Java项目免费下载 | 幽络源
java·vue.js·spring boot
curdcv_po1 小时前
我接入了微信小说小程序官方阅读器
前端·微信小程序
程序员鱼皮1 小时前
什么是 RESTful API?凭什么能流行 20 多年?
前端·后端·程序员
+VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue健身房管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
www_stdio1 小时前
让大语言模型拥有“记忆”:多轮对话与 LangChain 实践指南
前端·langchain·llm
inferno1 小时前
JavaScript 基础
开发语言·前端·javascript
cindershade1 小时前
Intersection Observer 的实战方案
前端