转自:http://elf8848.iteye.com/blog/875830很棒的一篇博客,想了解SpringMvc的入门选手可以去看看。

一,核心类与接口:

DispatcherServlet - 前端控制器

HandlerMapping接口 - 处理请求的映射

HandleMapping接口的实现类:

SimpleUrlHandlerMapping通过配置文件将一个URL映射到Controller

DefaultAnnotationHandleMapping通过注解,将一个URL映射到Controller类上

HandlerAdapter接口 - 处理请求的映射

AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上

Controller接口 - 控制器

由于使用了@controller注解,添加了@Controller注解的类就可以担任控制器(Action)的职责

HandlerInterceptor 接口 - 拦截器

ViewResolver接口的实现类

UrlBasedViewResolver类通过配置文件,把一个视图名交给到一个View来处理

InternalResourceViewResolver类,比上面的类,加入了JSTL的支持。

View接口

JstlView类

LocalResolver接口

HandlerExceptionResolver接口 - 异常处理

SimpleMappingExceptionResolver实现类

ModelAndView类

二,核心流程

三,DispacherServlet说明

使用SpringMvc配置Dispatch而Servlet是第一步。

DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet

DispatcherServlet是前置控制器,配置在web.xml中。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依靠某某规则分发到目标Controller我们写的(Action)来处理。

分发到Controller的某某规则根据你使用了哪个HandlerMapping接口的实现类的不同而不同。

  1. <web-app>
  2. <servlet>
  3. <servlet-name>example</servlet-name>
  4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  5. <load-on-startup>1</load-on-startup>  //是启动顺序,让这个Servlet随Servlettp容器一起启动
  6. </servlet>
  7. <servlet-mapping>
  8. <servlet-name>example</servlet-name>  //servlet的名字,可以有多个DispatcherServlet,是通过名字来区分的,每个DispatcherServlet都有自己的WebAppliContext上下文对象。同时保存在ServletContext中和Request对象中。
  9. <url-pattern>*.form</url-pattern>  //拦截所有以.form结尾的请求。
  10. </servlet-mapping>
  11. </web-app>

在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为【servlet-name】-servlet.xml的配置文件,生成文件中定义的bean。

  1. <servlet>
  2. <servlet-name>springMVC</servlet-name>
  3. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  4. <init-param>
  5. <param-name>contextConfigLocation</param-name>
  6. <param-value>classpath*:/springMVC.xml</param-value>
  7. </init-param>
  8. <load-on-startup>1</load-on-startup>
  9. </servlet>
  10. <servlet-mapping>
  11. <servlet-name>springMVC</servlet-name>
  12. <url-pattern>/</url-pattern>
  13. </servlet-mapping>

指明了配置文件的文件名,不使用默认配置文件名,而是用springMvc.xml配置文件。

其中<param-value>**.xml</param-value>这里可以使用多种写法

1,不写,使用默认值:/WEB-INF/<servlet-name>-servlet.xml   比如说你的servlet-name是example那么找的那个文件就是example-servlet.xml

2,<param-value>/WEB-INF/classes/springMvc.xml<param-value>

3,<param-vlue>classpath*.springMvc-mvc.xml</param-value>

4,多个值用都好分隔。

初始Spring mvc的更多相关文章

  1. 初始Spring MVC——练手小项目

    初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...

  2. java之spring mvc之初始spring mvc

    1. mvc : mvc框架是处理 http请求和响应的框架 2. mvc 做的事情有哪些: 将 url 映射到一个java的处理方法上 将表单数据提交到 java 类中 将后台 java 类处理的结 ...

  3. spring mvc 初始

    今天带领大家开始第一天的spring  mvc学习 首先我们要下载maven然后配置IDE 然后选择new 新建项目 然后选择maven,然后选择maven的webapp 然后创建springmvc ...

  4. Maven+Spring MVC Spring Mybatis配置

    环境: Eclipse Neon JDK1.8.0 Tomcat8.0 先决条件: Eclipse先用maven向导创建web工程.参见本站之前随笔. 本机安装完成mysql5:新建用户xuxy03设 ...

  5. [Spring MVC] - JSON

    Spring MVC中使用JSON,先必需引用两个包:jackson-core-asl-1.9.13.jar.jackson-mapper-asl-1.9.13.jar 因为需要使用到jquery测试 ...

  6. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr 选择 ...

  7. Spring MVC 学习总结(六)——Spring+Spring MVC+MyBatis框架集成

    与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...

  8. 用Spring MVC开发简单的Web应用

    这个例子是来自于Gary Mak等人写的Spring攻略(第二版)第八章Spring @MVC中的一个例子,在此以学习为目的进行记录. 问题:想用Spring MVC开发一个简单的Web应用, 学习这 ...

  9. Spring MVC 解读——<context:component-scan/>

    转自:http://my.oschina.net/HeliosFly/blog/203149 作者:GoodLoser. Spring MVC 解读---<context:component-s ...

随机推荐

  1. [转]Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)

    转自http://blog.csdn.net/c406495762/article/details/75172850 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一 简 ...

  2. Firebug 没死,活在 Firefox DevTools 中

    伯乐在线转注:2016年12月7日有一条<Firebug 宣布停止开发更新>的资讯,不少朋友误认为以后用不到 Firebug 了.其实在 2015 年 Firebug 已经在着手整合到 F ...

  3. Spring Boot - 配置介绍

    Spring Boot 针对常用的开发场景提供了一系列自动化配置来减少原本复杂而又几乎很少改动的模板配置内容,但是,我们还是需要了解如何在Spring Boot中修改这些自动化的配置,以应对一些特殊场 ...

  4. java基础-反射(细节)

    java面试题--java反射机制? Java反射机制的作用:1)在运行时判断任意一个对象所属的类.2)在运行时判断任意一个类所具有的成员变量和方法.3)在运行时任意调用一个对象的方法4)在运行时构造 ...

  5. KPPW2.5 漏洞利用--CSRF

    kppw2.5 CSRF漏洞复现 漏洞说明 http://192.168.50.157/kppw25/index.php?do=user&view=message&op=send 收件 ...

  6. CentOS安装mysql源码包

    1.# cd /usr/local/src 2.上传mysql.tar.gz文件 3.# tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 4.# ...

  7. 消息对话框 MessageBoxButtons

    消息对话框MessageBox经常用于向用户显示通知信息.例如,在操作过程中遇到错误或程序异常,经常会使用这种方式给用户以提示,它是特殊类型的对话框. 在C#中,MessageBox消息对话框位于Sy ...

  8. 【Linux】【GIt】Linux下安装和配置Git(转)

    yum安装 这里采用的是CentOS系统,如果采用yum安装git的方式: yum install git 很快就okay了,但是这里遇到一个问题.: 在网上搜寻了原因,说是要安装: yum inst ...

  9. cat查阅文件技巧

    一.打印除匹配行之外的其它行,使用-v 打印除$和#的注释行:cat file| grep -v ^$ | grep -v ^#

  10. 在HTML中显示base64 img 图片

    base64的图片可以直接显示在网页上面 <img src=“data:image/png;base64,******************************************** ...