从 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数据并显示,生成历史数据曲线图