从 servlet 读取整个 url

Posted

技术标签:

【中文标题】从 servlet 读取整个 url【英文标题】:Reading whole url from servlet 【发布时间】:2013-01-05 17:40:03 【问题描述】:

我想从 servlet 中读取 HTTP 请求中设置的确切 URL。这与任何 URL 重写部分一起 (;jsessionid=...)。

有可能吗?

【问题讨论】:

查看***.com/questions/2222238/… 不,这不包括“;jsession...”部分 请求 URL 中可能没有 jsessionid 参数。如果启用了 cookie,jsessionid 将作为 HTTP 标头出现。在这种情况下,您可以通过以下方式获取它:request.getRequestedSessionId() 【参考方案1】:

获取请求的URL(;?之前的部分)如下:

StringBuffer requestURL = request.getRequestURL();

如果会话 ID 作为 URL 路径片段附加,您可以检查如下:

if (request.isRequestedSessionIdFromURL()) 
    requestURL.append(";jsessionid=").append(request.getSession().getId());

您可以按如下方式获取和附加查询字符串(如果有):

if (request.getQueryString() != null) 
    requestURL.append('?').append(request.getQueryString());

最后得到完整的URL如下:

String fullURL = requestURL.toString();

【讨论】:

+1 表示;jsessionid= 部分,但您在附加查询字符串时错过了) ;) 谢谢,这就是我要找的东西 uff,错了,如果 servlet 接收到包含无效 sessionid 的 url,这将不起作用。我不想粗鲁,但这不是一个完整的答案,所以我不接受它。 好的。在这种情况下,request.getRequestedSessionId() 是什么意思?如果它返回所需的值,request.isRequestedSessionIdFromURL()...FromCookie() 会说什么? fromCookie 返回 true,FromURL 返回 false,我不知道 URL 最初是否包含 ;jsessionid

以上是关于从 servlet 读取整个 url的主要内容,如果未能解决你的问题,请参考以下文章

如何从 servlet-filter 写入文件并在 Eclipse 中读取它?

Java Web应用程序(Jsp / Servlets)启动脚本

Web app ------ 从Servlet读取Json数据并显示,生成历史数据曲线图

Web app ------ 从Servlet读取Json数据并显示,生成历史数据曲线图

2017.12.17 servlet 生命周期

如何从 servlet 获取给定 URL 的来源?