前后端交互的几种方式

Vue+Springboot 前后端交互的几种方式

前置知识点

用于接收前端参数传递的几个注解

@RequestBody注解
@RequestParam注解
@PathVariable注解

@RequestParam和@PathVariable的区别
@RequestBody的使用
这两篇博客写的非常的详细,看完就会了

什么是Json格式,

前后端交互主要有Json格式、form-data格式等,Json格式为主。

{
    "ID": 1001,
    "name": "张三",
    "age": 24
}

1:数据在花括号中
2:数据以"键:值"对的形式出现(其中键多以字符串形式出现,值可取字符串,数值,甚至其他json对象)
3:每两个"键:值"对以逗号分隔(最后一个"键:值"对省略逗号)
像这种遵守上面3点,便可以形成一个json对象。

JavaWeb中的几个类

说实话,没有学过JavaWeb直接上手前后端,看其他大佬的代码总有出现 HttpServletRequest、HttpServletResponse、HttpSession、Model、ModelAndView这几个类,查来查去看的晕头转向。至少对于我来说

这边作为前置知识点简单讲下个人理解,有大佬有什么资料可以推荐给我。

HttpServletRequest和HttpServletResponse 由来

Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和 HttpServletResponse对象,向客户端发送数据找HttpServletResponse,从客户端取数据找HttpServletRequest.

具体可以看这篇博客

所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在HttpServletRequest内
HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法

所以后端Controller层@RequestMapping 映射函数中的参数经常都是HttpServletRequest,可以从前端获取数据。
在这里插入图片描述

HttpServletRequest中有一个getsession()方法,这边就引入了对HttpSession类的介绍

HttpSession类的介绍

服务器会为每一个用户 创建一个独立的HttpSession,我们只要知道我们可以从中获取我们需要的数据。下面是主要常用方法

关于Session

Object getAttribute(String name) 获取session对象中名为参数name所指明的属性的值

void setAttribute(String name,Object value) 向session中存储数据

void removeAttribute(String name ) 从session中删除名为参数name所指明的属性

void invalidate() 使session失效
Model和ModelAndView 这两个类

前面介绍的几个类用于前端向后端传数据,Model 和ModelAndView 主要用于后端向前端传。方法可以自行百度。下面开始正文。

前后端交互的几种方法

第一种:使用HttpServletRequest 后端接受前端传来的session信息

测试:下面这种方法获得的是登录的用户,登录的User发送了http请求。

数据库原始数据:
前后端交互的几种方式_第1张图片
使用postman传Json参数,我们用001用户登录。
前后端交互的几种方式_第2张图片

运行结果:
前后端交互的几种方式_第3张图片
登录成功,我们再看delete方式测试输出的UserId

 	@RequestMapping(value = "/User/getAllUser", method = RequestMethod.DELETE)
    @ResponseBody
    private void deleteUser(, HttpServletRequest request)throws Exception{
        String UserId =(String) request.getSession().getAttribute("UserId");
        System.out.println(UserId);
//        userService.delete(UserId);
    }
方法二 用使用@RequestParam注解

前后端交互的几种方式_第4张图片

原始数据库内容:
前后端交互的几种方式_第5张图片
使用postman发送PUT请求
前后端交互的几种方式_第6张图片
运行结果:
前后端交互的几种方式_第7张图片

方法三Json格式给后端传数据

使用JSONObject类
前后端交互的几种方式_第8张图片
使用方法很简单,在参数中使用@RequestBody注解传递一个JSONObject参数,关于JSONObject类,需要导入阿里的依赖,具体可以看看其他的博客,感觉越底层的东西越值钱。
之后我们需要什么参数,就可以通过params.get方法获取了。
原始数据库:
前后端交互的几种方式_第9张图片
使用postman发送DELETE请求:
前后端交互的几种方式_第10张图片

运行结果:
前后端交互的几种方式_第11张图片

还有几种封装过的方法,比较复杂,有机会学习了再更新。

你可能感兴趣的:(Springboot,个人总结,restful,java,spring)