我是靠谱客的博主 跳跃大船,这篇文章主要介绍记录一下,关于Spring Boot在写web时初次加载jsp的一个坑。(Path with "WEB-INF" or "META-INF": [WEB-INF/pages/login.jsp]),现在分享给大家,希望可以做个参考。
刚开始接触SpringBoot ;
所用编辑器为:IDEA;
想用SpringBoot创建web工程,第一步就遇到了坑,具体如下:
添加webapp文件夹,创建目录/WEB-INF/pages/,将jsp文件放入下方;
在application.yml文件中配置:
复制代码
1
2
3
4
5spring: mvc: view: prefix: /WEB-INF/pages/ suffix: .jsp
程序正常启动,在访问时会报出以下警告:
复制代码
1
2WARN 14836 --- [nio-8080-exec-1] o.s.w.s.r.ResourceHttpRequestHandler : Path with "WEB-INF" or "META-INF": [WEB-INF/pages/login.jsp]
页面出现一下错误:
复制代码
1
2
3
4
5Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Mar 13 10:37:19 CST 2019 There was an unexpected error (type=Not Found, status=404). No message available
查看原码,看到后好像是不能有WEB-INF或META-INF的两个文件夹(有点绝望):
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26protected boolean isInvalidPath(String path) { if (!path.contains("WEB-INF") && !path.contains("META-INF")) { if (path.contains(":/")) { String relativePath = path.charAt(0) == '/' ? path.substring(1) : path; if (ResourceUtils.isUrl(relativePath) || relativePath.startsWith("url:")) { if (logger.isWarnEnabled()) { logger.warn("Path represents URL or has "url:" prefix: [" + path + "]"); } return true; } } if (path.contains("..") && StringUtils.cleanPath(path).contains("../")) { if (logger.isWarnEnabled()) { logger.warn("Path contains "../" after call to StringUtils#cleanPath: [" + path + "]"); } return true; } else { return false; } } else { if (logger.isWarnEnabled()) { logger.warn("Path with "WEB-INF" or "META-INF": [" + path + "]"); } return true; } }
然后再百度,找到以下结果,算是解决了问题;
在pom.xml文件添加以下代码,再运行就OK:
复制代码
1
2
3
4<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
具体实现还没有弄明白,不过在此记录一下。
最后
以上就是跳跃大船最近收集整理的关于记录一下,关于Spring Boot在写web时初次加载jsp的一个坑。(Path with "WEB-INF" or "META-INF": [WEB-INF/pages/login.jsp])的全部内容,更多相关记录一下,关于Spring内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复