tomcat下某个目录不能遍历的解决方法

今天在维护一个 java项目的时候,遇到了 tomcat不能遍历某个目录的情况

 

具体为:在通过用IP来访问 webapps根目录时,出现上图

而在上面的图中,除了web目录不能进入,其他的都可以,

web目录下面的文件有:

从网上的资料来看,基本都是说是因为文件里面没有WEB-INF,但是我加了这个目录和web.xml后,任然不能访问。

在群里问了很多人,也找了一些方法,任然没有解决

最后我在 server.xml的

<Host name=”localhost” debug=”0″ appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Host name=”localhost” debug=”0″ appBase=”webapps” unpackWARs=”true” autoDeploy=”true” xmlValidation=”false” xmlNamespaceAware=”false”>

下面加了

<Context path
=”/web” docBase=”web” debug=”0″

reloadable=”true” crossContext=”true”>

</Context>

就可以进入 web 目录 了

网上看了下 <host>里面的<context>的作用,大概就是

<Context>代表了运行在<Host>上的单个Web应用,一个<Host>可以有多个<Context>元素,每个Web应用必须有唯一的URL路径,这个URL路径在<Context>中的属性path中设定。

<Context>元素的属性:
path:指定访问该Web应用的URL入口。
docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。

posted @ 2012-03-27 15:51  编程思想家  阅读(1410)  评论(0编辑  收藏  举报