假设在后台通过java的class访问某个网页,并向这个网页提交(post)一定的数据,那个网页执行后,jsp把返回值得到(就是那个网页执行后显示的html内容)
这种方法在IE端可以通过ajax技术实现,但在jsp后台如何实现呢?
谢谢

解决方案 »

  1.   


    在服务端使用java.net.URL即可访问其它网络资源URL csdn = new URL("http://community.csdn.net/");
      

  2.   

    这是打开个地址呀,能不能向这个页面提交一定的数据,如一个xml串,然后该页面根据提交的xml数据进行数据返回
    不能用url传参数,因为参数比较复杂
      

  3.   

    谢谢,已经搞定了,总结如下:
    ★简单抓取,打开url然后读取内容
    如果网址不存在会引发UnknownHostException的错误
    如果网址慢,则会费比较长的时间来读取内容
    public static void main(String[] args) throws Throwable
      {
    java.net.URL url=new java.net.URL("http://127.0.0.1/gjj");
       //java.net.URL url=new java.net.URL("http://192.168.194.1/stand/manage/treemenu.xml");
    java.io.InputStreamReader ins=new java.io.InputStreamReader(url.openStream(),"UTF-8");
       StringBuffer buffer=new StringBuffer();
        int ch=0;
        while((ch=ins.read())!=-1)
           buffer.append((char)ch);
        ins.close();
    System.out.println(buffer.toString());
      }下面的是逐行读取的例子,功能和上面的是一样的
    public static void main(String[] args) throws Throwable
      {
    java.net.URL url=new java.net.URL("http://192.168.194.1/stand/manage/treemenu.xml");
    java.io.BufferedReader br=new java.io.BufferedReader(new java.io.InputStreamReader(url.openStream(),"UTF-8"));
    String s="";
    StringBuffer sb=new StringBuffer("");
    while((s=br.readLine())!=null)
    sb.append(s+"\r\n");    
    br.close();
        System.out.println("*"+sb.toString()+"*");
      }
    ★复杂,提交(post)数据后再获取返回的html内容
    public static void main(String[] args) throws Throwable
      {
            //String   data   =   java.net.URLEncoder.encode("key1你好")   +   "="   +   java.net.URLEncoder.encode("value1",   "UTF-8");   
            //data   +=   "&"   +   java.net.URLEncoder.encode("key2",   "UTF-8")   +   "="   +   java.net.URLEncoder.encode("value2",   "UTF-8");   
    String data=java.net.URLEncoder.encode("你好\r\n邢志云","GB2312");//这就是提交的数据
    java.net.URL url=new java.net.URL("http://192.168.194.1/stand/manage/jsp.aspx");//向这个页面提交数据,具体这个页面的方法见C#笔记■在服务器端解开客户端提交来的数据流,大约在255页
    java.net.URLConnection conn=url.openConnection();
    conn.setDoOutput(true);   
            java.io.OutputStreamWriter wr= new java.io.OutputStreamWriter(conn.getOutputStream());   
            wr.write(data);   
            wr.flush();
    wr.close();

    java.io.BufferedReader br=new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream(),"UTF-8"));//提交后对方页面返回html
    String s="";
    StringBuffer sb=new StringBuffer("");
    while((s=br.readLine())!=null)
    sb.append(s+"\r\n");    
    br.close();

        System.out.println("*"+sb.toString()+"*");
      }
      

  4.   

    这就能实现类似ajax的技术,jsp就是ajax中的ie,c#就是ajax的后台
    jsp做前台,C#做后台,实现数据交互