●●JSP如何得到一个网址返回的源码?
有一个这样的URL
http://www.123.com/aa.asp?id=111
如何把它的源码赋值给JSP的一个变量????
ASP可以用XMHTTP,JSP我不知怎么搞,请教
问题点数:20、回复次数:15Top
1 楼ok1996()回复于 2005-12-27 19:22:32 得分 0
upTop
2 楼scriptren(路是慢慢走出来的......)回复于 2005-12-27 19:53:19 得分 0
路过
不懂
顶一个Top
3 楼zjueman(老学究)回复于 2005-12-27 21:22:12 得分 0
可以通过
URLConnection连接这个URL
就可以获得这个网页的内容
然后把返回回来的内容付给那个变量
没有把握,可以试试Top
4 楼dxadnwfn(可米第二)回复于 2005-12-27 21:40:43 得分 0
String id=request.getParameter("id");
ok试试Top
5 楼iwlk(http://www.ChinaFedora.cn/ fedora论坛)回复于 2005-12-27 21:45:07 得分 0
java.net.URLConnection conn=new java.net.URL("http://site.c06.net/").openConnection();
java.io.InputStream fis=conn.getInputStream();
byte by[]=new byte[conn.getContentLength()];
fis.read(by);
fis.close();
//如果http://site.c06.net/网页的编码是utf-8 则
String str=new String(by,"UTF-8");
//如果http://site.c06.net/网页的编码是gb2312 则
//String str=new String(by);
System.out.println(str);
Top
6 楼iwlk(http://www.ChinaFedora.cn/ fedora论坛)回复于 2005-12-27 21:48:04 得分 0
//你把 http://site.c06.net/ 改为 你想得到源码的URL 即可Top
7 楼ok1996()回复于 2005-12-28 00:58:16 得分 0
我试了,报错呀
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Top
8 楼ok1996()回复于 2005-12-28 00:59:29 得分 0
我一句句试,发现从
byte by[]=new byte[conn.getContentLength()]; 这句开始报错Top
9 楼ok1996()回复于 2005-12-28 09:13:33 得分 0
如果我将byte by[]=new byte[conn.getContentLength()]; 改成
byte by[]=new byte[999];// 那么页面就什么也不显示,什么也读不到Top
10 楼jfy3d(剑事 http://www.migti.com)回复于 2005-12-28 09:32:33 得分 0
http://www.blogjava.net/jfy3d/archive/2005/05/11/4173.html
这个可以实现Top
11 楼denghan(很久没来ASP版了)回复于 2005-12-28 09:44:14 得分 0
源码?HTML类的可以,如果是ASP,PHP等动态脚本,只能得到解释生成后的代码
试试这个
try
{ //开始发送
URL url = new URL(urlstr);
URLConnection connection = url.openConnection();
connection.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.
getInputStream()));
String line;
while ( (line = in.readLine()) != null) {
result += line; //.substring(line.indexOf("|")+1)
}
in.close();
System.out.println("成功发送请示并取回内容:\n" + urlstr);
}
catch (Exception e) {
ReturnValue = "";
System.out.println("发送失败:"+e.getMessage());
}
需要import java.net.URLConnection,java.net.URL,java.io.BufferedReader,java.io.InputStreamReader;
如果目标页内容多,建议用StringBuffer
Top
12 楼dafei0320(我只知其然)回复于 2005-12-28 09:51:01 得分 0
楼上正解——
BufferedReader in = new BufferedReader(new InputStreamReader(connection.
getInputStream()));
String line;
while ( (line = in.readLine()) != null) {
result += line; //.substring(line.indexOf("|")+1)
}
in.close();
Top
13 楼iwlk(http://www.ChinaFedora.cn/ fedora论坛)回复于 2006-01-04 23:39:23 得分 0
楼主:我测试者正常呀
<%
java.net.URLConnection conn=new java.net.URL("http://site.c06.net/").openConnection();
java.io.InputStream fis=conn.getInputStream();
byte by[]=new byte[(int)conn.getContentLength()];
fis.read(by);
fis.close();
//如果http://site.c06.net/网页的编码是utf-8 则
String str=new String(by,"UTF-8");
//如果http://site.c06.net/网页的编码是gb2312 则
//String str=new String(by);
out.println(str);
%>Top
14 楼koma_wind()回复于 2006-01-05 00:05:16 得分 0
正好今天在写:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GetWebCode {
public static String getHtmlCode(String http){
String webCode = "";
InputStream in;
try {
URL url = new java.net.URL(http);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection = (HttpURLConnection) url.openConnection();
//模拟成IE
connection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
connection.connect();
in = connection.getInputStream();
java.io.BufferedReader breader = new BufferedReader(new InputStreamReader(in , "GBK"));
String tmp = "";
while(breader.readLine() != null){
webCode = webCode + breader.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
return webCode;
}
public static void main(String[] args){
try {
String demo = getHtmlCode("http://www.easydone.cn");
System.out.println(demo);
} catch (Exception e) {
e.printStackTrace();
}
}
}Top
15 楼nora2008((www.web745.com))回复于 2006-03-28 20:25:36 得分 20
最简单的源码
http://www.web745.com/html/190/158.html
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="sun.misc.*" %>
<%@ page import="java.net.*"%>
<%@ page import="java.lang.reflect.Method"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%
String UrlStr="http://www.web745.com";
String sTemp = "";
URL url=new URL(UrlStr);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
int n = -1;
int BUF_SIZE = in.available();
byte [] line = new byte[BUF_SIZE];
StringBuffer buf = new StringBuffer();
while((n=in.read(line,0,BUF_SIZE)) != -1 ){
if(n<BUF_SIZE)
buf.append(new String(line).substring(0,n));
else
buf.append(new String(line));
}
sTemp = buf.toString();
sTemp=sTemp.replaceAll("?","");
out.print(sTemp);
%>
Top




