首先我们要知道web层主要是有接收 处理 响应的功能,在spring框架中我们怎样才能比较简便的进行前后端数据交互呢?下面让我们来一起了解了解springweb层控制类的使用!!!
首先让我们来了解了解什么是控制类?
Spring可以通过@Controller注解自动发现你的控制器类以及@RequestMapping注解中的请求映射,这样就为你免去了在Bean配置文件中配置它们的麻烦。
那让我们了解了解下面的标签
@RestController 类似于@service这些注解标签 表示此类是控制层类,并创建对象
@RequestMapping(path="/loginCtl")用来为类和方法定义一个映射地址 此方法在类和方法上可以使用,在类上使用,整个项目必须是唯一的,不能重复。如果是在方法上定义时,同一个类中的地址也必须是唯一的,可以使用path/value来定义地址。
@RequestMapping(path="/loginCtl")==@RequestMapping(value="/loginCtl") 在我们以前前端要往后端发送请求时用get/post方法进行发送,在框架中我们同时也是如此
before:使用request对象接收 req.getparameter();
- @RequestMapping(path="/test",method = RequestMethod.POST)//可以使用path和value进行定义
- @GetMapping(path="/test")
- public String test(HttpServletRequest request, HttpServletResponse response){
- System.out.println(request.getParameter("num"));
- return "springweb";
- }
now:在框架中我们可以直接在参数表中定义形参接收,还可以帮我们进行数据类型转换
- @GetMapping(path="/test")
- //请求中的键名称与形参名一致注解被接收 不一致需要通过注解标签进行绑定
- public String test(Integer num, @RequestParam("user_name") String user_Name,
- @RequestHeader("User-Agent") String userAgent){
- System.out.println(num);
- return "springweb";
- }
直接使用对象接收:在保存表单数据中,数据比较多,请求你数据类型转换会有问题,但是 spring 框架较好的解决了这个问题
- @GetMapping(path="/login")//get请求中文没有问题,post请求中文有乱码问题(spring提供了一个编码的过滤器)
- public CommonResult login(Admin admin, Integer mark) {
- System.out.println(admin);
- Admin a=loginService.login(admin);
- CommonResult commonResult=new CommonResult(200,"保存成功");//可以对创建方法进封装
-
-
- return commonResult;
- }
-
- //在接收日期时,需要对其进行特殊处理
- // @DateTimeFormat(pattern = "yyyy-MM-dd")
- //private Date birthday;
拦截器和过滤器的区别:
搭建拦截器: