共计 1719 个字符,预计需要花费 5 分钟才能阅读完成。
开篇介绍
大家好,我是 Java 最全面试题库
的提裤姐,明天这篇是 JavaEE 面试题系列的第二篇,次要总结了 SpringMVC
相干的问题,在后续,会沿着第一篇开篇的常识线路始终总结上来,做到日更!如果我能做到百日百更,心愿你也能够跟着百日百刷,一百天养成一个好习惯。
什么是 Spring MVC?
Spring MVC 是一个基于 Java 的实现了 MVC 设计模式的申请驱动类型的轻量级 Web 框架,通过把 Model,View,Controller
拆散,将 web 层进行职责解耦,把简单的 web 利用分成逻辑清晰的几局部,简化开发,缩小出错,不便组内开发人员之间的配合。
SpringMVC 的工作原理?
①用户向服务器发送申请,申请被 springMVC 前端控制器 DispatchServlet
捕捉;
②DispatcherServle 对申请 URL 进行解析,失去申请资源标识符(URL),而后依据该 URL 调用 HandlerMapping
,将申请映射到处理器 HandlerExcutionChain
;
③DispatchServlet 依据取得 Handler 抉择一个适合的 HandlerAdapter
适配器解决;
④Handler 对数据处理实现当前将返回一个 ModelAndView()
对象给 DisPatchServlet;
⑤Handler 返回的 ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet 通过 ViewResolver
试图解析器将逻辑视图转化为真正的视图 View;
⑥DispatcherServle 通过 model 解析出 ModelAndView() 中的参数进行解析最终展现出残缺的 view
并返回给客户端;
说说 Spring MVC 的重要组件?
1.前端控制器 DispatcherServlet
作用:接管申请、响应后果,相当于转发器,有了 DispatcherServlet 就缩小了其它组件之间的耦合度。
2.处理器映射器 HandlerMapping
作用:依据申请的 URL 来查找 Handler
3.处理器适配器 HandlerAdapter
留神:在编写 Handler 的时候要依照 HandlerAdapter 要求的规定去编写,这样适配器 HandlerAdapter 才能够正确的去执行 Handler。
4.处理器 Handler
5.视图解析器 ViewResolver
作用:进行视图的解析,依据视图逻辑名解析成真正的视图(view)
6.视图 View
View 是一个接口,它的实现类反对不同的视图类型(jsp,freemarker,pdf 等等)
SpringMVC 罕用注解都有哪些?
@requestMapping
用于申请 url 映射。@RequestBody
注解实现接管 http 申请的 json 数据,将 json 数据转换为 java 对象。@ResponseBody
注解实现将 controller 办法返回对象转化为 json 响应给客户。@PathVariable
URL 中占位符参数绑定到控制器解决办法的入参中
如何开启注解处理器和适配器?
在 springmvc.xml
中通过开启 <mvc:annotation-driven>
来实现注解处理器和适配器的开启。
如何解决 get 和 post 乱码问题?
post 申请乱码:
在 web.xml
里边配置一个 CharacterEncodingFilter
过滤器。设置为 utf-8
。
get 申请的乱码:有两种办法。
①批改 tomcat 配置文件增加编码与工程编码统一。
②对参数进行从新编码 `String userName = New
String(Request.getParameter(“userName”).getBytes(“ISO8859-1″),”utf-8”);`
SpringMVC 怎么样设定重定向和转发的?
1、转发:在返回值后面加"forward:"
2、重定向:在返回值后面加"redirect:"
Spring MVC 是如何进行异样解决?
将异样抛给 Spring 框架,由 Spring 框架来解决;咱们只须要配置简略的异样处理器
Spring MVC 的长处?
- 基于 View 框架的无缝集成,采纳 IOC 便于测试
- 典型的纯 MVC 架构,Struts 是不齐全基于 MVC 框架的