多个DispatcherServlet有什么用处.md

简介: 有看到一些应用在 web.xml 文件中配置了多个 DispatcherServlet,例如:    en    org.springframework.web.servlet.DispatcherServlet    1    ib    org.

有看到一些应用在 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 的必要性

目录
相关文章
|
Shell iOS开发 MacOS
|
Java Spring
RestTemplate上传文件解决方案
当对接文件上传模块时,需要对接上传文件的接口,而我们模块的数据是以字节数组存在的(已经操作过了的字节数组,存在于内存中)接口是以form-data的形式上传的,其中需要上传MultipartFIle,如果使用MultipartFile放入到请求的 fromMap中,然后再上传这个文件,会报(ByteArrayInputStream no serialized)的错误,也就是没有注入对应的bean的错误。。
5201 0
|
9月前
|
自然语言处理 数据可视化 数据挖掘
评测:大模型时代的智能BI—Quick BI
作为一位产品经理,我近期体验了阿里云Quick BI的深度功能。其智能小Q助手通过自然语言生成可视化报表,大幅提升非技术人员操作效率;本地文件数据源功能实现快速数据分析,减少对IT依赖。智能问数和移动端适配表现出色,但字段命名规则校验及权限控制需优化。总体而言,Quick BI适合中大型企业业务分析,生态兼容性强,智能化覆盖全流程,值得推荐(评分:4.5/5)。
|
Java Linux Shell
docker 打包 springboot 项目快速入门
docker 打包 springboot 项目快速入门
247 0
|
Ubuntu 虚拟化 Windows
将Vmware虚拟机磁盘映射到本地实现文件传输
将虚拟机磁盘映射到本地,可以实现文件互传,更方便使用,在开发时可以替代SecureFx等FTP客户端软件
1358 0
|
监控 Java 数据库
java线上服务问题排查总结
java线上服务问题排查 1、业务日志相关 如果应用系统出现异常,一般都会在业务日志中体现 查看日志问题常用命令,以标装springboot应用为例: 进到标装日志目录:cd /wls/applogs/rtlog/spri* --善用tab键 统计当天业务日志中ERROR出现数量:egre.
47525 0
|
移动开发 前端开发 JavaScript
html 常见兼容性问题
html 常见兼容性问题
401 0
|
SQL 安全 Java
自定义OAuth2短信登录GrantType
`Spring`提供的原生的`OAuth2`依赖内置了几种比较常用的授权方式:`password`、`authorization-code`、`client_credentials`、`refresh_token`、`implicit`等,虽然可以满足我们日常的需求,不过针对一些特殊的需求还是捉襟见肘,有点无奈,比如:`微信登录`、`短信登录`...,针对这一点`ApiBoot`通过修改`Spring OAuth2`依赖的源码,可以根据业务进行自定义添加`grantType`。
|
Java 数据库
定时任务还在用数据库轮询?redission延时队列了解一下
在平常的开发中经常会碰到定时任务处理的场景,比如说用户进行商品购买,下单之后超过半个小时还未进行支付则自动取消该笔订单,订单支付状态由待支付变更为已支付;
定时任务还在用数据库轮询?redission延时队列了解一下
|
Java Shell Linux
从jar包内复制文件到系统目录内
从jar包内复制文件到系统目录内
353 0
从jar包内复制文件到系统目录内