1."/"的使用:    
给服务器使用: "/" 表示在当前web应用的根目录(tomcat里面的指定项目中webRoot下)
 给浏览器使用: "/"  表示在webapps的根目录下2.查询流程:
给浏览器使用
例子:   url=/W项目名/资源名
先定位"/"然后定位项目名;之后到web.xml中寻找是否有url-pattern的值为"资源名",如果有,定位到对应的Servlet;
如果没有,到webRoot根目录下找有没有对应的资源名;如果有,定位,如果没有就报404错误;
给浏览器使用:
例子:url=/资源名
在本项目web.xml中寻找是否有url-pattern的值为"资源名",如果有,定位到对应的Servlet;
如果没有,到webRoot根目录下找有没有对应的资源名;如果有,定位,如果没有就报404错误;
3.具体问题分析:
1) 转发:
             request.getRequestDispatcher("/target.html").forward(request, response);转发是服务器内部的跳转,"/"是给服务器使用的,表示当前web应用的根目录,这句代码的含义是:转发到webRoot/target.html
2)重定向
        重定向是服务器给浏览器发送响应之后,浏览器根据响应头中附带location再次请求新页面的过程.这个地址是给浏览器用的:例子:response.sendRedirect("/Web_demo/target.html");
由于webapps的根目录有多个项目,所以需要指定具体的项目名;
3)html页面的超连接href
 例子:/Web_demo/target.html'>超链接</a></body></html>)
由于超链接是给浏览器使用,所以"/"表示webapps根目录下
4) html页面中的form提交地址
         response.getWriter().write("<html><body><form action='/Web_demo/target.html'><input type='submit'/></form></body></html>)同上
4 读取web应用下的资源文件
1)"."的使用
          "." 代表java命令运行目录。         在java项目中,java命令运行目录就是根目录
          在javaweb项目中java命令运行目录在tomcat/bin目录下(Servlet在服务器上运行,而打开服务器的文件startup.bat在bin目录下)
           结论: 在web项目中, . 代表在tomcat/bin目录下开始,所以不能使用这种相对路径。

  2)getRealPath
          getRealPath读取,自动定位到本项目中的WebRoot根目录,返回资源文件的绝对路径,
         String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties"); 3). getResourceAsStream() 
        getResourceAsStream得到资源文件,自动定位到本项目中的WebRoot根目录,返回的是输入流
         InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
         Properties prop = new Properties();
         prop.load(in);5 读取web应用工程名
getContextPath():
     获取的是本工程名