使用 HTTPServlet 调用的相对路径
Relative path called with HTTPServlet
我目前正在开发一个 servlet,它 returns 给定 ID 的大量数据。
在URL
下调用
localhost:8080/RTC_W/api?id=123
源代码中没有给出特殊路径。
我的 web.xml 映射如下:
<servlet-mapping>
<servlet-name>APICaller</servlet-name>
<url-pattern>/api</url-pattern>
</servlet-mapping>
它由一个欢迎文件调用,看起来像这样(仅相关部分)并提供一个小框来输入 ID:
<body>
RTC W Front End
<form action="/api" method="get">
Work Item ID:<br>
<input type="text" name="id" value=""><br>
<input type="submit" value="Submit">
</form>
</body>
如您所见,表单操作应该调用servlet 所在的路径/api。虽然调用的 URL 是错误的,它总是调用
localhost:8080/api?id=123
所以 /RTC_W/ 不见了。如果我将它添加到 <form action="RTC_W/api" method="get">
,这个 URL 会被调用:
localhost:8080/RTC_W/RTC_W/api?id=123
所以路径被调用了两次。我做错了什么?
<form action="api" method="get">
这是你应该使用的。
当 URL 以 /
开头时,它始终是绝对 URL,即紧跟在 <hostname>:<port>
之后
如果 url 不是以 /
开头,它将附加到当前 URL。
我目前正在开发一个 servlet,它 returns 给定 ID 的大量数据。 在URL
下调用localhost:8080/RTC_W/api?id=123
源代码中没有给出特殊路径。 我的 web.xml 映射如下:
<servlet-mapping>
<servlet-name>APICaller</servlet-name>
<url-pattern>/api</url-pattern>
</servlet-mapping>
它由一个欢迎文件调用,看起来像这样(仅相关部分)并提供一个小框来输入 ID:
<body>
RTC W Front End
<form action="/api" method="get">
Work Item ID:<br>
<input type="text" name="id" value=""><br>
<input type="submit" value="Submit">
</form>
</body>
如您所见,表单操作应该调用servlet 所在的路径/api。虽然调用的 URL 是错误的,它总是调用
localhost:8080/api?id=123
所以 /RTC_W/ 不见了。如果我将它添加到 <form action="RTC_W/api" method="get">
,这个 URL 会被调用:
localhost:8080/RTC_W/RTC_W/api?id=123
所以路径被调用了两次。我做错了什么?
<form action="api" method="get">
这是你应该使用的。
当 URL 以 /
开头时,它始终是绝对 URL,即紧跟在 <hostname>:<port>
如果 url 不是以 /
开头,它将附加到当前 URL。