springmvc框架中的核心对象DispatcherServlet

 

SpringMVC是Spring中的模块,它实现了mvc设计模式,
首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handle进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染,并把数据装入到request域,返回给用户。html

DispatcherServlet做为SpringMVC的前端控制器,负责接收用户的请求,并根据用户的请求返回相应的视图给用户。实现业务在service层前端

 

===============================================================java

DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,并且负责职责的分派,并且与Spring IoC容器无缝集成,从而能够得到Spring的全部好处。web

DispatcherServlet主要用做职责调度工做,自己主要用于控制流程,主要职责以下:spring

一、文件上传解析,若是请求类型是multipart将经过MultipartResolver进行文件上传解析;设计模式

二、经过HandlerMapping,将请求映射处处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);服务器

三、经过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);mvc

四、经过ViewResolver解析逻辑视图名到具体视图实现;app

五、本地化解析;框架

六、渲染具体的视图等;

七、若是执行过程当中遇到异常将交给HandlerExceptionResolver来解析。
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
    <!--注册springmvc框架的核心对象DispatcherServlet(中央调度器)-->

    <!-- 在服务器启动的时候,会找/WEB-INF/myweb-servlet.xml ,/WEB-INF/springmvc-servlet.xml 找的文件命名是: 目录是WEB-INF, 文件名称是: <servlet-name>-servlet.xml 为何要找这个文件? 在DispatcherServlet这个Servlet的init()方法中,会建立springmvc的容器对象WebApplicationContext, 在建立容器对象时,会加载读取springmvc须要的配置文件,默认查找位置就是/WEB-INF/<servlet-name>-servlet.xml springmvc须要的配置文件,能够单独指定的,须要配置参数contextConfigLocation. -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <!--前端控制器(front controller)-->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!--指定springmvc配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--在服务器启动的时候,建立Servlet对象-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!-- <url-pattern> : 表示把请求交给指定的Servlet对象。只有把请求交给DispatcherServlet, 这样的请求才能使用springmvc框架处理。 使用DispatcherServlet接收用户的请求。 在框架中url-pattern: 1.扩展名: *.xxxx , xxxx 就是自定义的扩展名。 例如 *.do , *.action,*.mvc等等,不能使用*.jsp 2.使用斜杠"/" -->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

 

以上是一个springmvc示例的xml配置文件。须要在xml文件中注册DispatcherServlet对象

相关文章
相关标签/搜索