各位大虾,我在一个1.jsp页面中使用String filedir=request.getSession().getServletContext().getRealPath("/")
   在用<input type="hidden" value=<%=filedir%> name="filedir"><input type="submit" value="提交“>
   发送到另一个2.jsp页面中在将filedir输出但结果怎么变了    开始测试时request.getSession().getServletContext().getRealPath("/")得到的路径为:
     D:\Tomcat 5.5\webapps\news3\ 
   
   再在2.jsp接受后输出结果为:D:\Tomcat  这是怎么回事呀?急!急!急!

解决方案 »

  1.   

    做java 的兄弟们,有没有想加入IBM的,请联系我[email protected]
      

  2.   

    getRealPath("/") 
    第一次的时候 这个得到的是web的根目录的绝对路径,在本页面里就会打印出   D:\Tomcat 5.5\webapps\news3\ 
    因为1.jsp 是在tomcat中进行的发布 
    至于在2.jsp中得到 D:\Tomcat 
    不知道 你是怎么写的 
    如果你是想在2.jsp中打印出1.jsp的绝对路径
    你可以这样  在 1.jsp中 action=“2.jsp”
    在2.jsp中 <%=equest.getParameter("filedir")%> 
    就可以打印出 你想要的结果!
      

  3.   

    <input type="hidden" value= "<%=filedir%>" name="filedir"> 
    加上引号
    没加引号的时候,碰到空格,就认为value属性值结束了。
      

  4.   

    request.getSession().getServletContext().getRealPath("/")得到的路径为: 
    D:\Tomcat 5.5\webapps\news3\ 
    这个是好理解的,默认"/"就是你项目的根目录再在2.jsp接受后输出结果为:D:\Tomcat 
    你看看你的CATALINA_HOME,就是你的Tomcat 的环境变量设置
    他获取的就是Web容器的路径
      

  5.   

    对于第一个里面打印出D:\Tomcat 5.5\webapps\news3\ 
    比较好理解。
    但是第二个为什么是:D:\Tomcat 
    就不知道了
    比较迷惑,如果我没有设置CATALINA_HOME呢?
    那会是什么呢?
    我的就没有设置找个CATALINA_HOME,打印出来的是:D:\Java奇怪吧!继续关注!
      

  6.   

    将你的filedir进行一下编码试试:
    <input type="hidden" value= <%=java.net.URLEncoder(filedir)%> name="filedir"> <input type="submit" value="提交“> 
      

  7.   

    你把String filedir=request.getSession().getServletContext().getRealPath("/") 
    直接写到你要用的那个页面里。一样,何必传来传去。
      

  8.   

    value="...."哥们,你在前后加上引号吧,呵呵呵,这个属于低级错误。
      

  9.   

    建议你看看 html 的源代码,就清楚了。