web中的路径问题

路径的最左边/
/a/b/c/d
客户端重定向   服务器端解析路径最左边的/:项目中的所有资源都在contextPath下面(项目名)

1.客户端解析路径最左边的/(客户端重定向时路径不加“/”)
     代表的是端口号后面的/
     http://ip:port/
例如:
     在页面中有一个超链接
     <a href="/hello.html">测试</a>
     当我们点击这个超链接的时候,地址栏中的中会变成: http://ip:port/hello.html
例如:
     在servlet完成一个客户端重定向操作
     String url = "/hello.html";
     response.sendRedirect(url);
     由于客户端重定是把url地址返回给浏览器,浏览器解析之后,发出新的请求,这时候浏览器地址栏中的url地址变为:
                http://ip:port/hello.html

2.服务器解析路径最左边的/(服务器内部跳转路径加“/”)
       代表的是项目名后面的/
       http://ip:port/项目名/
     例如:
     在web.xml文件中配置servlet的映射路径
     <url-pattern>/TestServlet</url-pattern>
     这个最左边的/是由服务器端进行解析的,所以它代表的是项目名后的/,浏览器进行访问的时候就要写这样的UR地址:
             http://ip:port/项目名/TestServlet
例如:
     在servlet中进行服务器内部跳转操作
     String url = "/TestServlet";
     request.getRequestDispatcher(url).forward(request, response);
  这个最左边的/是由服务器端进行解析的,所以它代表的是项目名后的/,最后内部跳转所访问的url地址就是:
         http://ip:port/项目名/TestServlet


原文地址:https://www.cnblogs.com/yxj808/p/12018042.html