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