博学谷 > 资讯 > Java > SpringMVC的组件解析

原创 SpringMVC的组件解析

发布时间:2020-04-20 19:25:32 浏览 603 来源:博学谷 作者:照照

    今天,让我们一起来看看SpringMVC的组件解析,主要内容有SpringMVC的执行流程、SpringMVC组件解析、SpringMVC注解解析和SpringMVCXML配置解析。下面一起来看看详细内容吧~

     

    SpringMVC的组件

     

    1、SpringMVC的执行流程(参照下图)

     

    SpringMVC的组件

     

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

     

    2DispatcherServlet收到请求调用HandlerMapping处理器映射器。

     

    3)处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet

     

    4DispatcherServlet调用HandlerAdapter处理器适配器。

     

    5HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)

     

    6Controller执行完成返回ModelAndView

     

    7HandlerAdaptercontroller执行结果ModelAndView返回给DispatcherServlet

     

    8DispatcherServletModelAndView传给ViewReslover视图解析器。

     

    9ViewReslover解析后返回具体View

     

    10DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet响应用户。

     

    2SpringMVC组件解析

     

    1)前端控制器:DispatcherServlet

     

    用户请求到达前端控制器,它就相当于 MVC 模式中的 CDispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。

     

    2)处理器映射器:HandlerMapping

     

    HandlerMapping 负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

     

    3)处理器适配器:HandlerAdapter

     

    通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

     

    4)处理器:Handler

     

    它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由Handler 对具体的用户请求进行处理。

     

    5)视图解析器:View Resolver

     

    View Resolver 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名,即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

     

    6)视图:View

     

    SpringMVC 框架提供了很多的 View 视图类型的支持,包括:jstlViewfreemarkerViewpdfView等。最常用的视图就是 jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

     

    3SpringMVC注解解析

     

    @RequestMapping

     

    作用:用于建立请求 URL和处理请求方法之间的对应关系。

     

    位置:类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径。

     

    属性:value用于指定请求的URL。它和path属性的作用是一样的;method用于指定请求的方式;params用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的keyvalue必须和配置的一模一样。

     

    例如:

     

    params = {"accountName"},表示请求参数必须有accountName

     

    params = {"moeny!100"},表示请求参数中money不能是100

     

    (1)mvc命名空间引入

     

    SpringMVC的组件

     

    2)组件扫描

     

    SpringMVC基于Spring容器,所以在进行SpringMVC操作时,需要将Controller存储到Spring容器中,如果使用@Controller注解标注的话,就需要使用<context:component-scan base-package=com.itheima.controller"/>进行组件扫描。

     

    4SpringMVCXML配置解析

     

    SpringMVC有默认组件配置,默认组件都是DispatcherServlet.properties配置文件中配置的,该配置文件地址org/springframework/web/servlet/DispatcherServlet.properties,该文件中配置了默认的视图解析器,如下:

     

    org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.Inter

     

    nalResourceViewResolver

     

    (1)视图解析器

     

    我们可以通过属性注入的方式修改视图的的前后缀

     

    <!--配置内部资源视图解析器-->

     

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

     

        <property name="prefix" value="/WEB-INF/views/"></property>

     

        <property name="suffix" value=".jsp"></property>

     

    </bean>

     

    总结一下的知识要点,SpringMVC的相关组件包括前端控制器、处理器映射器、处理器适配器、处理器、视图解析器和视图。SpringMVC请求映射注解@RequestMapping,视图解析器配置:

     

    REDIRECT_URL_PREFIX = "redirect:"

     

    FORWARD_URL_PREFIX = "forward:"

     

    prefix = "";

     

    suffix = "";

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

领取成功
领取失败
上一篇:SpringMVC快速入门学习笔记 下一篇:怎么学好Java?有哪些建议?

相关推荐 更多

最新文章

扫描二维码,回复"Java"获取180G资料包