一、核心类型及接口

1.1 DispatcherServlet

  完整路径:org.springframework.web.servlet.DispatcherServlet

  它是所有request请求的前置控制器


1.2 HandlerMapping

   所有请求的映射集合,有两种方式可以对应请求与实际控制器的关联关系。

  1.2.1 SimpleUrlHandlerMapping 

     通过配置文件,把一个URL映射到controller。

  1.2.2 DefaultAnnotationHandlerMapping 

     通过注解,把一个URL映射到controller。


1.3 HandlerAdapter

   处理请求的映射(HandlerMapping)

 1.3.1 AnnotationMethodHandlerAdapter

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


1.4 controller

    请求的实际控制器

1.5 HandlerInterceptor 

    springMVC拦截器


1.6 ViewResolver

    视图解析器

 1.6.1 UrlBasedViewResolver

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

 1.6.2 InternalResourceViewResolver

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

 1.6.3 FreemarkerViewResolver

     freemarker模板展示视图解析器

 1.6.4 VelocityViewResolver

     velocity模板展示视图解析器

 1.6.5 JasperReportsViewResolver

     jaserReports视图解析器

 1.6.6 TilesViewResolver

     tile视图解析器

 1.6.7 XsltViewResolver

     xslt视图解析器


1.7 View

   视图接口

  1.7.1 JstlView


1.8 LocalResolver

   本地解析器

 1.8.1 HandlerExceptionResolver

     异常处理解析器接口

  1.8.2 SimpleMappingExceptionResolver

     异常处理解析器实现类


1.9 ModelAndView

   视图数据封装对象


二、配置说明

 2.1 DispatcherServlet

	
	
		springDispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:spring-mvc.xml
		
		1
	
	
	
		springDispatcherServlet
		/
	

1

    是启动顺序,让这个Servlet随Servletp容器一起启动。

*.do 

    会拦截*.do结尾的请求。不会导致静态文件的拦截。

/ 

   restful 风格,拦截所有请求,包括静态资源(后面会详细说明处理办法)

example

   这个Servlet的名字是example,可以有多个DispatcherServlet, 是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。

**.xml 有多种写法

1、不写,使用默认值:/WEB-INF/-servlet.xml 

2、/WEB-INF/classes/springMVC.xml 

3、classpath*:springMVC-mvc.xml 

4、多个值用逗号分隔


注:拦截/*,这是一个错误的方式,请求可以走到Action中,但转到jsp时再次被拦截,不能访问到jsp。


2.2 springMVC配置文件




	
	
	   
	
	
	 
	
	
	 
	 
	      
	     
	      
	      
	
	
	 
	 
	    
	
	
	
	

        
	
		
			/error/error
		
		
			500
		
		
			org.springframework.web.servlet.handler.SimpleMappingExceptionResolver
		
	
	



	
	
	   
	
	
	
		
			
				   
				   
				  
				  
			
		
	
	
	
		
			
				
				
				
				
				
				
				
			
		
	

	
	
	
	
	
	
    
	
	
	 
	 
	      
	     
	      
	      
	
	
	 
	 
	    
	

	
	
	
	
	

    
	
		
			/error/error
		
		
			500
		
		
			org.springframework.web.servlet.handler.SimpleMappingExceptionResolver
		
	
	


说明:

1.

自动注入配置相当于手工配置下面两个类

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

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

注:

spring3.1开始

RequestMappingHandlerMapping 来替换 DefaultAnnotationHandlerMapping,

用 RequestMappingHandlerAdapter 来替换 AnnotationMethodHandlerAdapter。


2.静态资源的处理方式

  2.1 

       

  2.2 

       

       

       

  2.3 

        激活Tomcat的defaultServlet来处理静态文件

     

           default

           *.jpg

     

     

           default

           *.js

     

     

           default

           *.css