![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
请求相关
文章平均质量分 69
请求处理过程
执迷11
这个作者很懒,什么都没留下…
展开
-
错误处理机制
1.默认规则:默认情况下,Spring Boot提供 /error 处理所有错误的映射 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,响应一个“ whitelabel”错误 视图,以HTML格式呈现相同的数据error/下的4xx,5xx页面会被自动解析;也可以取出错误的详细信息 和堆栈错误信息2.异常自动配置原理ErrorMvcAutoConfiguration 自动配置异常处理规则1.容器中的组件:类型:DefaultError原创 2022-02-20 17:22:44 · 472 阅读 · 0 评论 -
全局数据返回及异常处理
1.全局数据返回可以定义一个hashmap类,结构类似下图这样,1.状态码,2.信息,3.数据域工具类:/** * @Author: lzp * @Description: 统一返回的工具类 * @Date Create in 13:26 2022/04/06 * @Modified By: */public class R extends HashMap<String, Object> { private static final long serialVersionUI原创 2022-04-06 14:18:33 · 1669 阅读 · 0 评论 -
文件上传及原理
示例页面表单后台:/** * 文件上传测试 */@Slf4j@Controllerpublic class FormTestController { @GetMapping("/form_layouts") public String form_layouts(){ return "form/form_layouts"; } /** * MultipartFile 自动封装上传过来的文件 * @param email原创 2022-02-20 16:14:36 · 217 阅读 · 0 评论 -
拦截器及其原理
拦截器1.创建一个拦截类,完成拦截逻辑,此处是拦截登录,未登录的话进行拦截。/** * 登录检查 * 1、配置好拦截器要拦截哪些请求 * 2、把这些配置放在容器中 */@Slf4jpublic class LoginInterceptor implements HandlerInterceptor { /** * 目标方法执行之前 * @param request * @param response * @param handler原创 2022-02-20 15:47:10 · 499 阅读 · 0 评论 -
视图解析thymeleaf
thymeleaf使用1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>2.页面文件放在resources下templates目录下,.ht原创 2022-02-20 15:05:59 · 1409 阅读 · 0 评论 -
请求处理过程4-数据响应与内容协商
应用于前后端分离模式仿真调试1.请求发过来,先到DispatcherSevelet类中doDispatch方法,2.执行方法3.获取返回值解析器(15个)4.继续执行5.拿到返回值后继续执行6.寻找哪个返回值处理器可以处理,然后就调用该处理器处理这个处理器可以处理7.MessageConverters处理,将数据转为json8.内容协商浏览器默认会以请求头的方式告诉服务器他能接受什么样的内容类型服务器最终根据自己自身的能力,决定服务器能生产出什么样内容类型的数据原创 2022-01-13 22:19:12 · 177 阅读 · 0 评论 -
请求处理过程3-解析参数
请求进来,先找到能处理的controller,再找到处理器适配器,完成controller方法的调用。调用方法的第一步就是先要获取方法参数,这里也是请求参数。然后处理返回结果,再然后渲染页面。1.handle方法调用刚刚找到的RequestMappingHandlerAdapter的handle方法,完成请求的执行。2.handleInternal方法然后调用RequestMappingHandlerAdapter类的handleInternal方法,这里有三个步骤1.对请求进行检查,2.然原创 2022-05-14 20:17:39 · 749 阅读 · 0 评论 -
请求处理过程2-获取RequestMappingHandlerAdapter
获取到RequestMappingHandler处理器映射器后,再获取RequestMappingHandlerAdapter处理器适配器。完成controller方法的执行。1.获取RequestMappingHandlerAdapter protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException { if (this.handlerAdapters != null) { for (H原创 2022-05-14 13:26:43 · 693 阅读 · 0 评论 -
请求处理过程1-获取HandlerMapping
1.确定由哪个controller处理这次请求请求进来会到DispatcherServlet类的doDispatch方法通过 getHandler方法 就获得了当前请求的处理对象,也就是controller。1.getHandler方法 @Nullable protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { //遍历handlerMappings 一共有5个 这里原创 2022-05-14 11:19:58 · 1193 阅读 · 0 评论 -
WebMvcAutoConfiguration
WebMvcAutoConfiguration 是Spring boot针对Web MVC的自动配置机制。//表明是一个配置类@Configuration(proxyBeanMethods = false)//必须是SERVLET类型才会启用,引入web依赖后,默认是SERVLET类型@ConditionalOnWebApplication(type = Type.SERVLET)//必须有这三个类才会启用此配置类@ConditionalOnClass({ Servlet.class, Disp原创 2022-05-20 18:38:27 · 2282 阅读 · 0 评论