jsp项目和WebRoot下的文件夹同名问题

比如说我有一个jsp的项目,项目名称是Test,而WebRoot下也有一个文件夹叫Test,该文件夹下有一个a.jsp文件,如果我要访问这个文件那么超链接里的地址应该这么... 比如说我有一个jsp的项目,项目名称是Test,而WebRoot下也有一个文件夹叫Test,该文件夹下有一个a.jsp文件,如果我要访问这个文件那么超链接里的地址应该这么写
<%=request.getContextPath() %>/Test/a.jsp,可是实际上我始终访问不了这个页面,报404错误,项目拷贝到服务器上却可以正常显示该页面。这是什么原因呢?难道是Tomcat的配置问题?我的是tomcat 6.0。

另外,我本地访问该页面,链接地址写成
<%=request.getContextPath() %>/Test/Test/a.jsp却又可以了。

请高手指教!
一楼的朋友阐述的原理我看明白了,可是还是解决不了问题,如果我本地书写链接地址
<%=request.getContextPath() %>/Test/Test/a.jsp
没有问题,但是上传到服务器上就报404了,服务器上只有书写了
<%=request.getContextPath() %>/Test/a.jsp
才能访问该页面,非常奇怪!
展开
 我来答
fly4444fly
2010-11-27 · TA获得超过371个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:152万
展开全部
补充:好像明白你什么意思了。
这个属于开发环境,和实际应用环境的区别。
你在开发的时候,部署到tomcat的时候,有应用名比如Test,所以本地访问的时候,链接中要加上应用名Test。而项目完成后,实际应用时,它是直接部署到tomcat的ROOT目录下,即根目录下。因为这个时候,一个服务器一般只有一个应用,所以就不用加以区分。项目名称Test这个时候就没有了,它只是将Test的内容上传到服务其中。所以这个时候在链接中加上Test就是找不到的。
你可以在开发的时候,模拟真实应用场景,将整个项目直接部署到Tomcat的Root目录中,使用Myeclipse开发的话。选中项目右键,最下面properties-》MyEclipse-web将web Context-root设为 / ,原来因该是Test的。

---------------------------------------------------------------------------------------------------
这个主要是为了在一个tomcat中可以部署多个应用。如果你不是将Test应用部署到tomcat的webapps的ROOT目录中的话,在访问的时候就需要加上应用名称。比如Test/Test/a.jsp。

现在假设你还有一个项目叫着Test1,它WebRoot下面也有一个Test文件夹,而且也有一个a.jsp,
<%=request.getContextPath() %>/Test/a.jsp,如果按照这种写法,正确的话,你认为它会访问到哪个项目中的a.jsp。
所以要这样写
<%=request.getContextPath() %>/Test/Test/a.jsp
<%=request.getContextPath() %>/Test1/Test/a.jsp
讲的也不是很清楚,希望你能明白
IT锦囊
2010-11-27 · TA获得超过441个赞
知道小有建树答主
回答量:1333
采纳率:0%
帮助的人:700万
展开全部
图显IP网:
因为你本地发布到tomcat时是把整个项目部署的,而服务器部署的时候,要路径就是/,所以不需要加项目名,而本地则需要

你可以修改一下部署方式,在你的tomcat配置文件server.xml中增加
<Context path="/" docBase="你的项目webroot路径"/>

这样你本地的部署就可以和服务器上的是一致的了,代码上传到服务器也不会出现什么问题了

还有什么不明白可以加我23023023
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式