`
meiyx
  • 浏览: 183674 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

DispatcherServlet详解一(调用流程)

 
阅读更多

1、DispatcherServlet在web.xml中的配置 

   <servlet>
        <servlet-name>chapter2</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>chapter2</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>



load-on-startup:表示启动容器时初始化该Servlet;

url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。
该DispatcherServlet默认使用WebApplicationContext作为上下文,Spring默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”。

DispatcherServlet也可以配置自己的初始化参数,覆盖默认配置:
参数描述
contextClass实现WebApplicationContext接口的类,当前的servlet用它来创建上下文。如果这个参数没有指定, 默认使用XmlWebApplicationContext。

contextConfigLocation传给上下文实例(由contextClass指定)的字符串,用来指定上下文的位置。这个字符串可以被分成多个字符串(使用逗号作为分隔符) 来支持多个上下文(在多上下文的情况下,如果同一个bean被定义两次,后面一个优先)。
namespace
WebApplicationContext命名空间。默认值是[server-name]-servlet。
 
因此我们可以通过添加初始化参数

 
     <servlet>
        <servlet-name>chapter2</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet-config.xml</param-value>
        </init-param>
    </servlet> 
 


如果使用如上配置,Spring Web MVC框架将加载“classpath:spring-servlet-config.xml”来进行初始化上下文而不是“/WEB-INF/[servlet名字]-servlet.xml”。

2、DispatcherServlet初始化顺序



在Web容器启动时将调用它的init方法,HttpServletBean继承HttpServlet,并且重写了HttpServlet的init方法,所以首先会加载HttpServletBean中的init方法。
HttpServletBean中的init方法的作用:
FrameworkServlet继承HttpServletBean.HttpServletBean中的init方法会调用initServletBean方法,FrameworkServlet重写了initServletBean方法
FrameworkServlet中initServletBean的作用:initServletBean方法会调用initWebApplicationContext方法,initWebApplicationContext中调用onRefresh方法,
DispatcherServlet重写了onRefresh方法,onRefresh方法调用DispatcherServlet中的initStrategies方法;
initWebApplicationContext方法作用:
onRefresh方法作用:
initStrategies方法作用:








  • 大小: 6.6 KB
分享到:
评论

相关推荐

    Spring MVC之DispatcherServlet详解_动力节点Java学院整理

    综上所述,DispatcherServlet在Spring MVC中起着至关重要的作用,它是整个请求处理流程的入口点,负责调度和协调各个组件,使得整个框架能灵活且高效地处理HTTP请求。通过合理的配置,我们可以定制其行为以适应各种...

    Spring+SpringMVC+Mybatis SSM三大框架的运行流程、原理、核心技术详解

    ### Spring+SpringMVC+Mybatis SSM三大框架的运行流程、原理、核心技术详解 #### 一、Spring框架 **1. Spring的运行流程** - **第一步:加载配置文件** - 使用`ApplicationContext ac = new ...

    Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程.doc

    SpringMVC DispatcherServlet 初始化过程详解 DispatcherServlet 是 SpringMVC 框架中的核心组件,对于 SpringMVC 的请求处理和响应起着至关重要的作用。DispatcherServlet 的初始化过程是 SpringMVC 实现原理的...

    详解Webwork中Action 调用的方法

    在Webwork的流程中,DispatcherServlet是接收HTTP请求的入口点,它会调用`service`方法来处理请求。这个方法会先对HttpServletRequest进行封装,如处理文件上传等特殊请求,然后调用`ServletDispatcher.service...

    spring mvc执行流程

    ### Spring MVC 执行流程详解 #### 一、概述 Spring MVC 是 Spring 框架中的一个重要组成部分,主要用于构建基于 Web 的应用程序。它提供了一个清晰的架构来管理 Web 层的业务逻辑,使得开发者能够轻松地处理 ...

    SpringMVC的执行流程及组件详解

    SpringMVC的执行流程及组件详解 SpringMVC是一个基于Java的Web应用程序框架,它提供了一种灵活的方式来构建Web应用程序。理解SpringMVC的执行流程及组件是开发高质量Web应用程序的关键。本文将对SpringMVC的执行...

    spring mvc DispatcherServlet之前端控制器架构详解

    在Servlet的整个生命周期内,init()方法只被调用一次。在响应客户请求阶段,Servlet容器将请求分发到不同的控制器去处理。最后,在终止阶段,Servlet容器将调用destroy()方法来销毁Servlet实例。 结构 ...

    springmvc 的工作流程.docx

    ### SpringMVC的工作流程详解 #### 一、概述 SpringMVC是Spring框架的一个模块,主要用于简化Web应用程序的开发过程。它遵循Model-View-Controller(MVC)设计模式,帮助开发者更好地组织代码结构,提高代码的可...

    springMVC详解

    ### SpringMVC框架详解 #### 一、SpringMVC简介 SpringMVC是Spring框架中的一个模块,专门用于Web应用程序的开发。它继承了Spring框架的所有优点,如依赖注入(DI)、面向切面编程(AOP)等,并在此基础上提供了...

    JAVA MVC构架详解

    **JAVA MVC架构详解** 在软件开发领域,Java MVC(Model-View-Controller)架构是一种广泛应用于Web应用的设计模式。它将应用程序的业务逻辑、用户界面和数据管理分离开来,提高了代码的可维护性和可扩展性。以下是...

    SSM三大框架的运行流程原理核心技术详解.docx.zip

    SSM框架,即Spring、SpringMVC和Mybatis,是Java Web开发中广泛采用的三大核心技术,它们分别负责不同层面的职责,共同构建...文档《SSM三大框架的运行流程原理核心技术详解.docx》将提供更详细的细节,建议仔细阅读。

    SpringMVC深入总结 核心流程图 中关村北大青鸟网上学堂 docx

    找到对应的控制器后,`DispatcherServlet`会调用控制器中的方法来处理用户的请求。控制器可能会访问业务逻辑层或数据访问层获取数据。 #### 4. 模型数据填充 控制器在处理完业务逻辑后,会创建一个包含模型数据的`...

    Spring-MVC-DispatcherServlet-Example:Maven项目

    **Spring MVC DispatcherServlet详解** Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)框架。在本项目中,`Spring-MVC-DispatcherServlet-Example`是一个使用...

    Spring MVC核心组件之HandlerMapping详解

    ### Spring MVC核心组件之HandlerMapping详解 #### 一、引言 在Java Web开发领域,Spring MVC框架因其灵活且强大的特性而备受青睐。它提供了一种简洁的方式来构建可维护、可扩展的应用程序。Spring MVC的核心组件之...

    跟开涛学SpringMVC(3)DispatcherSer

    《跟开涛学SpringMVC(3)DispatcherServlet详解》是一份深入讲解Spring MVC核心组件DispatcherServlet的教程,旨在帮助Java开发者提升在Web应用开发中的技能。这份资料共计16页,涵盖了Spring MVC框架中...

    Springmvc的运行流程图文详解

    首先,在浏览器端发送请求到服务器端时,第一个步骤是检查当前的请求在DispatcherServlet中是否存在对应的映射。如果没有配置mvc:default-servlet-handler,系统将返回404页面,并在控制台输出no mapping found警告...

    spring mvc工作流程

    ### Spring MVC 工作流程详解 #### 一、Spring MVC 概述 Spring MVC 是 Spring 框架的一部分,主要用于构建基于 Java 的 Web 应用程序。它是一种模型-视图-控制器(Model-View-Controller,MVC)设计模式的具体实现...

    23道SpringMVC常见面试题.docx

    【SpringMVC 知识点详解】 SpringMVC 是 Spring 框架的一个核心模块,主要负责处理 Web 请求。作为一个基于 MVC(Model-View-Controller)设计模式的框架,SpringMVC 具备以下特点: 1. **组件化**:SpringMVC 的...

Global site tag (gtag.js) - Google Analytics