前端控制器

在web.xml中配置:

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

处理器映射器

在springmvc.xml中配置:

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

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

<!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->

<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配置Handler由spring管理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:视图解析器,根据逻辑视图名解析成真正的视图,

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

Spring MVC 详解(二)的更多相关文章

  1. Spring Aop 详解二

    这是Spring Aop的第二篇,案例代码很详解,可以查看https://gitee.com/haimama/java-study/tree/master/spring-aop-demo. 阅读前,建 ...

  2. Spring MVC 详解之废话少说

    <陈翔六点半之废话少说>.... Spring WEB MVC 的请求流程: Spring WEB MVC架构: 开始创建.配置gradle项目 1.在gralde项目中,选择SDK 和框 ...

  3. 【64】Spring mvc详解

    Spring mvc框架 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务 ...

  4. Java之Spring mvc详解

    文章大纲 一.Spring mvc介绍二.Spring mvc代码实战三.项目源码下载四.参考文章   一.Spring mvc介绍 1. 什么是springmvc   springmvc是sprin ...

  5. Spring MVC详解

    Spring MVC 教程,快速入门,深入分析 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 目录  一.前言二.spring ...

  6. Spring MVC 详解(一)

    springmvc是spring的一个模块,提供web层解决方案(基于mvc设计架构),mvc是一个设计模式,在b/s系统的应用: spring 的架构 mvc设计模式 spring MVC的框架 第 ...

  7. Spring mvc详解(山东数漫江湖)

    Spring mvc框架 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务 ...

  8. 1.Spring MVC详解

    目录 1.SpringMVC 详细介绍 2.SpringMVC 处理请求流程 3.配置前端控制器 4.配置处理器适配器 5.编写 Handler 6.配置处理器映射器 7.配置视图解析器 8.Disp ...

  9. spring AOP详解二

    AOP实例(通过Proxy代理模式) Spring AOP使用纯java实现,不需要专门的编译过程和类装载器,它在运行期间通过代理方式向目标类织入增强代码,它更侧重于提供一种和Spring IoC容器 ...

随机推荐

  1. oracle的索引维护

    索引重建 Alter index idx_name rebuild partition index_partition_name [online nologging] 需要对每个分区索引做rebuil ...

  2. POJ - 2041Unreliable Message

    这里的算法非常简单,就是“模拟”,注意编写每个传令官的算法时先分开测试,放在一起就会混淆. POJ - 2041Unreliable Message Time Limit: 1000MS Memory ...

  3. shell 条件测试语句三种方法

    1.test -f file  2.[ -f file ] 3.[[ -f file ]] [ -f file1 -a -f file2]逻辑与[ -f file1 -o -f file2]逻辑或 [ ...

  4. 160907、CSS 预处理器-Less

    CSS 预处理器是什么?一般来说,它们基于 CSS 扩展了一套属于自己的 DSL,来解决我们书写 CSS 时难以解决的问题: 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器: ...

  5. E2PROM与Flash的引脚图

    E2PROM(24C02):

  6. Android 常用工具类之 DimenUtil

    public class DimenUtil { /** sp转换成px */ public static int sp2px(float spValue) { float fontScale = M ...

  7. ExtJS4.2 根据数据库记录构建树形菜单

    背景:最近用ExtJS4.2做一个系统,需要在前端展示资源菜单,为树形结构,该树形结构是从数据库动态加载的. ExtJS的树形结构大致有两种情况: 1.静态树形结构,此处不多说,看API就能简单明白: ...

  8. 坑爹的SQL ISNUMERIC

    select ISNUMERIC('01,02') ISNUMERIC返回 1,后面用patindex代替了...折腾/ select patindex('%[^0-9]%','01,02')

  9. Pending Statistics

    Starting with the 11g Release 1 (11.1), when gathering statistics, you have the option to automatica ...

  10. maven打包异常

    maven打包异常,如图: 问题原因:服务器密码错了.