使用 welcome-file-list 设置欢迎界面_beitian_china的博客-程序员宅基地

技术标签: spring  欢迎页面  

简介

在开发中用<welcome-file-list/>设置欢迎界面,始终报404,参考了网上所有现有的做法仍旧不能解决,最终发现失败的原因是因为请求被拦截。

配置说明

设置index.jsp页面:写一个简单的index.jsp页面,内容如下

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>"******"</title>
<style type="text/css">
body {
    background-color: #ffffff;
    background-image: url(images/bg.jpg);
    background-repeat: repeat-x;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
div,td {
    font-size: 12px;
}
#divContent {
    border: 1px solid #0165b3;
    padding: 12px;
    background-color: #f5fff0;
    line-height: 150%;
}
#shadow1 {
    background-color: #666666;
    filter: Alpha(Opacity=55);
}
#shadow2 {
    background-color: #666666;
    filter: Alpha(Opacity=35);
}
#shadow3 {
    background-color: #666666;
    filter: Alpha(Opacity=15);
}
</style>
alert("hello");
</head>

<body>
   <table width="100%" border="10" cellspacing="0" cellpadding="0">
       <tr>
          <td height="346" valign="top"><img src="./imag/image_1.jpg" width="938" height="346" /></td>
       </tr>
   </table>
<form action="" name=""></form>
</body>
</html>

将index.jsp放置于/WebContent/ 目录之下。上述<td/>中关联了一张图片,即./imag/image_1.jpg。未知位于/WebContent/imag/目录下,如图

 

在web.xml中配置welcome-file-list,如下

  <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

发布以后,应该在tomcat的/webapps/projectName/目录下有index.jsp文件,即

如果正常,在tomcat启动的时候在IE中输入 http://ip:port/projectName 就应该能够正常的显示index页面,但是我这里却一直报404.

我用 http://ip:port/projectName/index.jsp发现能够打开jsp页面,只是用工程名不行,于是我觉得应该是哪里把请求给拦截了,于是排查了web.xml文件,发现其中Dispatch中对/*就行拦截,即所有请求都被拦截了,如图

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

通过上述代码可以看到dispatcher这个servlet拦截了所有的请求,包括http://ip:port/projectName请求,于是在下将该代码注释掉再次启动,世界一片清平。。。。

希望上述分析对读者有益。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/beitian_123/article/details/94124075

智能推荐

关于疫情,他瞎说了30句大实话(待补充)_likika2012的博客-程序员宅基地

其实这不能怪他们,毕竟,过去的宣传一直是新冠是多么的可怕,后遗症是多么的严重,有多少国家处于水深火热中,现在突然一放开,又告诉民众,新冠会自愈,并没有什么后遗症。——新冠中造成最多死亡的,是医疗挤兑,而不是疾病本身,这是全世界共同验证过的真知。任何一项政策的诞生,寻求的都不是对某类人的最优解,都不是对少数人的最优解,而是对整个国家的最优解,对整个社会的最优解。其实制定任何政策都是需要民意基础的,但民意是熬出来的,共识也是熬出来的,熬到70%的人都同意放开,都愿意承受放开的代价,这才有了制定政策的基础。

Go Modules管理项目_go modules 多个项目-程序员宅基地

参考:https://zhuanlan.zhihu.com/p/103534192纯命令行环境操作首先要设置GO111MODULE和GOPROXY两个Go的环境变量。go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,directGOPATH这个Go环境变量也可以视自己需要看是否要重新设置(不设置就是默认的)。设置完各个Go环境变量后,执行`go env`命令看看是否生效了。从github上clone一个项目(_go modules 多个项目

IntelliJ IDEA 添加方法注释 param为null的解决方案_idea方法注释模板param为空的-程序员宅基地

今天就针对如何在idea添加方法注释做了探索,遇到些问题,在这里记录下来,方便以后查找.参考了下面 这篇文章,ItelliJ IDEA 自定义方法注解模板最终在这篇基础上做了改良,非常感谢!使用的Live Templates 的方式, 之所以选择了这篇是有原因的:这篇作者Live Template 定义的模板名是 *(使用了会发现其实有点巧妙) , 所以就可以按照Eclipse的方法注释方式生产注释: 按/**, 然后Tab键盘, 方法注释就生产了,非常完美!;网上普遍的方式是将模板..._idea方法注释模板param为空的

Embedding Propagation: Smoother Manifold for Few-Shot Classification ECCV 2020-程序员宅基地

论文题目 Embedding Propagation: Smoother Manifold for Few-Shot Classification ECCV 20201分钟思维导图(来源)Abstract目前小样本学习(Few-shot Learning,FSL)是非常具有挑战性的,是由于训练集和测试集的分布可能存在不同,产生的分布偏移(distribution shift)会导致较差的泛化性。**流形平滑(Manifold smoothing)**通过扩展决策边界和减少类别表示的噪音(ex

Apache的静态编译与动态编译详解-程序员宅基地

静态:在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态。那么何谓静态? 其实就是编译的时候所有的模块自己编译进 httpd 这个文件中(我们启动可以使用这个执行文件,如: ./httpd & ),启动的时候这些模块就已经加载进来了,也就是可以使用了,通常为: 来配置。所以

python对kafka的基本操作-程序员宅基地

-- coding:utf-8 --from kafka import KafkaProducerfrom kafka import KafkaConsumerfrom kafka.structs import TopicPartitionimport timebootstrap_servers = []class OperateKafka:def init(self,bootstrap_se...

随便推点

Java面试笔记_在mcu上运行java虚拟机-程序员宅基地

基础篇final,finally,finalize之前的区别final关键字,代表着不可变,可以保证在过程中不被修改。final修饰的数据,只能读取,不能修改。final修饰的方法表示任何继承类都无法重写。final修饰的类,表示无派生子类,无法被继承。finally表示始终被执行的意思,和try,catch一起使用,无论是否发生异常finally内的的语句都会执行。finalize是Object的方法,但JVM 进行 GC时,如果对象没有被调用,需要清除,就会执行此方法类,做生前最后的事情(_在mcu上运行java虚拟机

使用Vue.js和Laravel构建的开源博客。-程序员宅基地

PJ Blog is an open source blog built with Laravel and Vue.js. https://pigjian.comhttps://github.com/jcc/blog

Python学生信息管理系统(数据库版)_python 学生信息管理系统-程序员宅基地

该程序主要用到sqlite3#数据库sqliteimport sqlite3#存放学生信息#student = list()#展示菜单def showMenu(): print("1.增加学生信息") print("2.删除学生信息") print("3.修改学生信息") print("4.显示学生信息") print("0.退出系统") select = eval(input("操作:")) return select#添加学生信息d_python 学生信息管理系统

SourceTree密钥配置-程序员宅基地

由于版本管理工具 git ,对于一般开发者使用不方便界面管理可以选择SourceTree和TortoiseGit废话不多说了, 直接说怎么配置SourceTree密钥(1)首页->help->ssh-> 拷贝 ssh-keygen -t rsa -C "这里为git账号" 到sourceTree终端执行;(2)sourceTree->工具->选项>一般->ssh秘钥->选择(1)生

python 用list,dic实现switch功能的一个奇葩现象_list集合能用switch循环吗-程序员宅基地

python 用dict或者list来实现switch功能_list集合能用switch循环吗

solr安装-tomcat+solrCloud构建稳健solr集群-程序员宅基地

solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建;使用外部web容器tomcat来搭建。对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用tomcat来搭建solrCloud。废话不多说,开始我们的工作!1.搭建tomcat单机版solr见我的上一篇博文solr安装-tomcat单机版2.安装配置zookeeper具...