11.1JavaEE——Spring MVC的核心类和注解(一)DispatcherServlet

一、DispatcherServlet作用

DispatcherServlet是Spring MVC的核心类,也是Spring MVC的流程控制中心,也称为Spring MVC的前端控制器,它可以拦截客户端的请求。拦截客户端请求之后,DispatcherServlet会根据具体规则将请求交给其他组件处理。所有请求都要经过DispatcherServlet进行转发处理,这样就降低了Spring MVC组件之间的耦合性。

二、DispatcherServlet案例编写说明

DispatcherServlet的本质是一个Servlet,可以在web.xml文件中完成它的配置和映射。需要注意的是,如无特殊说明,本章的所有案例都将在chapter11项目中开发和运行。项目创建完成之后,在项目web.xml文件中配置DispatcherServlet。

web.xml中对DispatcherServlet的配置分为两个方面。一是配置Spring MVC的前端控制器,二是配置映射的URL路径。

1. 配置Spring MVC的前端控制器:

html 复制代码
<!-- 配置 Spring MVC 的前端控制器 -->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <!-- 配置初始化参数,用于读取 Spring MVC 的配置文件 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!-- 应用加载时创建-->
        <load-on-startup>1</load-on-startup>
    </servlet>

2. 配置映射的URL路径:

html 复制代码
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

三、WEB-INF文件夹下默认配置文件命名规则

如果web.xml没有通过<init-param>元素指定DispatcherServlet初始化时要加载的文件,则应用程序会去WEB-INF文件夹下寻找并加载默认配置文件,默认配置文件的名称规则如下所示。

html 复制代码
[servlet-name]-servlet.xml

其中,[servlet-name]指的是web.xml文件中<servlet-name>元素的值;"-servlet.xml"是配置文件名的固定拼接。

四、<load-on-startup>元素取值

<load-on-startup>元素取值分为三种情况:

(1)如果<load-on-startup>元素的值为正整数或者0,表示在项目启动时就加载并初始化这个Servlet,值越小,Servlet的优先级越高,就越先被加载;

(2)如果<load-on-startup>元素的值为负数或者没有设置,则Servlet会在被请求时加载和初始化;

(3)如果<load-on-startup>元素的值为1,表明DispatcherServlet会在项目启动时加载并初始化。

相关推荐
程序猿chen1 小时前
JVM考古现场(十七):鸿蒙初辟——从太极二进到混沌原初的编译天道
开发语言·jvm·git·后端·程序人生·java-ee·改行学it
Foyo Designer2 小时前
【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的未来:从微服务到云原生的演进
java·spring boot·redis·spring·微服务·云原生·restful
Java水解3 小时前
Spring 核心技术解析【纯干货版】- XVI:Spring 网络模块 Spring-WebMvc 模块精讲
后端·spring
阿里云云原生3 小时前
Spring项目开发的智能助手:通义灵码使用指南
spring
快乐的木子李4 小时前
Java spring mybatis面试题(200道),八股文
java·开发语言·spring·mybatis
我是大头鸟5 小时前
ecplise 工具 没有Java EE Tools 选项
java·java-ee
海水变蓝、5 小时前
巧用sort
经验分享·笔记·java-ee·课程设计
爱的叹息6 小时前
Spring MVC 逻辑视图(JSP、Thymeleaf、FreeMarker)与非逻辑视图(JSON、Excel、PDF、XML)详解及示例
java·spring·mvc
我要学编程(ಥ_ಥ)7 小时前
初始JavaEE篇 —— SpringBoot 统一功能处理
java·spring boot·后端·spring·java-ee
都叫我大帅哥8 小时前
Spring IoC源码解析:原来你是这样的"快递仓库管理员"
java·spring·源码阅读