java面试题之springmvc篇

1,什么是SpringMVC?SpringMVC常用的组件有哪些?

  SpringMVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,由于是Spring的后续产品,它有一个天然的优势就是天生就和Spring框架集成。

  

  SpringMVC中最核心的组件就是DispatcherServlet(前端控制器);除此之外还有三大组件:HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、ViewResolver(视图解析器)。

2,SpringMVC的工作流程?

  

  1)用户发送请求至DispatcherServlet(前端控制器);

  (2)DispatcherServlet(前端控制器)收到请求后,调用HandlerMapping(处理器映射器),请求获取Handle(处理器);
  (3)HandlerMapping处理器映射器)根据请求url找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet(前端控制器);
  (4)DispatcherServlet (前端控制器)调用 HandlerAdapter(处理器适配器);
  (5)HandlerAdapter(处理器适配器) 经过适配调用Handler(处理器);
  (6)Handler(处理器)执行完成返回ModelAndView;
  (7)HandlerAdapter(处理器适配器)将Handler执行结果ModelAndView返回给DispatcherServlet(前端控制器);
  (8)DispatcherServlet(前端控制器)将ModelAndView传给ViewResolver(视图解析器)进行解析;
  (9)ViewResolver(视图解析器)解析后返回具体View;
  (10)DispatcherServlet(前端控制器)对View进行渲染视图(即将模型数据填充至视图中)
  (11)DispatcherServlet(前端控制器)响应用户。

3,SpringMVC中常用的注解及其作用

  @Controller:用户控制层注解

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

  @RequestParam(value=“参数名”,required=true):是否传入指定参数,默认是true;若没传入就报错

4,SpringMVC怎么样设定重定向和转发的?

  转发:在返回值前面加"forward:",例如"forward:list.action"

  重定向:在返回值前面加"redirect:",例如"redirect:list.action"

5,如何解决POST请求中文乱码问题

  POST:在web.xml文件中配置一个CharacterEncodingFilter过滤器,设置成utf-8

  

6,拦截器的使用

  新建一个类实现HandlerInterceptor接口

  

   在springmvc的核心配置文件中做出以下配置,path路径可根据实际情况做出修改

  

原文地址:https://www.cnblogs.com/javaisbest/p/12718104.html