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
才能访问该页面,非常奇怪! 展开
<%=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
才能访问该页面,非常奇怪! 展开
2个回答
展开全部
补充:好像明白你什么意思了。
这个属于开发环境,和实际应用环境的区别。
你在开发的时候,部署到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
讲的也不是很清楚,希望你能明白
这个属于开发环境,和实际应用环境的区别。
你在开发的时候,部署到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
讲的也不是很清楚,希望你能明白
展开全部
图显IP网:
因为你本地发布到tomcat时是把整个项目部署的,而服务器部署的时候,要路径就是/,所以不需要加项目名,而本地则需要
你可以修改一下部署方式,在你的tomcat配置文件server.xml中增加
<Context path="/" docBase="你的项目webroot路径"/>
这样你本地的部署就可以和服务器上的是一致的了,代码上传到服务器也不会出现什么问题了
还有什么不明白可以加我23023023
因为你本地发布到tomcat时是把整个项目部署的,而服务器部署的时候,要路径就是/,所以不需要加项目名,而本地则需要
你可以修改一下部署方式,在你的tomcat配置文件server.xml中增加
<Context path="/" docBase="你的项目webroot路径"/>
这样你本地的部署就可以和服务器上的是一致的了,代码上传到服务器也不会出现什么问题了
还有什么不明白可以加我23023023
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询