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>");//响应体
    }

}
相关推荐
kyriewen44 分钟前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
小和尚同志1 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
老马识途2.01 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
徐小夕2 小时前
Loop Engineering 深度解析与实战指南(全网最全)
前端·算法·github
运筹vivo@2 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
#麻辣小龙虾#3 小时前
基于vue3.0开发一款【固废与废气运维管理系统】(支持源码)
前端·vue.js·vue3
Cosolar3 小时前
Docsify零构建文档站完全指南:从快速搭建到企业级部署
前端·开源·github
weixin_471383034 小时前
Taro-02-页面路由
前端·taro
星栈独行4 小时前
Makepad 应用如何读文件、调接口、保存数据
前端·程序人生·ui·rust·github
一 乐4 小时前
家政服务管理系统|基于springboot + vue家政服务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·家政服务管理系统