动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

简述Spring MVC核心类

08-17 17:39 120浏览
举报 T字号
  • 大字
  • 中字
  • 小字

熟悉Spring MVC组件的小伙伴看到Spring MVC核心类可能觉得会很眼熟,实际上二者确实是有很紧密的联系的。其实,细想一下,组件的功能是由类方法来实现的,就不难理解它们的相似之处了。本文为小伙伴们介绍Spring MVC核心类的相关知识。Spring MVC核心类主要5个,分别为DispacterServletHandlerMapingHandlerAdapterViewResolverViewResolver为大家逐一介绍

一、DispacterServlet

DispatcherServlet类是http请求处理程序/控制器的中央调度器,例如web ui控制器或者基于http的远程导出器。它就是一个Servlet.此类默认读取WEB-INF/[servlet-name]-servlet.xml配置文件。发送到处理程序来处理一个web请求,提供方便的映射和异常处理设施。

这个servlet 是相当灵活的:根据需求安装相应的适配器类就可以在任何工作流中使用,它提供以下功能,将其与其他的请求驱动SpringMVC框架进行区分:

1.它是基于javabeans配置机制。

2.它可以使用预先构建或者作为程序一部分提供的一些HandlerMapping去控制对处理对象的请求路由。

3.它可以使用任何HandlerAdapter;这允许使用任何处理程序接口。

4.调度程序的异常解决策略可以通过HandlerExceptionResolver来指定,例如将某些异常映射到错误页面。

5.其视图解析策略可以通过ViewResolver实现来指定,将符号视图名称解析为View对象。默认为InternalResourceViewResolver。

6.如果用户不提供视图或视图名称,则配置的RequestToViewNameTranslator将将当前请求转换为视图名称。

7.调度员解决多部分请求的策略由MultipartResolver实现决定。

8.其区域设置解决策略由LocaleResolver决定。

9.其主题解决策略由ThemeResolver决定。

Web应用程序可以定义任意数量的DispatcherServlet。每个servlet将在自己的命名空间中运行,使用映射,处理程序等加载自己的应用程序上下文。只有ContextLoaderListener加载的根应用程序上下文(如果有的话)将被共享。

  • 二、HandlerMaping

HandlerMapping接口实现类:由定义请求和处理程序对象之间映射的对象实现的接口。SimpleUrlHandlerMapping通过配置文件,把一个URL映射到Controller。

该类可以由应用程序开发人员实现,尽管这不是必需的,因为BeanNameUrlHandlerMapping和RequestMappingHandlerMapping包含在框架中。如果在应用程序上下文中没有注册HandlerMapping bean,则前者是默认值。DefaultAnnotationHandlerMapping通过注解,把一个URL映射到Controller类上。

HandlerMapping实现可以支持映射拦截器,处理程序将始终包装在HandlerExecutionChain实例中,可选地伴随有一些HandlerInterceptor实例。 DispatcherServlet将首先按给定的顺序调用每个HandlerInterceptor的preHandle方法,如果所有preHandle方法返回true,最后调用处理程序本身。

参数化此映射的功能是此MVC框架的强大且不寻常的功能。例如,可以根据会话状态,Cookie状态或许多其他变量编写自定义映射。没有其他MVC框架似乎同样灵活。

  • HandlerAdapter

公共接口类HandlerAdapter中的AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上。

必须为每个处理程序类型实现的接口来处理请求。该接口用于允许DispatcherServlet无限可扩展。 DispatcherServlet通过此接口访问所有已安装的处理程序,这意味着它不包含特定于任何处理程序类型的代码。

这个类只是保持两者使得控制器能够以单个返回值返回模型和视图。

四、ViewResolver对象解析的String视图名称的形式; 或者可以直接指定View对象。 该模型是一个Map,允许使用由名称键入的多个对象。

五、ViewResolver

要通过名称解析视图的对象实现的接口。

视图状态在应用程序运行期间不会更改,因此实现可以自由缓存视图。

鼓励实施支持国际化,即本地化视图解决。

由于Spring MVC核心类和核心组件之间的紧密联系,建议小伙伴们学习Spring MVC框架知识的时候,可以把两者放在一起学习起到事半功倍的效果。当然,再结合本站Spring MVC视频教程那就更加水到渠成了!

0人推荐
共同学习,写下你的评论
0条评论
无心出岫
程序员无心出岫

10篇文章贡献51071字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消