Java Spring MVC面试题 概述 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 核心组件 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等等)。 优点 Spring MVC的优点包括: 1. 可以支持各种视图技术,而不仅仅局限于JSP。 2. 与Spring框架集成(如IoC容器、AOP等)。 3. 清晰的角色分配:前端控制器、请求到处理器映射、处理器适配器、视图解析器。 4. 支持各种请求资源的映射策略。 工作原理 Spring MVC的工作流程包括: 1. DispatcherServlet接收请求。 2. HandlerMapping根据请求的URL来查找Handler。 3. HandlerAdapter执行Handler。 4. ViewResolver进行视图的解析。 5. View返回最终的结果。 MVC框架 MVC是什么? MVC是一种软件架构模式,使用Model、View、Controller三个基本部分来组织代码,Model代表数据,View负责显示数据,Controller负责处理用户输入,将Model和View连接起来。 MVC设计模式的好处包括: 1. 促进了代码重用。 2. 使得程序结构清晰。 3. 便于维护和扩展。 常用注解 Spring MVC常用的注解包括: 1. @Controller:标记一个类为控制器。 2. @RequestMapping:指定处理器的映射策略。 3. @ResponseBody:将方法的返回值直接写入HTTP响应体中。 4. @PathVariable:将URL中的变量映射到方法参数中。 5. @RequestParam:将请求参数映射到方法参数中。 @Controller注解的作用 @Controller注解标记一个类为控制器,控制器提供一个访问应用程序的行为,控制器解析用户输入并将其转换为一个由视图呈现给用户的模型。 @RequestMapping注解的作用 @RequestMapping注解指定处理器的映射策略,根据请求的URL来查找Handler。 @ResponseBody注解的作用 @ResponseBody注解将方法的返回值直接写入HTTP响应体中。 @PathVariable和@RequestParam的区别 @PathVariable将URL中的变量映射到方法参数中,而@RequestParam将请求参数映射到方法参数中。 其他 Spring MVC与Struts2的区别在于,Spring MVC是一个基于Java的轻量级Web框架,而Struts2是一个基于Java的重量级Web框架。 Spring MVC的异常处理机制包括: 1. 使用@ControllerAdvice注解标记一个类为异常处理器。 2. 使用@ExceptionHandler注解指定异常处理方法。 在拦截请求中,如何拦截GET方式提交的方法,可以使用Spring MVC提供的Interceptor机制来实现。 如何在方法里面得到Request或者Session,可以使用HttpServletRequest和HttpSession对象来实现。 如果想在拦截的方法里面得到从前台传入的参数,可以使用@RequestParam注解来实现。 如果前台有很多个参数传入,并且这些参数都是一个对象的,可以使用@ModelAttribute注解来实现。 Spring MVC中函数的返回值是什么? Spring MVC中函数的返回值可以是一个ModelAndView对象,也可以是一个字符串,或者是一个void类型。 Spring MVC用什么对象从后台向前台传递数据的? Spring MVC用ModelAndView对象从后台向前台传递数据。 如何把Model Map里面的数据放入Session里面? 可以使用HttpServletRequest的getSession方法来实现。 Spring MVC里面拦截器是怎么写的? 可以使用Spring MVC提供的Interceptor机制来实现拦截器。 WebApplicationContext是什么? WebApplicationContext是一个ApplicationContext的子接口,提供了Web应用程序的上下文环境。
剩余13页未读,继续阅读
- 粉丝: 1071
- 资源: 417
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助