gpt4 book ai didi

java - 如何在 servlet 中设置 URL anchor (哈希)?

转载 作者:搜寻专家 更新时间:2023-11-01 02:24:39 25 4
gpt4 key购买 nike

简单的问题!不知道为什么谷歌也不知道答案!

在 Java servlet 中,如何在返回给用户时设置 URL anchor (散列)?

最佳答案

URL anchor 仅由浏览器处理,甚至不会到达服务器(它不是请求的一部分)。

这意味着服务器端,无论是在您建议的 servlet 中还是使用任何其他服务器端技术(例如 PHP),您可以重定向到具有 URL anchor 的 URL已设置,但您无法检查您当前正在处理的请求中是否提供了 URL anchor 。

此限制阻止您设置 URL anchor 同时保持 URL 的其余部分不变,因为服务器无法区分带和不带 URL anchor 的地址。

所以,这个,你可以做:这个答案的规范地址是这个

http://stackoverflow.com/a/27988314/4402557

但是服务器将它重定向到这里

http://stackoverflow.com/questions/27987762/how-to-set-url-anchor-hash-in-servlets/27988314#27988314

请注意, anchor 之前的 URL 部分并不相同。

在 HTTP servlet 中,您可以通过使用传递给服务方法的 HTTPServletResponse 对象的 sendRedirect(String) 方法来实现这一点,例如

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {

/* ... */

response.sendRedirect("http://example.com/your/url#hash");
}

但是,这个,你不能做:重定向这个

http://example.com/some/url

对此

http://example.com/some/url#there

对于服务器而言,两者都是同一个地址,无法区分。这使得无法检查地址是否是第一个(没有 URL anchor 的地址)并且如果是则有条件地重定向。不检查就重定向当然会创建一个重定向循环。

但是,根据您要完成的具体目标,即使您不能在您的 servlet 中完成,您也可以使用客户端脚本(即 JavaScript)来实现。查看 window.location.hash 属性。

关于java - 如何在 servlet 中设置 URL anchor (哈希)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com