<%@ page contentType="text/html;charset=GB2312" %><%@ page import="javax.swing.text.html.HTMLEditorKit.*" %>
<%@ page import="javax.swing.text.html.parser.ParserDelegator" %>
<%@ page import="java.net.*" %>
<%@ page import="javax.swing.text.*" %>
<%@ page import="javax.swing.text.html.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.io.*" %>
<%@ page import="ch17.*" %>
<%
     String urlstring="";
    urlstring=request.getParameter("urlstring");HTMLparse parse=new HTMLparse();
ParserDelegator pd =new ParserDelegator();
try
{
out.println("正在建立连接"+urlstring+".........<br>");
URL currenturl=new URL(urlstring);
URLConnection conn=currenturl.openConnection();
HttpURLConnection httpconn=(HttpURLConnection) conn;

httpconn.connect();
out.println("响应HTTP状态码:");
out.println(httpconn.getResponseCode()+"<br>");
out.println("响应信息:");
out.println(httpconn.getResponseMessage()+"<br>");
if(httpconn.getResponseCode()==HttpURLConnection.HTTP_OK)
{
   out.println("输出Conntent类型:");
   out.println(httpconn.getContentType()+"<br>");
   if(httpconn.getContentType().substring(0,9).equals("text/html"))
   {
   try
   {
     InputStreamReader in =new InputStreamReader(httpconn.getInputStream());
     
     BufferedReader buf =new BufferedReader(in);
     
     pd.parse(buf,parse,true);
     out.println("网页的原始内容:<br>");
     out.println(parse.getPageContent()+"<br>");     
     String file="";
     String str="";
     
     while((str=buf.readLine())!=null)
     {
     
        file +=str;
         System.out.println(str);
     }
     
     out.println("<textarea name=information cols=90 rows=30 value="+file+"> </textarea>");
     out.flush();
     out.close();
     
   }
    catch (Exception   ex)
    {
     out.println(ex.getMessage());
    }
    httpconn.disconnect();
   }
}
}
  catch (Exception ex)
  {
    out.println(ex.getMessage());
  }
%>红色的那一句。如果是本地的服务中的网页,就可以显示内容,可是如果不是本地的。。如:www.baidu.com。。等。。就不能显示它的内容。。但下面橘黄色的可以显示网页的内容。。为什么会这样?怎么才能解析远程的网页??

解决方案 »

  1.   


    public void getContent(){
    DataInputStream dis=null;
    InputStream is=null;
    try{
       Sring url="http://tech.163.com/digi/08/0509/12/4BGKIOFQ001618J1.html";
    StringBuffer strBuffer=new StringBuffer();
    URL rss2=new URL(url);
    URLConnection con2=(URLConnection)rss2.openConnection();
    DataInputStream dis2=new DataInputStream(con2.getInputStream());
    String line2 , content="" , filter="";
    while((line2=dis2.readLine())!=null){
                                           filter=new String(line2.trim().getBytes("iso8859-1"),"GB2312");
    strBuffer.append(filter+"\r\n");
    }
    content=strBuffer.toString(); System.out.println(content);
    dis2.close();
    }
    catch(Exception e){
    e.printStackTrace();
    }
    finally{
    try{
    if(dis!=null)dis.close();
    }
    catch(Exception e){}
    }
    }