多个DispatcherServlet有什么用处.md

有看到一些应用在 web.xml 文件中配置了多个 DispatcherServlet,例如:

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

这两个 servlet 起到的作用是请求的时候url路径不一样,比如 http://ip:port/en/index.jsp 与 http://ip:port/ib/index.jsp。 实际上这个功能可以通过只定义一个缺省的 dispatcherservlet,然后通过 @RequestMapping 注解区分路径,如下所示:

<servlet>
    <servlet-name>en</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
@RequestMapping("/en")
public class EnController{}
@RequestMapping("/ib")
public class EnController{}

因此定义多个 dispatcherservlect 实际上是没有什么特别的用处的,并且还是得要考虑,不同的DispatcherServlet 的 url-pattern 是否会相互影响。 多个DispatcherServlet的应用场景,可能是引入了第三方的jar包,而对方的接口与项目的冲突了,通过 DispatcherServlet 来解决。但是如果出现这种情况,只能说明第三方的jar包的restful接口并太随意了,完全没有考虑第三方引用的情况。 目前是没有想到一定要使用多个 DispatcherServlet 的必要性

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LhWorld哥陪你聊算法

Flume篇---Flume安装配置与相关使用

Copy过来一段介绍Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集...

2573
来自专栏玩转JavaEE

SpringMVC基础配置

按:最近公众号文章主要是整理一些老文章,主要是个人CSDN上的博客,也会穿插一些新的技术点。 ---- SpringMVC是什么,有多火,我这里就不再啰嗦了,S...

3717
来自专栏代码拾遗

Spring Boot 2.0 教程 - 深入SpringAplication

可以通过SpringApplication.run() 方法轻松的启动一个Spring应用,例如

1194
来自专栏Java进阶架构师

写出我的第一个框架:迷你版Spring MVC

原文:https://www.jianshu.com/p/f454662f497e

1893
来自专栏Python

linux每日命令(28):chgrp命令

在linux系统里,文件或目录的权限的掌控以拥有者及所属群组来管理。可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以。Ch...

641
来自专栏Java工程师日常干货

写出我的第一个框架:迷你版Spring MVC前期准备关于自定义注解编写核心控制器:DispatcherServletMake it run!

OK,到这里,一个迷你版的Spring MVC就开发完成了,以前,都是用Spring MVC,从没有想过可以自己开发一个出来,这是我的第一次,我的能量超乎我的想...

1104
来自专栏Java Web

Spring Boot【快速入门】

上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来...

5205
来自专栏Java技术栈

Spring MVC常用注解,你会几个?

常用注解 Controller 注解一个类表示控制器,Spring MVC会自动扫描标注了这个注解的类。 RequestMapping 请求路径映射,可以标注类...

32110
来自专栏芋道源码1024

网关 Spring-Cloud-Gateway 源码解析 —— 网关初始化

8193
来自专栏猿天地

Spring Boot系列之配置读取

子曰:温故而知新,可以为师矣。周日还在学习的就真的是爱学习的人,周日大放送,这周的精彩文章推荐阅读:

2992

扫码关注云+社区

领取腾讯云代金券