java - 如何从 HttpServletRequest 获取 URL 的一部分?

标签 java string url servlets httprequest

我需要从以下 URL 单独获取 (http://localhost:9090/dts)
那就是我需要删除 (documents/savedoc) (OR)
只需要获取 - (http://localhost:9090/dts)

http://localhost:9090/dts/documents/savedoc  

请问有什么方法可以获取以上信息吗?

我尝试了以下并得到了结果。但仍在努力。

System.out.println("URL****************"+request.getRequestURL().toString());  
System.out.println("URI****************"+request.getRequestURI().toString());
System.out.println("ContextPath****************"+request.getContextPath().toString());

URL****************http://localhost:9090/dts/documents/savedoc  
URI****************/dts/documents/savedoc  
ContextPath****************/dts

谁能帮我解决这个问题?

最佳答案

你说你想得到:

http://localhost:9090/dts

在你的例子中,上面的字符串包括:

  1. scheme : http
  2. 服务器 host name : 本地主机
  3. 服务器 port :9090
  4. context path : dts

(有关请求路径元素的更多信息,请参阅官方 Oracle Java EE 教程:Getting Information from Requests)
##第一个变体:###

String scheme = request.getScheme();
String serverName = request.getServerName();
int serverPort = request.getServerPort();
String contextPath = request.getContextPath();  // includes leading forward slash

String resultPath = scheme + "://" + serverName + ":" + serverPort + contextPath;
System.out.println("Result path: " + resultPath);

##第二种变体:##
String scheme = request.getScheme();
String host = request.getHeader("Host");        // includes server name and server port
String contextPath = request.getContextPath();  // includes leading forward slash

String resultPath = scheme + "://" + host + contextPath;
System.out.println("Result path: " + resultPath);

两种变体都会给你你想要的:http://localhost:9090/dts

当然还有其他变体,就像其他人已经写过的......

只是在您最初的问题中,您询问了如何获取 http://localhost:9090/dts,即您希望您的路径包含 include 方案。

如果您仍然不需要方案,快速的方法是:

String resultPath = request.getHeader("Host") + request.getContextPath();

你会得到(在你的情况下):localhost:9090/dts

关于java - 如何从 HttpServletRequest 获取 URL 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065257/

相关文章:

java - 什么时候调用 super.onActivityResult?

java - 如何在java中显示iText Image对象

java - 如何从维基百科中提取标题标题和相应的文本

string - KMP 前缀表直觉

php - 包含句点或点的 URL 在 PHP 中给出 403 禁止错误

url - Unicode URL 对 SEO 有多友好?

java - Spring @Transactional 即使抛出异常也会提交部分结果

java - 如何解决不可变的 String[]

Java 中 getBytes 的 C# 模拟

url - 对 SEO 有利还是不利 : Keeping URLs in English for a non-english website?