以下题目顺序根据面试中问的概率排序的,尽量都背下来啊。
目录
面试题一:什么是Spring MVC ?简单介绍下你对springMVC的理解?
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
1、用户发起Web请求后到达Web容器(如:Tomcat/Jetty),服务器再将请求对象(HttpServletRequest)交给前置控制器(DispatcherServlet)。这里的前置控制器就是SpringMVC的核心入口,拦截匹配的请求。 2、前置控制器收到请求后会在doService()方法中设置一些属性,然后再将请求交给请求处理适配器(HandlerAdapter)。 3、请求处理适配器再去找到对应的请求处理器(Handler)去进一步处理请求(其实就是执行此请求要做的业务方法)。 4、请求处理器处理好请求后,返回一个ModelAndView对象并生成对应的页面再次交给前置控制器,由前置控制器将响应数据返回客户端。
(1)可以支持各种视图技术,而不仅仅局限于JSP; (2)与Spring框架集成(如IOC容器、AOP等); (3)清晰的角色分配:前端控制器(dispatcherServlet) ,请求到处理器映射(handlerMapping),处理器适配器(HandlerAdapter),视图解析器(ViewResolver)。 (4)支持各种请求资源的映射策略。 (5)它较Struts更简单、更安全。
@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。 @RequestBody:注解实现接收http请求的json数据,将json转换为java对象。 @ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。
(1)转发:在返回值前面加"forward:",例如"forward:user.do?name=method4" (2)重定向:在返回值前面加"redirect:",例如"redirect:http://www.baidu.com"