当前位置:  开发笔记 > 编程语言 > 正文

从URI获取锚点

如何解决《从URI获取锚点》经验,为你挑选了1个好方法。

我正在编写JSP/Servlet,我正在尝试获取URI的锚点部分,例如:

blabla.rdf#mark

如何从我的请求中获得我的标记?显然request.getParameter()不起作用?

欢迎任何帮助.



1> sfussenegger..:

这是不可能的,因为客户端不会将"锚点部分"发送到服务器

例如,以下是Chrome在提交后生成的确切请求http://example.com/#foobar(使用Wireshark记录):

GET / HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.223.11 Safari/532.3
Cache-Control: max-age=0
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
If-None-Match: "b300b4-1b6-4059a80bfd280"
If-Modified-Since: Tue, 15 Nov 2005 13:24:10 GMT

看,没有#foobar.所以服务器应用程序无法读取它.

你可以做一些JavaScript魔法来将锚存储在cookie或隐藏的输入字段或你所进入的任何伏都教中.但它不适用于不是来自您自己网站的请求.在查询字符串的服务器部分上做任何你需要的东西更简单,并且仅将锚用于仅用于JavaScript的任务 - 或者使用它来在简单的HTML文档中导航 - 但这就是90年代;).

这是提到的RFC 1808的重要部分:

请注意,片段标识符(以及它之前的"#")不被视为URL的一部分.但是,由于它通常在与URL相同的字符串上下文中使用,因此解析器必须能够在片段存在时识别片段,并将其作为解析过程的一部分放在一边.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有