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

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

     

  • 相关阅读:
    Well, that was fun! An adventure in WCF, SSL, and Host Headers (转)
    算法还重要吗?
    Silverlight测试——利用Ranorex实现数据驱动测试
    MSSQl分布式查询
    Silverlight 4 CHM中文离线文档已提供下载
    快速打包你的应用程序——Inno Setup
    IE 9 Beta 测试Bug
    IE 9 Bate 泄露版
    Windows PowerShell初体验——.NET对象支持
    多样化实现Windows Phone 7本地数据库访问<2>
  • 原文地址:https://www.cnblogs.com/yuanfuqiang/p/5823773.html
Copyright © 2011-2022 走看看