请教高手,servlet中如何获取URL中的这种参数。

ivan_070 2011-10-03 09:35:03
URL:http://www.test.com/aaa#abc

我想在request中获取#后面的参数,但是无论是通过request.getQueryString,还是inputstream都无法获取,请教高手,应该怎么获取啊。
...全文
1043 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysw2008foxmailcom 2011-10-12
  • 打赏
  • 举报
回复
这样一个想法
1、先用JS去获得该参数
2、用Jquery 里的AJAX去推到后台Servlet
m540920181 2011-10-12
  • 打赏
  • 举报
回复
应该使用请求转发
懒到变成虫 2011-10-12
  • 打赏
  • 举报
回复
学习了。。。。
ivan_070 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 wula0010 的回复:]

引用 32 楼 ivan_070 的回复:
其实是人人开放平台返回的错误。只是没想到#后面的东西在服务器端无法获取。哎……非主流啊~!


人人开放平台,返回的东西,为什么你要用servlet来接收?很奇怪你的需求,是不是这里就有问题?..........
[/Quote]

人人的前台API,直接浏览器跳转
wula0010 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 ivan_070 的回复:]
其实是人人开放平台返回的错误。只是没想到#后面的东西在服务器端无法获取。哎……非主流啊~!
[/Quote]

人人开放平台,返回的东西,为什么你要用servlet来接收?很奇怪你的需求,是不是这里就有问题?..........
wang12 2011-10-11
  • 打赏
  • 举报
回复 1
#号是HTML页面定义中的锚点,不作为query string向服务器端传递
ivan_070 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 wula0010 的回复:]

刚才测试了一下楼上的所有方法,确实取不到#后面的值,所以对这个仔细baidu了下,发现在url中"#"是个特殊字符,表示书签,那说明“而是某个开放平台将错误消息用#来传递”不对,人家传给你的是一个url和书签,而不是一个参数,所以楼主,你要从这里去思考,而不是非要在request里去取这个值,这样恐怕只能自寻烦恼,换个思路去解决你的问题吧。
[/Quote]

其实是人人开放平台返回的错误。只是没想到#后面的东西在服务器端无法获取。哎……非主流啊~!
wula0010 2011-10-11
  • 打赏
  • 举报
回复
刚才测试了一下楼上的所有方法,确实取不到#后面的值,所以对这个仔细baidu了下,发现在url中"#"是个特殊字符,表示书签,那说明“而是某个开放平台将错误消息用#来传递”不对,人家传给你的是一个url和书签,而不是一个参数,所以楼主,你要从这里去思考,而不是非要在request里去取这个值,这样恐怕只能自寻烦恼,换个思路去解决你的问题吧。
ivan_070 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 haiyangyiba 的回复:]

引用 24 楼 ivan_070 的回复:
大哥们啊,麻烦你们写个servlet测试一下,如果能获取到的话告诉我吧。
谢谢了。

request应该获取不到,请求地址中为:
http://www.test.com/aaa#abc
#在浏览器地址中用于页面的内链接使用的,在servlet中,#后面的值拿不到
System.out.println(request.getRequestU……
[/Quote]

servlet如果不能直接获取的话就算了。
多谢了。
liuhongdong2010 2011-10-10
  • 打赏
  • 举报
回复
String uri = request.getRequestURI();
String path = uri.substring(uri.lastIndexOf("#")+1);
微甜灬呼吸 2011-10-10
  • 打赏
  • 举报
回复
获取引用路径然后拆分字符串
aqqbjlgu 2011-10-10
  • 打赏
  • 举报
回复 1
request.getServletPath().split("#")[1]
weiniyang 2011-10-10
  • 打赏
  • 举报
回复
request.getRequestURI();
ivan_070 2011-10-10
  • 打赏
  • 举报
回复
大哥们,你们是不是都测试过啊,我刚刚写了一个servlet,通过request.getparameter无法获取到#之后的东西。
ylcat 2011-10-10
  • 打赏
  • 举报
回复
12楼正解,我有分不?
haiyangyiba 2011-10-10
  • 打赏
  • 举报
回复
可以用 js 拿到这个值,这个请求换成ajax的方式来请求,用js获取请求的地址,然后再用 indexOf("#"),获取,如下:

<script type="text/javascript">
alert(document.URL);
</script>

在servlet中这样获取

PrintWriter out = resp.getWriter();
out.println("<script type='text/javascript'>alert(document.URL);</script>");
out.close();
haiyangyiba 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 ivan_070 的回复:]
大哥们啊,麻烦你们写个servlet测试一下,如果能获取到的话告诉我吧。
谢谢了。
[/Quote]
request应该获取不到,请求地址中为:
http://www.test.com/aaa#abc
#在浏览器地址中用于页面的内链接使用的,在servlet中,#后面的值拿不到
System.out.println(request.getRequestURI());
System.out.println(request.getRequestURL());
System.out.println(request.getHeader("referer"));
System.out.println(request.getServletPath());
这些都拿不到
ivan_070 2011-10-10
  • 打赏
  • 举报
回复 1
大哥们啊,麻烦你们写个servlet测试一下,如果能获取到的话告诉我吧。
谢谢了。
ivan_070 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaona1047985204 的回复:]

自己解析行么?使用字符串截取的方法获取#后面的值
[/Quote]

我是要自己解析,问题这个字符串如何获取到?
ivan_070 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 graphy 的回复:]

Java code

(request.getHeader("referer")).substring((request.getHeader("referer")).indexOf("#")+1,???)
[/Quote]

我要获取的是自己的URL中的#,不是referer。

或者我修改一下问题,URL是http://localhost/aaa?a=1#123
如何能获取到这个123。
加载更多回复(18)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧