如何从HttpServletRequest获取URL片段标识符

Kur*_*rru 9 java servlets fragment-identifier

如何从中获取URL片段标识符HttpServletRequest

javadocs中似乎没有提到它.

Mar*_*lis 15

您无法以您希望的方式获取URL片段.

通常,浏览器不会将片段发送到服务器.这可以通过使用网络协议分析器来验证,如tcpdump,Ethereal,Wireshark,Charles.

但是,您可以在JavaScript请求中将片段字符串作为GET/POST参数发送.要使用JavaScript获取值,请使用window.location.hash.然后,您可以在AJAX请求中将此值作为GET或POST参数传递,并在HttpServletRequest上使用getParameter方法来获取AJAX请求.

这是RFC3986:统一资源标识符(URI):通用语法必须说:

片段标识符在取消引用之前与URI的其余部分分离,因此片段本身内的标识信息仅由用户代理解除引用,而不管URI方案如何.虽然这种单独处理通常被认为是信息丢失,特别是随着资源随时间推移而对参考文献进行精确重定向,但它也有助于防止信息提供者拒绝参考作者有选择地引用资源内的信息.间接引用还为使用URI的系统提供了额外的灵活性和可扩展性,因为新媒体类​​型比新的识别方案更容易定义和部署.