首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向url中的查询字符串和参数映射为空。

重定向url中的查询字符串和参数映射为空。
EN

Stack Overflow用户
提问于 2013-10-20 12:21:48
回答 1查看 2K关注 0票数 0

我正在为nexus编写一个插件,我正在做一个response.sendRedirect,如下所示

代码语言:javascript
复制
String redirectUrl = url + "#nexus-search;gav"
    + "~net.collab.builds~teamforge~~~~"
    + "?" + req.getQueryString();   

response.sendRedirect(response.encodeRedirectURL(redirectUrl));

所形成的重定向url将类似于

代码语言:javascript
复制
http://domain/nexus/index.html#nexus-search;gav~net.collab.builds~teamforge~~~~?sfId=prpl1106&sfLoginToken=A237421CF755183D177F5C020752040F&isLoggedIn=true

我在这里所做的是将旧请求对象中存在的查询字符串追加到新的url并重定向到它。

但是,我无法理解的是,当新的重定向url被击中时,我认为redirecturl中有查询字符串,所以没有得到查询字符串。我放置了断点,发现在完成重定向url之后,当它被处理时,查询字符串为null。

以下是疑问:

1)我做错了什么,使查询字符串消失了?

为了查看重定向是否顺利,我做了request.getCookie,发现cookie与旧请求中的cookie一样存在。那我哪里出问题了?我的新url查询字符串到哪里去了?

2)重定向url是否也有旧请求对象中的paramterMap。目前,重定向url中的paramterMap也是空的。我是否应该显式地从旧请求对象中获取并在重定向过程中将其作为响应。如何使旧请求对象中的参数映射在重定向过程中也被发送。

调试的更新:

当我用#nexus访问url时,就好像发生了一些奇怪的事情。

我在jira中将其作为nexus中的问题登录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-21 07:02:12

你找到了解决办法。

问题在于查询字符串的附加位置。在代码中,我在我找到的片段(在#符号后面的一部分) .From搜索后追加了查询字符串

http://blog.httpwatch.com/2011/03/01/6-things-you-should-know-about-fragment-urls/ https://www.rfc-editor.org/rfc/rfc3986#section-3.5

因此,这意味着在生成请求对象时不考虑片段。事实上,他们被抛弃了。

因此,解决方案是在正确的位置追加查询字符串。准确地说,将其附加到片段之前.

代码语言:javascript
复制
String redirectUrl = url + "?" + req.getQueryString(); + "#nexus-search;gav" + "~net.collab.builds~teamforge~~~~" ;

所以这解决了我的问题。希望这对犯同样错误的人有帮助。谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19477249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档