java - 在 servlet 中获取请求 URL

标签 java servlets

我想知道下面两种在servlet中获取请求URL的方法的区别。

方法一:

String url = request.getRequestURL().toString();

方法二:

url = request.getScheme()
      + "://"
      + request.getServerName()
      + ":"
      + request.getServerPort()
      + request.getRequestURI();

上述两种方法是否有可能给出两个不同的 URL?

最佳答案

getRequestURL()当方案为 http 时为 80 或方案为 https 时为 443 时省略端口。

所以,如果您只想获取整个 URL,只需使用 getRequestURL()。但是,这不包括 GET 查询字符串。您可能希望按如下方式构建它:

StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
    requestURL.append("?").append(request.getQueryString());
}
String completeURL = requestURL.toString();

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

相关文章:

java - 在 LibGDX (Java) 中更改坐标系

java - 如何在多线程环境下使用Servlet

javascript - 将多行字符串从数据库传递到javascript变量

java - 自定义电话号码格式

java - LifecycleRegistry 未初始化,在 MVP 架构的 BaseActivity 中

java - 获取一年的日期的Util

java - 如何使用 iText 在 JSP 中显示有限页数的 PDF 文件?

java - 从 db2 blob 字段检索 p7m 文件

java - Hibernate sessionfactory 每次启动时都会删除我的数据库内容吗?

java - 悬停时显示单词含义,可用作 MT 系统的后期编辑工具