以下题目顺序根据面试中问的概率排序的,尽量都背下来啊。

​目录​

面试题一:什么是Spring MVC ?简单介绍下你对springMVC的理解?

面试题二:SpringMVC的工作流程?

面试题三:Springmvc的优点?

面试题四:SpringMVC常用的注解有哪些?

面试题五:SpringMVC怎么样设定重定向和转发的?


面试题一:​什么是Spring MVC ?简单介绍下你对springMVC的理解?


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


面试题二:​SpringMVC的工作流程?


1、用户发起Web请求后到达Web容器(如:Tomcat/Jetty),服务器再将请求对象(HttpServletRequest)交给前置控制器(DispatcherServlet)。这里的前置控制器就是SpringMVC的核心入口,拦截匹配的请求。

2、前置控制器收到请求后会在doService()方法中设置一些属性,然后再将请求交给请求处理适配器(HandlerAdapter)。

3、请求处理适配器再去找到对应的请求处理器(Handler)去进一步处理请求(其实就是执行此请求要做的业务方法)。

4、请求处理器处理好请求后,返回一个ModelAndView对象并生成对应的页面再次交给前置控制器,由前置控制器将响应数据返回客户端。


面试题三:​Springmvc的优点?


(1)可以支持各种视图技术,而不仅仅局限于JSP;

(2)与Spring框架集成(如IOC容器、AOP等);

(3)清晰的角色分配:前端控制器(dispatcherServlet) ,请求到处理器映射(handlerMapping),处理器适配器(HandlerAdapter),视图解析器(ViewResolver)。

(4)支持各种请求资源的映射策略。

(5)它较Struts更简单、更安全。


面试题四:​SpringMVC常用的注解有哪些?


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

@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。

@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。


面试题五:​SpringMVC怎么样设定重定向和转发的?


(1)转发:在返回值前面加"forward:",例如"forward:user.do?name=method4"

(2)重定向:在返回值前面加"redirect:",例如"redirect:http://www.baidu.com"