Spring MVC高频面试题

简介: 1.@Controller和@RestController的区别2.Spring MVC的常用注解有哪些?3.Spring MVC的组要组件有哪些?4.你对Spring MVC的理解5.Spring MVC怎么实现过滤器和拦截器

Spring MVC合集

@Controller和@RestController的区别?

 返回值不同

   @Controller返回的是一个视图,而@RestCobtroller返回的是一个对象

  默认响应类型不同

   @Controller默认响应类型是html,@RestController默认响应类型是JSON

  使用场景不同

  @Controller适合用于传统的web应用程序,而@RestController适合用于RESTful风格的web服务,尤其是前后端分离的web应用程序

Spring MVC常用的注解有哪些?

  @Controller

   用于标记一个类是Spring MVC的Controller,处理HTTP请求

  @RequestMapping

   用于映射http请求路径和请求方法

  @PathVariable

   用于获取请求url中的变量值

  @RequestParam

   用于获取请求参数的值

  @ResponseBody

   将Controller处理结果直接返回给客户端,而不是通过视图解析器进行视图渲染

  @ModelAttribute

   将请求参数绑定到Model中,使其在视图可以直接访问

  @ExceptionHandler

   用于定于全局异常处理方法

 Spring MVC的主要组件有哪些?

 DispatcherServlet

   DispatcherServlet是Spring MVC的核心组件,负责接收客户请求,并将请求转发给对应的控制器。同时DispatcherServlet也负责处理异常、执行过滤器、视图解析和渲染任务等

  HandleMapping

   HandlerMapping负责将客户端请求映射到对应的控制器进行处理。也实现了RequestMappingHandlerMapping

  Controller

   Controller负责处理客户端请求,进行业务逻辑处理,并返回响应结果

  ViewResolver

   ViewResolver负责将控制器处理后返回的数据映射到对应的视图渲染

  ModelAndView

   封装控制器返回的数据和视图

  HandlerInterceptor

   HandlerInterceptor负责在请求处理前、请求处理后和视图渲染前拦截请求

Spring MVC的理解

 组成

   Spring MVC是Spring Framework的一部分

  特点

  灵活性

    Spring MVC采用松耦合的设计,允许开发人员根据自己的需求来选择使用哪些组件

   可扩产性

    Spring MVC提供了很多扩展点,是开发人员轻松的添加自己的功能

  高能性

    Spring MVC采用基于注解的控制器(Controller),避免XML配置文件的解析和加载

   安全性

    Spring MVC提供了很多种安全机制,可以有效地保护应用程序的安全

 采用MVC模式

   模型

    表示应用程序的数据和业务逻辑,有javaBean组成,被控制器用于处理用户请求

   视图

    是用户界面,通常是一个html页面,用来展现模型中的数据

  控制器

    是应用程序的核心,负责接收和处理用户请求,并将请求转发给模型和视图,将处理结果返回给客户端

 应用场景

   RESTful服务

   前后端分离

Spring MVC怎么实现过滤器或者拦截器

 过滤器

   通过实现javax.servlet.Filter接口来实现过滤器。需要在web.xml中配置过滤器,即在<filter>标签中配置<filter-name>和<filter-class>,并在<filter-mapping>标签中配置过滤器的映射路径和顺序。

 拦截器

   通过实现org.springframework.web.servlet.HandlerInterceptor接口来实现拦截器。需要在Spring MVC配置文件中配置拦截器,即在mvc:interceptors标签中配置<bean>,并设置拦截器的顺序和映射路径。

用户请求到springMVC处理流程

  1.用户发起请求

 2. DispatcherServlet接收请求

 3. HandlerMapping进行请求映射

 4. Controller处理请求

 5.Controller返回ModelAndView

 6. DispatcherServle将ModolAndView交给ViewResolver进行视图解析

 7. View进行视图渲染

 8. DispatcherServlet将渲染结果返回给客户端

相关文章
|
6天前
|
Java 数据库连接 数据库
spring--为web(1),富士康java面试题整理
spring--为web(1),富士康java面试题整理
|
8天前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
298 3
|
8天前
|
监控 Java 应用服务中间件
Spring Boot 源码面试知识点
【5月更文挑战第12天】Spring Boot 是一个强大且广泛使用的框架,旨在简化 Spring 应用程序的开发过程。深入了解 Spring Boot 的源码,有助于开发者更好地使用和定制这个框架。以下是一些关键的知识点:
26 6
|
6天前
|
XML 前端开发 Android开发
Android架构设计——MVC,滴滴 战略 面试
Android架构设计——MVC,滴滴 战略 面试
|
6天前
|
前端开发 Java 关系型数据库
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
|
6天前
|
安全 Java 数据库
Spring boot 入门教程-Oauth2,java面试基础题核心
Spring boot 入门教程-Oauth2,java面试基础题核心
|
6天前
|
负载均衡 监控 Java
我把Spring Cloud的超详细资料介绍给你,面试官不会生气吧?geigei
我把Spring Cloud的超详细资料介绍给你,面试官不会生气吧?geigei
|
8天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(下)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
8 0
|
8天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(上)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
10 0
|
8天前
|
设计模式 前端开发 Java
初识Spring MVC
初识Spring MVC
15 0