Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sendRedirect(test.jsp)和sendRedirect(/test.jsp)之间的区别_Java_Jsp_Url_Redirect_Servlets - Fatal编程技术网

Java sendRedirect(test.jsp)和sendRedirect(/test.jsp)之间的区别

Java sendRedirect(test.jsp)和sendRedirect(/test.jsp)之间的区别,java,jsp,url,redirect,servlets,Java,Jsp,Url,Redirect,Servlets,我想注意重定向中使用的/ 开头的正斜杠表示“相对于此web的根” 容器头优先JSP和servlet 我以为我理解它,直到我尝试了它。我将用超级简单的代码进行演示: 以index.html开头: <html><body> <form action="GenericServlet" method="POST"> Enter name: <input type="text" n

我想注意重定向中使用的
/

开头的正斜杠表示“相对于此web的根” 容器头优先JSP和servlet

我以为我理解它,直到我尝试了它。我将用超级简单的代码进行演示:

以index.html开头:

<html><body>
    <form action="GenericServlet" method="POST">
        Enter name: <input type="text" name="name">
        <button>Submit name</button>
    </form>
</body></html>
,它将重定向到test.jsp:

<html><body>
hellooooo
</body></html>

你好
运行它之后,我会收到
helloo
消息。但一旦我将重定向改为
/test.jsp
而不是
test.jsp
,我会收到找不到错误

我还注意到,当我使用重定向(test.jsp)时,我得到了这个http://localhost:8080/testProject/index.html 但是,当我使用redirect(/test.jsp)时,我得到了这样的结果:http://localhost:8080/test.jsp


如果海德首先告诉我
/
代表
root
,为什么我没有得到与第一种情况相同的URL?root=testProject,对吗?有人能看出我说错了什么吗?

root=testProject?不

根路径是没有任何路径的域部分,即http://localhost:8080在您的上下文中


例如,假设当前请求url为
http://localhost:8080/a/b
,如果调用
resp.sendRedirect(“c”);
,则下一个请求url是
http://localhost:8080/a/c
。如果调用
响应发送重定向(“/c”);
,下一个请求url将是
http://localhost:8080/c

我猜您指的是在以下位置描述的示例:。据我所知,容器是处理您的应用程序的应用程序。在本例中,它是一个服务器,所以“相对于此web容器的根”很可能意味着“相对于服务器地址”“在您的情况下,这是
http://localhost:8080
。链接文章的结果似乎证实了这一点(注意,结果URL中的
/foo/stuff.html
之前没有
/myApp
)。
<html><body>
hellooooo
</body></html>