java - 在servlet中获取部分请求url

标签 java jakarta-ee servlets httprequest url-pattern

我有一个 EmailVerification Servlet 映射到 /ev/* url-pattern。

http://example.com/ev/ce52320570

如何在我的 Servlet 中获取 URL 的 ce52320570 部分?

protected void doPost(HttpServletRequest request, HttpServletResponse response)
                                                     throws ServletException, IOException {
      String vid = "";  // Here I need to get the id from the URL
}

最佳答案

考虑映射到 /ev/* 的 Servlet(称为 EmailVerification):

Will the URL http://example.com/ev/ce52320570 trigger the EmailVerification servlet ?

是的。在 Servlet 版本 2.5 和 3.0(可能更早)中,如果您将其映射到 *,如 /ev/*,它将获得子路径。

How can I get this ce52320570 part of the URL http://example.com/ev/ce52320570?

  • request.getRequestURI()将以 String 的形式为您提供请求的 URL,例如 /ev/ce52320570

  • request.getPathInfo()/ev/ 之后获取(如果存在)所有内容。

    • 所以在对 /ev/123 的请求中,getPathInfo() 会给你 /123。同样,对 /ev/some/other 的请求,getPathInfo() 会给你 /some/other

      /p>

  • request.getQueryString()如果您需要 URL 的查询参数部分,应该使用。

    • 请记住,getRequestURI()getPathInfo()只为您提供请求的路径。如果需要获取查询参数,即?之后的参数,如/ev/something?query1=value1&other=123,只有 request.getQueryString() 会返回 query1=value1&other=123 部分。
  • request.getParameter(parameterName)如果您需要特定查询参数的值。


请求中 URL 部分的更多示例 here .

关于java - 在servlet中获取部分请求url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501478/

相关文章:

java - 保护资源,例如 servlet 中的图像

javascript - 将 var 从 javascript 传递到 servlet

java - 如何从 servlet 中的项目文件夹提供输入文件

Java - 访问在 Windows Azure 上运行的 MongoDB 服务器

java - 如何获取 JavaFX 标签的宽度和高度?

java - 如何在 Tomcat 上使用 MongoDB 实现 Java EE 容器安全

java - 从 Netbeans 6+ 中的 WAR 文件中排除文件夹

java - 使用 Redis Sentinel 的 Spring Boot 缓存始终连接到主节点

java - JUnit 报告显示测试功能,而不是覆盖率

java - Java SE 是 Java EE 的先决条件吗?