Java中的路径问题

1、java项目
  1 File file = new File("");
    使用java命令,输出路径是,当前java命令停留的盘符
    F:\workspaces\20120909\day06_java\bin
    使用myeclipse或eclipse运行时
    F:\workspaces\20120909\day06_java
  2 File file = new File("/");
    获得当前盘符
    F:\
  3 URL url = Hello.class.getClassLoader().getResource("");
    获得路径,使用类加载器
    F:/workspaces/20120909/day06_java/bin/
    当前类被加载时,所在的文件根目录
  4 URL url = Hello.class.getClassLoader().getResource("/");
    不能使用
    null
2、web项目
  1、通过servletcontext获得文件
    获得实际路径
      sc.getRealPath("/1.html");
    获得URL
      URL url = sc.getResource("/1.html");
    获得流【**】
      InputStream is = sc.getResourceAsStream("/1.html");
      WebRoot/page/abc/2.html -- path:/page/abc/2.html
  2、web的相对路径(所有的操作请求,来自浏览器)
    前提:相对当前的页面1.html
    使用分类:
    1、abc:与当前页面同级的目录或servlet的名称
    <a href="c/c.html">c.html</a><br>
    2、/abc:相对于web站点,%tomcat%/webapps/
    <a href="/day06_web/b/c/c.html">c.html</a><br>
    3、./abc:当前目录,与第一种情况相同
    <a href="./c/c.html">c.html</a><br>
    4、../abc:上一次目录
    <a href="../b/c/c.html">c.html</a><br>
    总结:操作过程
      当前页面:http://localhost:8080/day06_web/b/b.html
      目标页面:http://localhost:8080/day06_web/b/c/c.html
      / -- webapps -- http://localhost:8080
    来自浏览器的操作
    在页面中显示html内容(*.html)
    servlet发送到浏览器中的数据,包含的html内容(*.java)
    http响应头(location等)
3、servlet中使用的相对路径
   除了"/"其他与2相同
  / 表示当前web项目的上下文的根,即web项目的根
  ServletContext具有的方法
  RequestDispatcher中确定的路径

posted @ 2017-03-31 16:32  xuyatao  阅读(642)  评论(0编辑  收藏  举报