java - 使用 HTTPServlet 调用的相对路径

标签 java http url servlets web.xml

我目前正在开发一个 servlet,它将大量数据返回给给定的 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>

可以看到,form action应该调用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。

关于java - 使用 HTTPServlet 调用的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003744/

相关文章:

java - 当实现仅在一个方法上不同时,建议使用哪种设计模式?

java - 如何在 Android 中执行 Java HTTP GET 调用并等待响应?

android - 使用从 URL 下载的图像在主屏幕上创建快捷方式

url - 如何找到IP地址的端口号?

http - 没有 "http|https"的网址

java - 覆盖的方法和变量 - 不一致的行为

Java gson在序列化时替换成员对象

java - '。类(class)。' java中的错误

java - 在 HTTP 请求返回值之前阻止函数向前移动

php - 在 PHP 文件之间传递数据