所有路径都分为服务器端解析和客户端解析
一(/或者)
1.服务端:不管是js还是html,都代表主机名和端口号的路径,如:localhost:8080
列:
action="/"
href="/"
location.href="/"
response.sendRedirect("/");
2.客户端:客户端解析为主机名端口号在加项目名,如:localhost:8080/项目名称(Test)
例:
request.getRequestDispatcher("/").forward(request, response);//会报错
<%@ include file="/" %>
<jsp:include page="/"></jsp:include>
二(../)
1.不管是客户端还是服务端,都代表当前文件的上一级目录,如:http://localhost:8080/Test/page/other/a.jsp,在此jsp执行../的结果:http://localhost:8080/Test/page/
例:
action="../"
href="../"
location.href="../"
response.sendRedirect("../");
request.getRequestDispatcher("../").forward(request, response);
三(./)
1.不管是客户端还是服务端,都代表当前文件的同级目录,如:http://localhost:8080/Test/page/other/a.jsp,在此jsp执行./的结果:http://localhost:8080/Test/page/other/
例:
action="./"
href="./"
location.href="./"
response.sendRedirect("./");
request.getRequestDispatcher("./").forward(request, response);
四(“”)
1.客户端:代表当前元素自己,如:http://localhost:8080/page/a.jsp中的的结果:http://localhost:8080/page/a.jsp
例:
action=""
href=""
location.href=""
response.sendRedirect("");
2.服务器:代表项目的根目录,如:localhost:8080/Test
request.getRequestDispatcher("").forward(request, response);
五.(xx或者xx.xx)
客户端:代表当前文件同级的xx文件夹或者xx.xx文件
action="xx"
href="xx"
location.href="xx"
response.sendRedirect("xx");
<%@ include file="xx" %>
<jsp:include page="xx"></jsp:include>
需要注意的是:
http://localhost:8080/items/toAdd
页面下的
会变成http://localhost:8080/items/items/add
服务器:代表项目根目录下的xx文件夹或者xx.xx文件
request.getRequestDispatcher("").forward(request, response);