配置DispatcherServlet的方法介绍

DispatcherServlet是Spring MVC的前端控制器,要想在程序中使用DispatcherServlet,我们需要在web.xml中配置一个DispatcherServlet。配置的方法是,在web.xml文件中,配置一个<servlet>节点,它的子节点<servlet-name>可以自定义一个名字,例如sample,<servlet-class>指定为org.spring.springframework.web.servlet.DispatcherServlet。

当DispatcherServlet被载入后,它将从xml文件载入Spring的应用上下文,而从哪个xml文件载入呢?xml文件的名字取决于DispatcherServlet的名字。如果DispatcherServlet的名字为sample,那么它将从sample-servlet.xml的文件中载入应用上下文。

接下来,我们需要配置哪些URL需要由DispatcherServlet来处理,这是通过在web.xml中配置一个<servlet-mapping>节点来实现的。如下所示。

<servlet-mapping>
  <servlet-name>sample</servlet-name>
  <url-pattern>*.htm</url-pattern>
</servlet-mapping>

正如前面提到的DispatcherServlet将从<servlet-name>命名的xml中载入应用的上下文。那么这就要求我们把所有需要载入的Bean都定义在这个xml文件中。这显然是不利于对Bean的分类的管理的。例如,我们想把持久层的bean放在一个xml文件中,把服务层的bean放在另一个xml文件中,把web层的bean也单独放在一个xml文件中。那么DispatcherServlet如何载入多个xml文件呢?

为了把这些xml都载入进来,我们需要在web.xml文件中配置一个上下文载入器,上下文载入器用于载入除DispatcherServlet载入的xml文件之外的文件。最常用的上下文载入器就是一个servlet监听器,名称为ContextLoadListener。我们需要在web.xml中这样配置它。

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

默认情况下,上下文载入器将会在/WEB-INF/applicationContext.xml中载入配置,但如果想载入多个配置文件,我们需要改变它的默认行为。

可以通过在Servlet上下文中设置contextConfigLocation参数来为上下文载入器指定一个或多个Spring配置文件。如下。

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    /WEB-INF/a.xml
    /WEB-INF/b.xml
    /WEB-INF/c.xml
  </param-value>
</context-param>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 详解在spring boot中配置多个DispatcherServlet

    spring boot为我们自动配置了一个开箱即用的DispatcherServlet,映射路径为'/',但是如果项目中有多个服务,为了对不同服务进行不同的配置管理,需要对不同服务设置不同的上下文,比如开启一个DispatcherServlet专门用于rest服务. 传统springMVC项目 在传统的springMVC项目中,配置多个DispatcherServlet很轻松,在web.xml中直接配置多个就行: <servlet> <servlet-name>restServle

  • Spring Boot集成netty实现客户端服务端交互示例详解

    前言 Netty 是一个高性能的 NIO 网络框架,本文主要给大家介绍了关于SpringBoot集成netty实现客户端服务端交互的相关内容,下面来一起看看详细的介绍吧 看了好几天的netty实战,慢慢摸索,虽然还没有摸着很多门道,但今天还是把之前想加入到项目里的 一些想法实现了,算是有点信心了吧(讲真netty对初学者还真的不是很友好......) 首先,当然是在SpringBoot项目里添加netty的依赖了,注意不要用netty5的依赖,因为已经废弃了 <!--netty--> <

  • SpringBoot项目修改访问端口和访问路径的方法

    创建SpringBoot项目,启动后,默认的访问路径即主机IP+默认端口号8080:http://localhost:8080/ 此时,我们就可以访问Controller层的接口了,如:http://localhost:8080/hello package com.springboot.test; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.a

  • 浅谈springmvc的DispatcherServlet分析

    本文介绍了springmvc的DispatcherServlet,分享给大家,具体如下: 一.程序 (一)web.xml文件中的内容 <!-- springMVC核心配置 --> <servlet> <servlet-name>springmvcServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-cl

  • Spring MVC之DispatcherServlet_动力节点Java学院整理

    Spring MVC之DispatcherServlet 使用Spring MVC,配置DispatcherServlet是第一步. DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet. DispatcherServlet是前置控制器,配置在web.xml文件中的.拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理. "某某规则":是根据

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

    DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处. 具体请参考第二章的图2-1. DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下: 1.文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析: 2.通过Handle

  • 在Spring boot的项目中使用Junit进行单体测试

    使用Junit或者TestNG可以进行单体测试,这篇文章简单说明一下如何在Spring boot的项目中使用Junit进行单体测试. pom设定 pom中需要添加spring-boot-starter-test <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>

  • Spring MVC学习之DispatcherServlet请求处理详析

    前言 要深入理解spring mvc的工作流程,就需要先了解spring mvc的架构: 从上图可以看到 前端控制器DispatcherServlet在其中起着主导作用,理解了DispatcherServlet 就完全可以说弄清楚了spring mvc. DispatcherServlet作为Spring用于处理web请求注册的唯一一个Servlet,所有的请求都是经由DispatcherServlet进行分发处理的.本文主要讲解DispatcherServlet是如何对请求进行分发,处理,并且

  • 详解Spring MVC/Boot 统一异常处理最佳实践

    前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是一件棘手的事情, 对于很多人来说, 可能对异常处理有以下几个问题: 什么时候需要捕获(try-catch)异常, 什么时候需要抛出(throws)异常到上层. 在 dao 层捕获还是在 service 捕获, 还是在 controller 层捕获. 抛出异常后要怎么处理. 怎么返回给页面错误信息. 异常处理反例 既然谈到异常, 我们先来说一下异常处理的反例, 也是很多人容易犯的错误, 这里我们同时讲到前端处理和后端处理 : 捕获异常后

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

    前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端.前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架). DispatcherServlet 作为前置控制器是web服务器的入口,是spring mvc最重要的一个类,通过它的生命周期可以加深对web服务器的理解. servlet的生命周期 首先我们回忆一下ser

随机推荐