使用HTTPServlet调用的相对路径

时间:2017-03-24 15:43:03

标签: java http url servlets web.xml

我目前正在开发一个servlet,它将大量数据返回给定ID。 它在URL

下调用
  

本地主机: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所在的path / api。调用的URL虽然错误,但总是调用

  

本地主机:8080 / API ID = 123

所以/ RTC_W /丢失了。如果我将其添加到<form action="RTC_W/api" method="get">,则会调用此URL:

  

本地主机:8080 / RTC_W / RTC_W / API ID = 123

因此路径被调用两次。我做错了什么?

1 个答案:

答案 0 :(得分:1)

return this.Ok(new object[]{ users, numberOfRecords });

这是你应该使用的。

当网址以<form action="api" method="get"> 开头时,它始终是绝对网址,即紧跟在/

之后

如果网址不以<hostname>:<port>开头,则会附加到当前网址。