【问题标题】:Retrieve the URL [duplicate]检索 URL [重复]
【发布时间】:2018-07-11 07:47:24
【问题描述】:

我有一个如下形成的 URL: http://localhost:8080/app/angular/users/#/update/745

当我尝试使用request.getRequestURL()获取 URL 时,我得到的 URL 直到 http://localhost:8080/app/angular/users。我尝试了与HTTPServletRequest 不同的方法,但都没有奏效。

有人可以帮忙吗?我需要了解如何获取完整的 URL,以及 # 是什么。

【问题讨论】:

  • 你不能。哈希参数不会被发送到服务器。

标签: java spring spring-mvc tomcat


【解决方案1】:

getPathInfo() 在 URI 之后给出额外的路径信息,用于访问你的 Servlet,而 getRequestURI() 给出完整的 URI。

我原以为它们会有所不同,因为首先必须使用自己的 URI 模式配置 Servlet;我认为我从未从根 (/) 提供过 Servlet。

例如,如果 Servlet 'Foo' 映射到 URI '/foo' 那么我会认为 URI:

/foo/path/to/resource 会导致:

RequestURI = /foo/path/to/resource 和

PathInfo = /path/to/resource

【讨论】:

    【解决方案2】:

    # 是一个片段标识符。在它之后你无法获取数据,它不会被发送到服务器。

    How to get full URL which contains # from HttpServletRequest

    要解决这个问题,不要使用# 作为传递参数的方法。坚持使用 http://localhost:8080/app/angular/users/update?id=745 等请求参数,并让 Spring 在 Controller 上的 GET 方法中读取,或者将其用作路径变量,例如 http://localhost:8080/app/angular/users/update/745,您也可以从 Spring 控制器中检索这些变量。

    【讨论】:

      猜你喜欢
      • 2020-08-20
      • 2018-07-08
      • 2011-06-21
      • 1970-01-01
      • 2021-02-25
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      相关资源
      最近更新 更多