java - servletcontext读取资源文件的路径问题

查看:72
本文介绍了java - servletcontext读取资源文件的路径问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

https://segmentfault.com/a/11...
文中读取db1234使用的是getServletContext().getResourceAsStream()
所配的路径是/WEB-INF/classes/xxx

我看了看黑马程序员上java-web关于这一部分的视频,视频中说是按照文件的真实路径配的(因为project下src下的.java文件都编译到了/WEB-INF/classes/目录下),然后我查了一下我自己装的tomcat6,实际上是编译到了/build/classes/这个目录下,然而当我把路径写成/build/classes/xxx的时候报错了。project下的classpath文件里也有如下语句:<classpathentry kind="output" path="build/classes"/>

那这个路径是应该怎样来写呢?

---------------------------update1---------------------------------
尝试了一下getRealPath()
输出如下:
D:\eclipse-java6-workspace\
.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\
test-servlet\
WEB-INF\classes\my\test\serlvetcontext\db.properties
不太理解,看起来好像是运行时才会存在的一个文件夹,类似于tmp文件夹?
---------------------------update2-----------------------------------
以下是针对视频里的内容的补充:
我重写了classloader里的findloadedclass,发现视频里讲得对。

解决方案

进入tomcat的配置页,就会看到tomcat部署的默认路径

这就是打印出来的路径,选其他选项来修改路径。

这篇关于java - servletcontext读取资源文件的路径问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆