zoukankan      html  css  js  c++  java
  • Spring MVC 详解(二)

    前端控制器

    web.xml中配置:

    springmvc.xml中配置springmvc架构三大组件(处理器映射器、适配器、视图解析器)

    处理器映射器

    springmvc.xml中配置:

    BeanNameUrlHandlerMapping: 根据请求urlXXXX.action)匹配spring容器bean的 name

    找到对应的bean(程序编写的Handler

     

    <!-- 根据beanname进行查找Handler actionurl配置在beanname中 -->

     

    <bean

     

    class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

     

    所有处理器映射器都实现HandlerMapping接口。

    处理器适配器

    springmvc.xml配置:

    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 

    所有的适配器都是实现了HandlerAdapter接口。

    程序编写Handler根据适配器的要求编写。

    SimpleControllerHandlerAdapter适配器要求:

    通过supports方法知道Handler必须要实现哪个接口:

     

     Handler编写

    需要实现Controller接口:

     配置Handler

    springmvc.xml配置Handlerspring管理Handler

     配置视图解析器

     

    配置视图解析,能够解析jsp视图:

     

     

    注解映射器和适配器

    注解映射器

    spring3.1之前默认加载映射器是

    org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,

    3.1之后要使用:

    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

     

    springmvc.xml中配置RequestMappingHandlerMapping:

     

    使用RequestMappingHandlerMapping需要在Handler 中使用@controller标识此类是一个控制器,使用@requestMapping指定Handler方法所对应的url

     注解适配器

    spring3.1之前默认加载映射器是

    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter,

    3.1之后要使用:

    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

    RequestMappingHandlerAdapter,不要求Handler实现任何接口,它需要和RequestMappingHandlerMapping注解映射器配对使用,主要解析Handler方法中的形参。

     

    注解开发Hanlder

    配置Handler

    建议使用组件扫描,组件扫描可以扫描@Controller@Service@component@Repsitory

    小结

    DispatcherServlet:前端控制器,相当于中央调度器,可以降低组件之间的耦合度。

    HandlerMapping:处理器映射器,负责根据url查找Handler

    HandlerAdapter:处理器适配器,负责根据适配器要求的规则去执行处理器。可以通过扩展适配器支持不同类型的Handler

    viewResolver:视图解析器,根据逻辑视图名解析成真正的视图,

    真正视图地址==前缀+逻辑视图名+后缀

     

  • 相关阅读:
    PCL:描述三维离散点的ROPS特征(Code)
    veket智能机器人
    三维重建:SLAM的粒度和工程化问题
    DNN:逻辑回归与 SoftMax 回归方法
    人工智能:一种现代方法 第四版 翻译序言
    编程低级错误记录
    apache服务器配置防盗链(centos7)
    Linux下命令行中的复制和粘贴
    rm: cannot remove `libtoolT’: No such file or directory
    switch范围判断
  • 原文地址:https://www.cnblogs.com/yuanfuqiang/p/5823773.html
Copyright © 2011-2022 走看看