不要用JS可以实现吗?
我就是做个JAVA应用程序来获取当前浏览器访问的网页的地址!
实在是想不到了!
请高手救命吧!
在此献上100分!

解决方案 »

  1.   

    <%=request.getRequestURL().toString()%>
      

  2.   

    那在servlet里边或者action调用request.getRequestURL()就是了。
    如果是获得容器内部的请求URI:request.getRequestURI(),两个方法挺象的。
      

  3.   

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    System.out.println(request.getRequestURL().toString());
      

  4.   

    String str = request.getHeader("REFERER");
      

  5.   


    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。
     
     
      

  6.   

    String redirect_url = ((HttpServletRequest) request).getHeader("Host");
      

  7.   


    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   
      

  8.   

    楼上的理解我的意思了!但是如果我开了若干个浏览器我要怎么取到当前的浏览器的地址?
    若果我用VB实现了这个功能,又怎么才能跟我的JAVA模块联系起来?
    我崩溃啦!!
      

  9.   

    如果是分页式的浏览器,从临时文件找到相应信息的几率就更小了
    不同语言间的交互可以通过文件或者数据库,将VB产生的数据记录到文件或者数据库,再使用JAVA进行读取
      

  10.   

    request.getrequesturl():返回浏览器网址。 
    这个是很基础的。建议楼主多看API。
      

  11.   

    楼主是要抓取自己浏览器上地址栏里的URL 跟web开发没关系
    功力不够 只能用按键精灵的思想来实现
    把鼠标移到地址栏上点一下 然后ctrl+c 地址就有了 哈哈
      

  12.   

    你去看下java.net.URl 的API应该又吧
      

  13.   


    果然不是那么简单的需求。大体思路可以这样实现:将用API抓取URL的VB程序编译成库(dll),在java中jni调用。
      

  14.   

    建议楼主考虑做个 BHO 吧,在 BHO 里可以得到 IE 浏览器中所有你感兴趣的东西。不过一般不能用 Java 直接实现 BHO,考虑用任何一种能实现 ActiveX 的编程语言实现一下,然后再跟 Java 通信吧。
      

  15.   

    呃~~~BHO是个不错的想法,不过和IE关联太紧了~~~看lz的环境需求吧~
      

  16.   

    lz的意思是用桌面java程序来读取桌面浏览器的地址栏内容。
    应该是没有这样的类。
    6.0版新特性之一是增加了系统托盘的类,如此简单常用的功能6才增加,可见对调用稍底层的系统是多么不支持了。
      

  17.   

     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);
      

  18.   

    最好是用C或其他语言实现实时监控,然后把结果写在文件里, java再去扫描这个文件
      

  19.   

    你这个需求用java本来就是困难的事 你这个要个系统联合 java是弱项 vb做完了的话 要么java jni或jna或jacob调用vb的dll com组件 要么通过tcp通信vb和java之间通信 不用vb还可以使用java抓包实现(可能可行)...反正是不容易 呵呵