用java获取当前浏览的网页的地址 不要用JS可以实现吗?我就是做个JAVA应用程序来获取当前浏览器访问的网页的地址!实在是想不到了!请高手救命吧!在此献上100分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <%=request.getRequestURL().toString()%> 那在servlet里边或者action调用request.getRequestURL()就是了。如果是获得容器内部的请求URI:request.getRequestURI(),两个方法挺象的。 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(request.getRequestURL().toString()); String str = request.getHeader("REFERER"); referer的作用 在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer。它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是:request.getHeader("referer"); php是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。那它能干什么用呢?我举两个例子:1,防止盗连 比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。2,电子商务网站的安全 我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。使用referer的注意事项: 如果我是直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容。 我做了个实验,比如我的referer代码在a.jsp中,它的上一页面是b.htm,c.htm是一个带有iframe的页面,它把a.jsp嵌在iframe里了。我在浏览器里输入b.htm的地址,然后点击连接去c.htm,那显示的结果是b.htm,如果我在浏览器里直接输入的是c.htm那显示的是c.htm。 String redirect_url = ((HttpServletRequest) request).getHeader("Host"); http://www.fqf.cn:8000/fqf/somepath/test?someparam=fqf request.getpathinfo():返回/somepath/test request.getrequesturl():返回http://www.fqf.cn:8000/fqf/somepath/test request.getrequesturi():返回/fqf/somepath/test request.getservletpath():返回/fqf request.getquerystring():返回someparam=fqf 楼上的理解我的意思了!但是如果我开了若干个浏览器我要怎么取到当前的浏览器的地址?若果我用VB实现了这个功能,又怎么才能跟我的JAVA模块联系起来?我崩溃啦!! 如果是分页式的浏览器,从临时文件找到相应信息的几率就更小了不同语言间的交互可以通过文件或者数据库,将VB产生的数据记录到文件或者数据库,再使用JAVA进行读取 request.getrequesturl():返回浏览器网址。 这个是很基础的。建议楼主多看API。 楼主是要抓取自己浏览器上地址栏里的URL 跟web开发没关系功力不够 只能用按键精灵的思想来实现把鼠标移到地址栏上点一下 然后ctrl+c 地址就有了 哈哈 你去看下java.net.URl 的API应该又吧 果然不是那么简单的需求。大体思路可以这样实现:将用API抓取URL的VB程序编译成库(dll),在java中jni调用。 建议楼主考虑做个 BHO 吧,在 BHO 里可以得到 IE 浏览器中所有你感兴趣的东西。不过一般不能用 Java 直接实现 BHO,考虑用任何一种能实现 ActiveX 的编程语言实现一下,然后再跟 Java 通信吧。 呃~~~BHO是个不错的想法,不过和IE关联太紧了~~~看lz的环境需求吧~ lz的意思是用桌面java程序来读取桌面浏览器的地址栏内容。应该是没有这样的类。6.0版新特性之一是增加了系统托盘的类,如此简单常用的功能6才增加,可见对调用稍底层的系统是多么不支持了。 request.getRequestURL()只能取到当前不带参数的链接地址 request.getHeader("referer")取得是当前页面的请求地址 也就是上一个页面的地址 给你一段代码 你可以运行一下 很严谨 应该符合你的需求 String protocol=request.getProtocol(); String domainName=request.getLocalName(); String servletName=request.getServletPath(); Map paramMap =request.getParameterMap(); String returnUrl=""; if(protocol.toLowerCase().indexOf("http")!=-1){ returnUrl+="http://"; } returnUrl+=domainName; returnUrl+=servletName; Object []paramNames=null; if(paramMap!=null){ paramNames=paramMap.keySet().toArray(); } if(paramNames!=null) for(int i=0;i<paramNames.length;i++){ String paramName=paramNames[i].toString(); if(i==0){ returnUrl+="?"+paramName+"="+request.getParameter(paramName); }else{ returnUrl+="&"+paramName+"="+request.getParameter(paramName); } }System.our.println(returnUrl); 最好是用C或其他语言实现实时监控,然后把结果写在文件里, java再去扫描这个文件 你这个需求用java本来就是困难的事 你这个要个系统联合 java是弱项 vb做完了的话 要么java jni或jna或jacob调用vb的dll com组件 要么通过tcp通信vb和java之间通信 不用vb还可以使用java抓包实现(可能可行)...反正是不容易 呵呵 怎样用java程序读取用jarsigner签名的文件里的签名信息? java程序未捕获到异常,程序非正常退出? 紧急求助:WebSphere MQ的事务管理问题,解决马上结贴 怎么不能调用brownhorse(); 初学java,问两个问题,急。。。。。(散分100) 刚学完Java基础,大虾能否提供一些比较综合的实例? 请看一段代码,jcreator pro老说我没有声明,不知如何?编译通过就给分! 研究生毕业论文 for java 第1篇 在JAVA中经常有*.jar文件,请问有什么用?可以打开吗? 高分求解 jni 问题 一道程序题 JAVA面试题
如果是获得容器内部的请求URI:request.getRequestURI(),两个方法挺象的。
throws ServletException, IOException {
System.out.println(request.getRequestURL().toString());
referer的作用
在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer。它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是:request.getHeader("referer");
php是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。那它能干什么用呢?我举两个例子:1,防止盗连 比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。2,电子商务网站的安全 我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。使用referer的注意事项: 如果我是直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容。 我做了个实验,比如我的referer代码在a.jsp中,它的上一页面是b.htm,c.htm是一个带有iframe的页面,它把a.jsp嵌在iframe里了。我在浏览器里输入b.htm的地址,然后点击连接去c.htm,那显示的结果是b.htm,如果我在浏览器里直接输入的是c.htm那显示的是c.htm。
http://www.fqf.cn:8000/fqf/somepath/test?someparam=fqf
request.getpathinfo():返回/somepath/test
request.getrequesturl():返回http://www.fqf.cn:8000/fqf/somepath/test
request.getrequesturi():返回/fqf/somepath/test
request.getservletpath():返回/fqf
request.getquerystring():返回someparam=fqf
若果我用VB实现了这个功能,又怎么才能跟我的JAVA模块联系起来?
我崩溃啦!!
不同语言间的交互可以通过文件或者数据库,将VB产生的数据记录到文件或者数据库,再使用JAVA进行读取
这个是很基础的。建议楼主多看API。
功力不够 只能用按键精灵的思想来实现
把鼠标移到地址栏上点一下 然后ctrl+c 地址就有了 哈哈
果然不是那么简单的需求。大体思路可以这样实现:将用API抓取URL的VB程序编译成库(dll),在java中jni调用。
应该是没有这样的类。
6.0版新特性之一是增加了系统托盘的类,如此简单常用的功能6才增加,可见对调用稍底层的系统是多么不支持了。
给你一段代码 你可以运行一下 很严谨 应该符合你的需求
String protocol=request.getProtocol();
String domainName=request.getLocalName();
String servletName=request.getServletPath();
Map paramMap =request.getParameterMap();
String returnUrl="";
if(protocol.toLowerCase().indexOf("http")!=-1){
returnUrl+="http://";
}
returnUrl+=domainName;
returnUrl+=servletName;
Object []paramNames=null;
if(paramMap!=null){
paramNames=paramMap.keySet().toArray();
}
if(paramNames!=null)
for(int i=0;i<paramNames.length;i++){
String paramName=paramNames[i].toString();
if(i==0){
returnUrl+="?"+paramName+"="+request.getParameter(paramName);
}else{
returnUrl+="&"+paramName+"="+request.getParameter(paramName);
}
}
System.our.println(returnUrl);