前言

在java 开发中,Controller层是连接前端和后端的,接收前端发送请求,同时向后端发送请求,起到承上启下的作用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Controller是什么?

1、简单的说 Controller 负责解析用户的输入,处理后返回相应的结果
例如:
在 RESTful 接口中,Controller 接受用户的参数,从数据库中查找内容返回给用户或者将用户的请求更新到数据库中。
在 HTML 页面请求中,Controller 根据用户访问不同的 URL,渲染不同的模板得到 HTML 返回给用户。
在代理服务器中,Controller 将用户的请求转发到其他服务器上,并将其他服务器的处理结果返回给用户。

2、 Controller 层主要对用户的请求参数进行处理(校验、转换),然后调用对应的 service 方法处理业务,得到业务结果后封装并返回:
获取用户通过 HTTP 传递过来的请求参数。
校验、组装参数。
调用 Service 进行业务处理,必要时处理转换 Service 的返回结果,让它适应用户的需求。
通过 HTTP 将结果响应给用户。

二、Controller层注解

1.@RestController

@RestController注解:
相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
@RestController 和 @Controller 的区别
如果使用 @Controller,返回结果 如下;
在这里插入图片描述
@Controller 注解不能将结果写入到 HTTP response body 中,因而无法正常显示。
如果是用@RestController ,请求之后返回的结果如下。
在这里插入图片描述

2.@ResponseBody

@ResponseBody注解:
这个方法返回的东西会通过IO流的方式写入到浏览器。会将返回结果直接写入 HTTP response body 中,一般在ajax异步获取数据时使用

3.@RequestMapping

@RequestMapping注解
配置url映射,返回值通常解析为跳转路径。声明了 HTTP 请求的 HTTP 方法的类型。所有的处理处理方法会处理从这同一个 URL( /home)进来的请求, 但要看指定的 HTTP 方法是什么来决定用哪个方法来处理。

4.@Controller

在这里插入图片描述
问题:使用thymeleaf作为模板文件出现
Template might not exist or might not be accessible by any of the configured Template Resolvers
编译时软件不会自动将Templates夹编译进去,需要删除target文件件后,重新编译就不会出现此问题了
在这里插入图片描述


总结

记录点点滴滴

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐