SpringMVC-Interview

74 阅读2分钟

在浏览器输入url后的全部过程(一次完整的http请求过程)

  1. 将域名解析为ip
  • 本地是否有域名缓存,如果没有则查询远程域名服务器查询
  1. 发起tcp链接
  • 三次握手(客户端sync,服务器ack/sync,客户端ack)
  1. 发起http请求
  • 与服务器建立链接后,就发起请求
  1. 服务器处理请求
  2. 返回响应结果
  3. 关闭tcp链接
  • 关闭tcp链接(四次挥手:客户端fin,服务ack,服务器fin,客户端ack)
  1. 解析html
  2. 浏览器布局渲染

SpringMVC请求过程(SpringMVC执行流程)

  1. 请求到DispatchSevlert分发中心
  2. 到RequestMapping匹配到对应的请求方法(返回执行链,拦截器1,拦截器2.。。Hander)
  3. 到RequestHandler处理请求
  4. 到Controller
  5. 从Controller返回,并带ModelAndView
  6. 返回RequestHandler
  7. 返回DispatchSevlet
  8. 到视图解析器
  9. 返回DispatchSevlet
  10. 视图渲染
  11. 返回给用户

SpringMVC主要组件

  • 分发中心DispatchServlet
  • 处理器映射器RequestMapping
  • 处理器适配器RequestAdapter
  • 处理器Handel(Controller)
  • 视图解析图
  • 视图

SpringMVC有哪些优点

SpringMVC怎么设定重定向和转发的

请求转发与重定向的区别

  • 转发在服务器内部,重定向在浏览器
  • 转发是一次请求,重定向是两次请求
  • 转发url不变,重定向url改变
  • 转发只能在一个服务中,重定向可以在不同服务器之间
  • 转发不会执行转发后的代码,重定向会执行重定向后的代码

设定重定向 redirect

设定转发 forward

Spring,Springboot,SpringMVC之间的区别

Spring是轻量的,企业级开发框架,

SpringBoot是在Spring之上,为了快速搭建开发环境,让开发人员专注于业务开发的框架。默认约定大于配置

SpringMVC是一个用于web开发的mvc框架,可以与Spring非常友好的整合。

SpringMVC常用注解

标题
@RequestMapping,@RequestBody,@ResponseBody

如何解决POST中文乱码,Get中文乱码

SpringMVC拦截器怎么写 如果在拦截请求中,想拦截Get请求,怎么配置 注解原理 SpringMVC异常处理 SpringMVC控制器是不是单例的,如果是有什么问题?怎么解决

参考 juejin.cn/post/684490… blog.csdn.net/guan1843036…