我的项目部署在C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ebook中,我在ebook下的index.jsp中获取到当前的路径:
//index.jsp
<%@ page contentType="text/html;charset=gbk" %>
<%@ page import="java.io.*" %>
当前WEB应用的物理路径:<%=application.getRealPath("/")%><BR>  
当前你求请的JSP文件的物理路径:<%=application.getRealPath(request.getRequestURI())%><BR>  
<%   
String path=application.getRealPath(request.getRequestURI());   
String dir=new File(path).getParent();   
out.println("当前JSP文件所在目录的物理路径"+dir+"</br>");   
String realPath1 = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath()+request.getServletPath().substring(0,request.getServletPath().lastIndexOf("/")+1);    
out.println("web URL 路径:"+realPath1);   
%>  
显示的结果是:
当前WEB应用的物理路径:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ebook\
当前你求请的JSP文件的物理路径:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ebook\ebook\index.jsp
当前JSP文件所在目录的物理路径C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ebook\ebook
web URL 路径:http://127.0.0.1:8080/ebook/ 在上述结果中:当前你求请的JSP文件的物理路径为什么是……\ebook\ebook\index.jsp呢?两个\ebook?这跟实际路径不符呀?请各位指点
我是在myeclipse7.1里做的,tomcat6.0

解决方案 »

  1.   

    我感觉着是你在配置文件里 有个 同名的 包名 <package name="ebook" namespace="/ebook" > 这里的“/ebook”和 下面部署的名称相同可能会出现 你现在的问题吧。。
    C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ebook\
      

  2.   

    感谢你的关注,我看了一下:在我的工作空间和tomcat目录中的web.xml里都没有定义ebook的包。只有我的项目名叫ebook,估计不是这个原因吧
      

  3.   

    关键是看context 里的 path ,呵呵
      

  4.   


    ebook.xml:
    <?xml version='1.0' encoding='utf-8'?>
    <Context path="/ebook" docBase="E:\JspApp\ebook" debug="0" reloadable="true" crossContext="true" />你的意思是因为Context path 和 docBase里有分别有个ebook,最后连到一起了???
      

  5.   

    http://127.0.0.1:8080/ebook/默认访问的就是ebook下的WebRoot目录