Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从URI获取锚点_Java_Jsp_Servlets_Anchor - Fatal编程技术网

Java 从URI获取锚点

Java 从URI获取锚点,java,jsp,servlets,anchor,Java,Jsp,Servlets,Anchor,我正在编写一个JSP/Servlet,并试图获取URI的锚定部分,例如: blabla.rdf#mark 如何从我的请求中获得分数?显然request.getParameter()不起作用 欢迎提供任何帮助。这是不可能的,因为客户端不向服务器发送“锚定部分” 举个例子,下面是Chrome在提交http://example.com/#foobar(使用Wireshark录制): 看,不,福巴。因此,服务器应用程序无法读取它 您可以使用JavaScript魔法将锚存储在cookie或隐藏的输入字段

我正在编写一个JSP/Servlet,并试图获取URI的锚定部分,例如:

blabla.rdf#mark
如何从我的请求中获得分数?显然
request.getParameter()
不起作用


欢迎提供任何帮助。

这是不可能的,因为客户端不向服务器发送“锚定部分”

举个例子,下面是Chrome在提交
http://example.com/#foobar
(使用Wireshark录制):

看,不,福巴。因此,服务器应用程序无法读取它

您可以使用JavaScript魔法将锚存储在cookie或隐藏的输入字段中,或任何您正在使用的巫毒中。但对于不是来自您自己网站的请求,它永远不会起作用。在查询字符串的服务器部分生成所需的内容,并仅将锚定用于仅JavaScript的任务,或者使用锚定在简单的HTML文档中导航,这样做更简单,但这太简单了

以下是提到的RFC 1808中的重要部分:

请注意,片段标识符(及其前面的“#”)是 不被视为URL的一部分。但是,由于它是常用的 在与URL相同的字符串上下文中,解析器必须能够 当碎片存在时识别它,并将其放在一边作为测试的一部分 解析过程


这个解决方案只有在按下提交按钮后才能工作,但是:您可以使用javascript在表单上放置一个隐藏值,该值设置为document.location。这将准确地告诉您浏览器所看到的地址。

我想您希望创建一个可书签的Ajax web应用程序,并且希望在不重新加载整个页面的情况下替换DOM的某些片段。(否则您可以使用查询参数。)正如sfussenegger提到的,浏览器不会将“锚定””传输到服务器。解决方案在客户端

Javascript
window.location.hash
提供锚信息。您可以将事件处理程序附加到
window.onload
事件,该事件捕获
window.location.hash
,并以Ajax XHTPrequest将其传输到服务器。捕获响应并将其构建到DOM中

不幸的是,这是两次客户机-服务器往返


关于这方面的更多信息,请访问。

这里有一个与PHP类似的问题,答案也同样向上投票:关于信息,请参阅解释锚定部分为何不发送到服务器的示例。
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