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

}
相关推荐
前端小蜗3 小时前
🌐 利用Chrome内置 【AI翻译 API】实现国际化
前端·javascript·浏览器
袁煦丞3 小时前
管家婆远程开单自由飞!管家婆系统:cpolar内网穿透实验室第646个成功挑战
前端·程序员·远程工作
Dontla3 小时前
前端V0介绍(Vercel推出的AI前端生成工具)
前端·人工智能
fury_1233 小时前
vue3:trycatch里面可以在写一个trycatch吗
前端
苏纪云3 小时前
ES6~ES11新特性
前端·ecmascript·es6
阿金要当大魔王~~3 小时前
uniapp 请求携带数据 \\接口传值 \\ map遍历数据
前端·javascript·uni-app
十铭忘3 小时前
基于SAM2的眼动数据跟踪2
java·服务器·前端
hey_ner4 小时前
页面PDF文件格式预览(不使用pdf.js)
前端·javascript
luckyPian4 小时前
前端+AI:HTML5语义标签(一)
前端·ai·面试·html·html5·ai编程