配置虚拟路径解决Tomcat资源访问受限问题(Not allowed to load local resource)

配置虚拟路径解决Tomcat资源访问受限问题

今天使用Tomcat服务器结合Servlet做图片文件下载时,想着可以先把图片显示给用户,而不是只是提供一个简单的图片名称。但是当我将图片源文件的路径写入img的src后发现,图片并不能显示,打开控制台后发现提示我(Not allowed to load local resource),也就是不允许我访问本地文件,后来查询资料发现,这是Tomcat对于服务器资源的一种保护。
那么如果我想要实现自己的想法,就需要强行来打破这个保护机制,还好我也没有啥要保护的_,哈哈哈!

虚拟路径配置法

首先要找到你的Tomcat目录下的配置文件server.xml,打开Tomcat的安装目录就在conf文件夹下,我的路径就是(\apache-tomcat-7.0.81\conf\server.xml),找到之后使用记事本或者其他可以进行文本编辑的软件打开,找得到host节点区域,

<host>
	......
</host>

在host结束标签前,加入下面的代码,并进行参数的配置

<host>
	......
//我配置的虚拟的路径
<Context path="/image" docBase="G:\Project\workspace\filedownload\fdownload" reloadable="true">
//示例
<Context path="/路径名(随便写个自己喜欢的不冲突的)" docBase="文件的真实路径" reloadable="true"></Context>
</host>

Context 标签属性说明

path:服务器 url 请求地址,自己设置的,可以用在服务器中所有希望访问配置路径下文件的url地址。
docBase:服务器文件的路径,也就是资源文件的真实路径。
reloadable:热部署,是否在 Tomcat 不重启的情况下实时同步本地目录。

总结

通过配置虚拟路径很好的解决了本地资源访问受限的问题,也实现了自己想要的效果,但是似乎就像大家所说的,虚拟路径的设置打破了Tomcat对本地资源的保护机制,使得资源目录下的所有资源文件都直接展现给了用户,所以大家在实际项目开发中还是要慎重使用。

猜你喜欢

转载自blog.csdn.net/WebSpider_1/article/details/107026711