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:视图解析器,根据逻辑视图名解析成真正的视图,

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

     

  • 相关阅读:
    8.10
    今日头条笔试题 1~n的每个数,按字典序排完序后,第m个数是什么?
    Gym 100500B Conference Room(最小表示法,哈希)
    CodeForces 438D The Child and Sequence(线段树)
    UVALIVE 6905 Two Yachts(最小费用最大流)
    Gym Conference Room (最小表示法,哈希)
    hdu 2389 Rain on your Parade(二分图HK算法)
    Codeforces Fox And Dinner(最大流)
    zoj 3367 Counterfeit Money(dp)
    ZOJ3370. Radio Waves(2-sat)
  • 原文地址:https://www.cnblogs.com/yuanfuqiang/p/5823773.html
Copyright © 2011-2022 走看看