use*_*653 17 java string url servlets httprequest
从以下URL我需要(http://localhost:9090/dts)独自一人.
那就是我需要删除(documents/savedoc)(OR)
只需要获取 -(http://localhost:9090/dts)
http://localhost:9090/dts/documents/savedoc
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可用于获得上述内容?
我尝试了以下并得到了结果.但仍在努力.
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
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
inf*_*k01 35
你说你想准确得到:
http://localhost:9090/dts
Run Code Online (Sandbox Code Playgroud)
在您的情况下,上面的字符串包括:
1)方案:http
2)服务器主机名:localhost
3)服务器端口:9090
4)上下文路径:dts
(有关请求路径元素的更多信息,请参阅官方Oracle Java EE教程:从请求获取信息)
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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
两种变体都可以满足您的需求: http://localhost:9090/dts
当然还有其他变种,就像其他已经写过的......
这是你原来的问题,你问的是如何获得http://localhost:9090/dts,即你希望你的路径包括方案.
如果您仍然不需要方案,快速方法是:
String resultPath = request.getHeader("Host") + request.getContextPath();
Run Code Online (Sandbox Code Playgroud)
你会得到(在你的情况下): localhost:9090/dts
NPK*_*PKR 14
AFAIK对此没有API提供的方法,需要定制.
String serverName = request.getServerName();
int portNumber = request.getServerPort();
String contextPath = request.getContextPath();
Run Code Online (Sandbox Code Playgroud)
// 试试这个
System.out.println(serverName + ":" +portNumber + contextPath );
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 12
只需从URL中删除URI,然后将上下文路径附加到它.不需要摆弄松散的方案和端口,当你处理默认端口时80根本不需要出现在URL中,这只是比较繁琐.
StringBuffer url = request.getRequestURL();
String uri = request.getRequestURI();
String ctx = request.getContextPath();
String base = url.substring(0, url.length() - uri.length() + ctx.length());
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50455 次 |
| 最近记录: |