1.SpringMVC简介


springMVC即Spring Web MVC,是spring web模块的一部分,是spring自己的web框架

springMVC对Servlet API 进行了完善的封装,极大的简化了开发人员的编程工作。同时springMVC也提供了友好简

便的方式让开发人员可以使用Servlet API,十分灵活。

1.1.Servlet的操作方式

1.2.springMVC的操作方式

演示:

1.创建一个maven项目

war包形式

再生成一个web.xml文件

更改一下web配置的版本

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1">

2.pom.xml 文件中 maven依赖和插件配置


    
    
        org.springframework
        spring-context
        4.3.2.RELEASE
    
    
    
    
        org.springframework
        spring-context-support
        4.3.2.RELEASE
    
    
    
    
        org.springframework
        spring-orm
        4.3.2.RELEASE
    
    
    
    
        org.springframework
        spring-aspects
        4.3.2.RELEASE
    
    
    
    
        org.springframework
        spring-webmvc
        4.3.2.RELEASE
    
        
    
    
       org.hibernate
       hibernate-validator
       5.2.4.Final
    
    
    
    
        com.fasterxml.jackson.core
        jackson-databind
        2.6.0
    
    
     
    
        commons-fileupload
        commons-fileupload
        1.3.1
    
    
    
    
        junit
        junit
        4.11
    
    
    
    
        javax.servlet
        javax.servlet-api
        3.1.0
        provided
    
    
    
    
        javax.servlet.jsp
        jsp-api
        2.2
        provided
    
    
    
    
        org.glassfish.web
        jstl-impl
        1.2
        
            
                javax.servlet
                servlet-api
            
            
                javax.servlet.jsp
                jsp-api
            
        
    

  

    
        
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.1  
              
              1.8
              1.8
             
        
    

注意:springMVC是spring环境的一部分,需要spring环境的支持,需要配置spring依赖

更新maven项目

1.2.1.核心控制器——DispatcherServlet

springMVC提供了一个核心控制器(大总管)--DispatcherServlet,负责统一调用springMVC提供的其他组件,按照固定步骤处理请求,生成响应。

对于springMVC课程,我们学习的主要内容就是DispatcherServlet的调度过程(处理流程)、其他组件的作用、以及如何实现自己的handler(处理器)

在web.xml中配置DispatcherServlet

1.2.2DispatcherServlet结构

 @RequestMapping注解:把普通的方法注解为一个处理器(控制器)handler

springMVC支持的注解

 1.2.3.springMVC的核心配置文件

springMVC是spring的一部分,需要spring上下文的支持,所以需要一个像beans.xml一样的配置文件,我们把这个配置文件命名为dispatcher-servlet.xml(其他名称也可以)

除了以bean的方式配置、管理springMVC的组件外,springMVC的其他内容也需要在这个文件中配置

resources中配置

dispatcher-servlet.xml文件(相当于beans.xml)

<?xml version="1.0" encoding="UTF-8"?>

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd  
                        http://www.springframework.org/schema/mvc 
                        http://www.springframework.org/schema/mvc/spring-mvc.xsd 
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context.xsd 
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop.xsd 
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd">
                        
    
    package="com.zyt.web" />

    
    

    
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        
    

    
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        
        
        
        
        
    
        
    
      //这里的路径可以随便配置,webapp下的路径
    
    

这个文件中配置的都是和web有关的内容,至于项目的其他部分,比如service、dao等也可以配置在这个文件里面。但更一般的,会初始化两个spring上下文,一个用来管理springMVC有关的内容,另一个用来管理项目其他内容(具体到springMVC和spring整合时讲)

 1.2.4.额外的字符编码过滤器

springMVC还提供了一个字符编码过滤器,可以对POST请求和响应设置编码(tomcat8会自动对GET请求进行编码):



    characterEncodingFilter
    class>org.springframework.web.filter.CharacterEncodingFilterclass>
    
        encoding
        UTF-8
    
    
        
        forceEncoding
        true
    


    characterEncodingFilter
    /*

服务器把请求交给dispatcher-servlet处理,dispatcher调用包装器里的组建进行预先的处理

包装器可以从request对象里面,调用request.getParmeter得到url中的参数

最后返回一个success,根据视图解析器,拼接前后缀跳转到相应的jsp页面

 
   

 

 

 

 1.2.5.DispatcherServlet处理时序图