搜索
首页JavaJava面试题2020全新Java面试题——Spring(三)

2020全新Java面试题——Spring(三)

Jun 29, 2020 pm 05:10 PM
javaspring面试题

本文来自java面试题,文中为大家分享了spring相关的面试题,希望可以帮助到大家。1、说一下spring mvc运行流程;2、spring mvc有哪些客户端;3、@RequestMapping的作用是什么。

2020全新Java面试题——Spring(三)

一、说一下 spring mvc 运行流程

(相关推荐:java面试题

Spring运行流程描述:

1、用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;

2、DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

3、DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter;(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)

4、提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

  • HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息;

  • 数据转换:对请求消息进行数据转换。如String转换成Integer、Double等;

  • 数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等;

  • 数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中;

5、Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;

6、根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;

7、ViewResolver 结合Model和View,来渲染视图;

8、将渲染结果返回给客户端。

二、spring mvc 有哪些组件?

Spring MVC的核心组件:

1、DispatcherServlet:中央控制器,把请求给转发到具体的控制类

2、Controller:具体处理请求的控制器

3、HandlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略

4、ModelAndView:服务层返回的数据和视图层的封装类

5、ViewResolver:视图解析器,解析具体的视图

6、Interceptors :拦截器,负责拦截我们定义的请求然后做处理工作

三、@RequestMapping 的作用是什么?

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

RequestMapping注解有六个属性,下面我们把她分成三类进行说明。

value, method:

  • value:指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);

  • method:指定请求的method类型, GET、POST、PUT、DELETE等;

consumes,produces

  • consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

  • produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

params,headers

  • params: 指定request中必须包含某些参数值是,才让该方法处理。

  • headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

以上是2020全新Java面试题——Spring(三)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:csdn。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能