请问:jsp中如何通过后台执行提交并获得返回值(类似ajax的代码) 假设在后台通过java的class访问某个网页,并向这个网页提交(post)一定的数据,那个网页执行后,jsp把返回值得到(就是那个网页执行后显示的html内容)这种方法在IE端可以通过ajax技术实现,但在jsp后台如何实现呢?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在服务端使用java.net.URL即可访问其它网络资源URL csdn = new URL("http://community.csdn.net/"); 这是打开个地址呀,能不能向这个页面提交一定的数据,如一个xml串,然后该页面根据提交的xml数据进行数据返回不能用url传参数,因为参数比较复杂 谢谢,已经搞定了,总结如下:★简单抓取,打开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()+"*"); } 这就能实现类似ajax的技术,jsp就是ajax中的ie,c#就是ajax的后台jsp做前台,C#做后台,实现数据交互 ssh框架做简单项目,但是简单的查询总是出错啊!! 【【会员推广链接注册真实性判断???】】 页面request.getAttribute取对象的怪问题! 重金求解 实现倒计时器 关于jdbc调用存储过程的问题 是留还是走 请教高手怎么编译 servlet呢? "怎么实现?? 高分求教,关于SQLServer中data类型,字符出乱码的问题? 高手快来救救菜鸟吧!!!!!!!!! 自定义标签库中如何引用jstl标签库? java.net.SocketException: Connection reset
在服务端使用java.net.URL即可访问其它网络资源URL csdn = new URL("http://community.csdn.net/");
不能用url传参数,因为参数比较复杂
★简单抓取,打开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()+"*");
}
jsp做前台,C#做后台,实现数据交互