SpringMVC技术详解(一)

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JSP技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

要掌握springMVC,就应该掌握它的内部机制是怎样的,因此来看一下它内部到底是如何运行的,内部机制如下图:



                                                               SpringMVC技术详解(一)_第1张图片



(1)用户发送请求,服务器接收请求,服务器将请求处理完毕后将控制权交给spring。

(2)spring机制中的核心派发器进行处理请求,分发给相应的控制器。

(3)控制器进行相应的业务逻辑处理,同时将返回的数据进行验证,封装,转化等操作,当然也可以直接返回。

(4)数据处理完毕之后,对应的控制器会返回一个视图,并将控制权交给中央核心派发器。

(5)核心派发器根据返回的视图进行解析并查找view

(6)核心派发器将查到的View和处理后的model返回给服务器

(7)服务器解析并响应给用户。

(ps)当然这只是简单的一流程,也许你会有权限控制,或日志记录功能,那就可能会用到拦截器,又多了一层,SpringAOP便提供了这套服务,以后会写到。

掌握了它的内部机制,那么在项目中如何使用SpringMVC技术呢,首先是项目的构建(ps:推荐使用maven构建项目框架,非常方便),然后必须要导入项目依赖的JAR包,目前spring官方已经升级为4.0版本,当然最新版本并不一定是最好的,因为有一定的不稳定性,项目使用过程中还是推荐使用3.X版本。

项目构建完毕并且相应的jar包导入之后,就是如何配置使用springMVC了,刚才说过,springMVC中有个核心控制器(dispacherServlet),看它的后缀,没错,它就是一个servlet,因此首先要在web.xml去配置这个servlet,配置如下:

  

        do
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:servlet-do.xml
        
    
    
        do
        *.do

那么如何让spring在服务器启动时就初始化ObjectFactory呢,这里也要在web.xml中配置相应的参数。具体如下



    
        webAppRootKey
        webapp.root
    

    
    
        contextConfigLocation
        classpath:spring.xml
    
	
    
    
        org.springframework.web.util.Log4jConfigListener
    

    
    
        org.springframework.web.context.ContextLoaderListener
    
    
   
  
	 org.springframework.web.context.request.RequestContextListener 
 
 
 
 	org.springframework.web.util.IntrospectorCleanupListener 


    
        
            *.jsp
            false
            UTF-8
            false
        
    

    
    
        characterEncoding
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        characterEncoding
        /*
    
    

(ps)每个配置的作用在注释很明确,不再累赘。
到这里spring环境已经搭建完毕,接下来就是创建和配置spring的核心配置文件,spring.xml,spring-do.xml,这里核心讲解spring-do.xml的配置,核心配置如下:




        
        
    


  		
            
                
            
        
	
  
 
	
	  
	 
		/error/error.jsp 
		/error/error.jsp 
	
  



视图解析器和中央控制器都有了,就还剩下controller了,具体的控制层,spring有多种机制返回一个controller,这里只讲注解中的一种方式,具体的在以后会写到。
要用注解配置,就要配置spring的包扫描功能,如下:

然后再在你的JAVABEAN中使用@Controller,将你的bean对象注解为某个控制器,到此,就是你业务逻辑的处理了。
总结:springMVC易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架。

 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:(深入浅出Spring框架)