DispatcherServlet的url mapping为“/”时,对根路径访问的处理
背景
众所周知,Tomcat的Default Servlet的servlet-mapping为
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如果在基于SpringMVC的项目中做如下设置:
- DispatcherServlet的 url-pattern同样设置为 “/”,
- 在web.xml中添加
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
- 在后台代码中添加Controller,用于响应对应用根目录的访问,代码如下
@Controller
public class HomeController {
public HomeController() {
} @RequestMapping(value = "/",method = RequestMethod.GET)
public String home(){
return "home"; //home为/WEB-INF/views/home.jsp页面的逻辑名称
} @RequestMapping(value = "/test",method = RequestMethod.GET)
public String test(){
return "home";
}
}
那么问题如下:
如果访问应用的根路径,是返回index.html页面,还是进入HomeController 并返回 home.jsp?
测试结果
- 在DefaultServlet和DispatcherServlet同时生效的情况下:
- 如果存在index.html页面,则返回index.html,不会进入到Controller代码中
- 如果不存在index.html页面,则进入controller,并返回/WEB-INF/views/home.jsp页面
- 在DefaultServlet被注释,DispatcherServlet生效的情况下:
- 结果同上
- 在DefaultServlet被注释,DispatcherServlet不配置的情况下:
- 如果存在index.html页面,则返回index.html
- 如果不存在index.html页面,则报错
结果分析
- 默认欢迎文件的处理由Tomcat容器负责,与任何Servlet无关;
- 如果同时配置了处理根路径映射的Servlet和欢迎页面,则优先返回欢迎页面,请求不会到达Servlet;
- 如果DispatcherServlet的mapping为“/”,则DispatcherServlet会覆盖容器默认的DefaultServlet
DispatcherServlet的url mapping为“/”时,对根路径访问的处理的更多相关文章
- spingmvc项目根路径访问不到
问题: 如何改mvc中项目的欢迎页,或者叫做根路径 一个东西快弄完了,就剩下一个问题,应该是个小问题.就是mvc项目的欢迎页,怎么给改下呢 访问根路径http://localhost/demo 怎么都 ...
- rest-assured的根路径(root path)和URL编码(URL Encoding)
一.根路径(Root path) 为了避免在body方法中使用重复的路径来断言,我们可以指定一个根路径(root path),比如: 我们以前的写法是: when(). get("/some ...
- Java获取此次请求URL以及服务器根路径的方法
http://www.jb51.net/article/71693.htm ********************************************** 本文介绍了Java获取此次请求 ...
- URL传参时中文参数乱码的解决方法
URL传参时,中文参数乱码的解决: 今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码.我的代码是这样写的 ...
- tomcat6升级到7时400问题,以及url带有汉字时出错。
tomcat6升级到7时400问题: 在文件catalina.properties后加入tomcat.util.http.parser.HttpParser.requestTargetAllow=|. ...
- js获取当前项目根路径URL (转自CSDN 红领巾-sunlight)
/** * //获取当前项目根路径 * @return {TypeName} */ function getRootPath(){ //获取当前网址,如: http://localhost:8083/ ...
- spring MVC项目中,欢迎页首页根路径到底是怎么设置的
0. 问题: 如何改mvc中项目的欢迎页,或者叫做根路径 一个东西快弄完了,就剩下一个问题,应该是个小问题.就是mvc项目的欢迎页,怎么给改下呢. 这个项目是通过mvn建立的,整个项目的原型就是spr ...
- jstl标签设置通用web项目根路径
在做项目时(如SSH或SpringMVC),通常需要在很多页面(jsp中的form提交)或者js代码(一般Ajax提交)中用到当前web应用的根路径(拼成访问资源如action/controller. ...
- springMVC访问根路径问题
当web.xml没有配置欢迎页:如下 <welcome-file-list> <welcome-file>login.jsp</welcome-file> < ...
随机推荐
- I NETWORK [thread1] waiting for connections on port 27017
小技巧:mongodb安装完之后可以将安装目录的/bin添加到系统环境变量 一.问题 windows上安装完mongodb之后,设置完dbpath,一直卡在这里 二.解决办法 别关这个终端,再开个终端 ...
- flag -- 诡异的memcache标记
引子 打从去年一路北漂,进入无人货架行业,业务需求漫天飘,最近总算把工作都规划齐整.回望过去一年多的时间里,诸多东西值得整理,memcache就是其中一个. 看到java的工资高些,队伍中好 ...
- GDC快讯,腾讯CMatrix布局云游戏B端领域
2019年3月20日-22日, GDC游戏开发者大会(Game Developers Conference,以下简称GDC)于旧金山召开.每年的GDC大会上,来自世界各地,数以万计的游戏开发者们都会分 ...
- Nginx应用场景
1. Nginx应用场景 1)http服务器.Nginx可以独立的提供http服务,可以做网页静态服务器(也就是将静态文件放到nginx目录下,通过nginx来访问就ok) 2)虚拟主机,可以在一 ...
- Http protocal
https://tools.ietf.org/html/rfc2616 1. 状态码:status code 1xxx:信息--请求被接收,继续下一步处理 2xxx:成功--请求行为被 ...
- 快速获取APP对应的appPackage和appActivity
appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的. 介绍两种方法可快速获取APP的这两个参数: 方法一 1 ...
- JavaScript学习笔记(六)—— 异步编码
第七章 异步编码 1 事件处理程序 处理程序:即网页加载完毕后将执行的代码,称回调函数或监听器: 包含:处理函数+window.onload=函数名; <script language=&qu ...
- UVa 10055
说一下犯错的地方: 1)没有注意数据范围,题目中是The input numbers are not greater than balabalabala. 而这个32位的int类型恰好装不下2^32, ...
- 03-matplotlib-折线图
import numpy as np import matplotlib.pyplot as plt import matplotlib.dates as mdates ''' 折线图,用直线段将各数 ...
- #1490 : Tree Restoration-(微软2017在线笔试)
输入n m km个数,表示每层的节点个数接下来m行是每层的节点,节点顺序是从左往右的k个叶子节点k*k个矩阵,表示叶子节点之间的距离 输出:每个节点的父亲节点编号,root节点是0 题解:1.很明显, ...