<%@ 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。。等。。就不能显示它的内容。。但下面橘黄色的可以显示网页的内容。。为什么会这样?怎么才能解析远程的网页??
<%@ 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。。等。。就不能显示它的内容。。但下面橘黄色的可以显示网页的内容。。为什么会这样?怎么才能解析远程的网页??
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){}
}
}