admin管理员组文章数量:1794759
SpringMVC常见面试题
Java常见面试题_2022最新版
1 | Java基础面试题 | blog.csdn/weixin_46030002/article/details/126399353 |
2 | Java集合容器面试题 | blog.csdn/weixin_46030002/article/details/126425298 |
3 | Java线程面试题 | blog.csdn/weixin_46030002/article/details/126518395 |
4 | Java异常面试题 | blog.csdn/weixin_46030002/article/details/126482778 |
5 | Spring常见面试题 | blog.csdn/weixin_46030002/article/details/127281194 |
6 | SpringMVC常见面试题 | blog.csdn/weixin_46030002/article/details/127057785 |
7 | Mybatis常见面试题 | blog.csdn/weixin_46030002/article/details/126026561 |
8 | MySQL常见面试题 | blog.csdn/weixin_46030002/article/details/126557564 |
9 | Redis常见面试题 | blog.csdn/weixin_46030002/article/details/126435834 |
- Java常见面试题_2022最新版持续更新中…
文章目录
- Java常见面试题_2022最新版
- MVC指的是什么
- MVC模式的好处有哪些?
- Spring MVC五大组件
- Spring MVC执行流程
- HTTP状态码分类:
- 常遇到的状态码
- get请求和post请求的区别
- 重定向和转发的区别
- 重定向
- 转发
- 同源策略
- 跨域
- session的工作原理
- cookie和session的区别
- Session和Token的区别
- SpringMVC中常用注解
MVC指的是什么
mvc是一种分层架构的设计模式,模型(model)、视图(view)、控制器(controller),用于实现前端页面的展现和后端业务数据处理的分离
MVC模式的好处有哪些?- 分层设计,实现了业务系统各个组件之间的解耦操作,有利于业务系统的可扩展性,可维护性
- 有利于系统的并行开发,提升开发效率
- Distaperservlet:前端控制器
- HandlerMapping:处理映射器
- Controller:控制器
- ModelAndView:数据视图
- ViewResolve:视图解析器
- 用户发送请求至前端控制器 DispatcherServlet。
- DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。
- 处理器映射器找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。
- DispatcherServlet 调用 HandlerAdapter 处理器适配器。
- HandlerAdapter 经过适配调用具体的处理器(Controller,也叫后端控制器)。
- Controller 执行完成返回 ModelAndView。
- HandlerAdapter 将 controller 执行结果 ModelAndView 返回给 DispatcherServlet。
- DispatcherServlet 将 ModelAndView 传给 ViewReslover 视图解析器。
- ViewReslover 解析后返回具体 View。
- DispatcherServlet 根据 View 进行渲染视图(即将模型数据填充至视图中)。
- DispatcherServlet 响应用户。
- 1** :信,服务器收到请求,需要请求者继续执行操作
- 2** :成功,操作被成功接收并处理
- 3** :重定向,需要进一步的操作以完成请求
- 4** :客户端错误,请求包含语法错误或无法完成请求
- 5** :服务器错误,服务器在处理请求的过程中发生了错误
- 200 OK
- 请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
- 301 Moved Permanently(永久重定向)
- 请求的资源已被永久的移动到新URL,返回信会包括新的URL,浏览器会自动定向到新URL。今后任何新的请求都应使用新的URI代替。
- 302 Found(临时重定向)
- 与301类似。但资源只是临时被移动。表示请求的资源被分配了新的URL,希望本次访问使用新的URL。
- 304 Not Modified(未修改)
- 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信指出客户端希望只返回在指定日期之后修改的资源。
- 400 Bad Request (语法错误)
- 客户端请求的语法错误,服务器无法理解。
- 401 Unauthorized(未授权)
- 请求要求用户的身份认证
- 403 Forbidden(禁止)
- 服务器理解请求客户端的请求,但是拒绝执行此请求
- 404 Not Found(未找到)
- 服务器无法根据客户端的请求找到资源(网页)。除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用。
- 405 Method Not Allowed (方法禁用 / 请求方式不被允许)
- 客户端请求中的方法被禁止。(请求方式错误 / 请求方式不对应)
- 415 Unsupported Media Type
- 表示服务器无法处理请求的格式,一般来讲是 contentType 没设置或不匹配
- 500 Internal Server Error(服务器内部错误)
- 服务器遇到错误,无法完成请求。
- 502 Bad Gateway(错误网关)
- 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
- 503 Service Unavailable(服务不可用)
- 由于超载或系统维护,服务器暂时的无法处理客户端的请求。通常,这只是一种暂时的状态。
- 504 Gateway Time-out(网关超时)
- 服务器作为网关或代理,未及时从上游服务器接收请求。
get请求
- 请求参数放在请求地址后面
- 请求参数大小有限制(4k以内)
- get参数会明文限制在url上
- 通过form表单提交(method=get)
- 从服务器获取数据时使用get请求
post请求
- 请求参数放在请求体里
- 请求参数大小没有限制
- post参数传出更安全
- 通过form表单提交(method=post)
- 向服务器传递数据时使用post请求
域不同时,一般用重定向(百度 --> 腾讯)
转发一般用于内部资源的访问
同源策略同源策略(Same origin policy)是一种约定,浏览器最基本和最核心的安全功能。 同源策略:是指协议,域名,端口都相同,只要有一个不相同则不满足同源策略,就会产生跨域现象。 同源:相同的源。 源:
- 协议:http https
- 域名:举例(www.baidu 180.101.33.15 … )
- 端口:举例(8080 8090 …)
当一个请求 url 的协议、域名、端口三者之间任意一个与当前页面 url 不同即为跨域 它指的是浏览器不能执行其他网站的脚本。是一种浏览器对 javascript 施加的一种安全限制。
session的工作原理客户端登陆完成后,服务器创建一个session对象,同时会为这个 session 生成一个唯一的 key,这个可以就是我们的sessionId,而 value 就是我们的session对象 。我们会将这个 key 和 value 保存到服务器的缓存中,当然也可以持久化到数据库或者Redis中。然后服务器再把 sessionId 以cookie的形式响应给客户端。这样下次客户端访问时,会直接带着 cookie 中的sessionId,然后服务器会根据这个 sessionId 找到对应的 session对象 。
cookie和session的区别cookie和session都是会话技术
cookie:数据保存在浏览器中
- 保存时间:默认保存在浏览器中,浏览器关闭数据就会被删除,但是可以设置时间,保存在磁盘中,时间到了自动删除
- 保存数据大小:不能超过4k,只能是字符串数据
- 性能:cookie在浏览器中,对服务端没有影响
- 应用场景:记住账号和密码
session:数据保存在服务器中
- 保存时间:默认保存时间是半小时,可以修改但是不建议,对服务器产生压力
- 保存数据大小:没有大小显示,可以保存任何数据类型
- 性能:过多会消耗服务器资源
- 应用场景:记住登陆状态
- session 和 token 都是为了验证用户身份,session 我们一般称为会话;token 我们一般称为令牌
- session 保存在服务端(服务器缓存,数据库,缓存型数据库中);token 保存到浏览器的请求头中(header)
- session 保存在服务端,会增加服务端内存开销;token 保存在浏览器中,减轻了服务器的压力和减少了频繁查询数据库,但是需要解析,浪费时间;所以session是以空间换时间,而token 是以时间换空间。
- token可以跨域,session不可以跨域,它与域名绑定
- token适用于集群,session不适用集群
- @ResponseBody 响应正文,表示控制器方法的返回值绑定到HTTP响应体
- @RestController Controller + @ResponseBody
- @RequestMapping 来映射请求到控制器或其控制器方法
- @GetMapping
- @PostMapping
- @PutMapping
- @DeleteMapping
- @RequestBody 标注在方法参数上,表示网络请求正文映射到方法参数
- @PathVariable 将请求路径上“URI模版”映射到控制器的方法参数上
- @RequestParam 将请求参数映射到控制器的方法参数上
- @ResponseStatus 设置HTTP响应状态码
- @RequestHeader 映射请求头到控制器方法参数
- @ControllerAdvice 全局异常处理类
- @RestControllerAdvice @ControllerAdvice + @ResponseBody 全局异常处理类
- @ExceptionHandler 异常拦截处理器
版权声明:本文标题:SpringMVC常见面试题 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686813332a106113.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论