架构师面试题系列之Spring MVC面试专题及答案(31题)

目录

  • 1、什么是 SpringMvc?说一下你对它的理解
  • 2、SpringMVC 的优点 :
  • 3、SpringMVC 工作原理?
  • 4、SpringMVC 的主要组件?
  • 5、讲下 SpringMvc 的执行流程
  • 6、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?
  • 7、如果在拦截请求中,想拦截 get 方式提交的方法,怎么配置?
  • 8、怎样在控制器方法里面得到 request 或者 session?
  • 9、如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
  • 10、前台传入多个参数,并且这些参数都是一个对象的属性,怎么进行参数绑定?
  • 11、SpringMVC 用什么对象从后台向前台传递数据的?
  • 12、SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  • 13、如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
  • 14、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?
  • 15、 @RequestMapping 注解用在类上面有什么作用?
  • 16、怎么样把某个请求映射到特定的方法上面?
  • 17、如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
  • 18、怎么样在方法里面得到 Request,或者 Session?
  • 19、我想在拦截的方法里面得到从前台传入的参数,怎么得到?
  • 20、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快
  • 21、SpringMvc 中函数的返回值是什么?
  • 22、SpringMVC 怎么样设定重定向和转发的?
  • 23、SpringMvc 用什么对象从后台向前台传递数据的?
  • 24、SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
  • 25、怎么样把 ModelMap 里面的数据放入 Session 里面?
  • 26、SpringMvc 怎么和 AJAX 相互调用的?
  • 27、当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,需要做什么处理?
  • 28、当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,需要做什么处理?
  • 29、如何解决 POST 请求中文乱码问题,GET 的又如何处理呢?
  • 30 、SpringMvc 里面拦截器是怎么写的
  • 31、什么是 MVC 模式?
  • 总结

1、什么是 SpringMvc?说一下你对它的理解

答:Spring MVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻
量级 Web 框架,通过把 Model,View,Controller 分离,将 web 层进行职责解
耦,把复杂的 web 应用分成逻辑清晰的几部分,简化开发,减少出错,方便组
内开发人员之间的配合。

2、SpringMVC 的优点 :

答:
(1)可以支持各种视图技术,而不仅仅局限于 JSP;
(2)与 Spring 框架集成(如 IoC 容器、AOP 等);
(3)清晰的角色分配: 前端控制器(dispatcherServlet) , 请求到处理器映射
(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器
(ViewResolver)。
(4) 支持各种请求资源的 映射策略。

3、SpringMVC 工作原理?

答:
1)客户端发送请求到 DispatcherServlet
2)DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller
3)Controller 调用业务逻辑后,返回 ModelAndView
4)DispatcherServlet 查询 ModelAndView,找到指定视图
5)视图将结果返回到客户端

4、SpringMVC 的主要组件?

答:
1)前端控制器:其作用是接收用户请求,然后给用户反馈结果。它的作用相当
于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一调
度,以降低组件之间的耦合性,有利于组件之间的拓展。
2)处理器映射器:其作用是根据请求的 URL 路径,通过注解或者 XML 配置,
寻找匹配的处理器信息。
3)处理器适配器:其作用是根据映射器处理器找到的处理器信息,按照特定规
则执行相关的处理器(Handler)。
4)处理器:其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信
息,将其封装至 ModelAndView 对象中。
5)视图解析器:其作用是进行解析操作,通过 ModelAndView 对象中的 View
信息将逻辑视图名解析成真正的视图 View(如通过一个 JSP 路径返回一个真正
的 JSP 页面)。
6)视图:View 是一个接口,实现类支持不同的 View 类型(JSP、FreeMarker、
Excel 等)。

5、讲下 SpringMvc 的执行流程

答:系统启动的时候根据配置文件创建 spring 的容器, 首先是发送 http 请求
到核心控制器 disPatherServlet,spring 容器通过映射器去寻找业务控制器,使
用适配器找到相应的业务类,在进业务类时进行数据封装,在封装前可能会涉
及到类型转换,执行完业务类后使用 ModelAndView 进行视图转发,数据放在
model 中,用 map 传递数据进行页面显示。

6、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?

1.一般使用@Controller 注解标识控制器。
2.也可以使用@RestController 注解替代@Controller 注解,@RestController 相当
于@ResponseBody+@Controller,表示控制器中所有的方法都返回 JSON 格式数
据,一般不使用其他注解标识控制器。

7、如果在拦截请求中,想拦截 get 方式提交的方法,怎么配置?

可以在@RequestMapping 注解里面加上 method=RequestMethod.GET。
@RequestMapping(value=“/toLogin”,method = RequestMethod.GET)public
ModelAndView toLogin(){}
可以使用@GetMapping 注解。
@GetMapping(v

你可能感兴趣的:(spring,mvc,面试)