通过URL访问和获取html源代码

来源:互联网 发布:电商购物车数据库设计 编辑:程序博客网 时间:2024/05/18 00:45

    
URL 统一资源定位
Uniform Resource Locator ,在Internet的WWW服务程序上用于指定信息位置的表示方法
指定互联网或本地上(web服务中)的文件、对象资源 等,或者说它相当于一个互联网上资源的一个指针
协议            主机  路径    资源
http://www.itfuture.org/forum/index.jsp    <----->   url
(1)URL url = getServletContext().getResource(path);

 由ServletContext上下文对象可以得到该servlet所运行web容器中的一些资源,

通过传递资源的相对路径来获得相应的资源,要求该路径必须是针对servlet的一个相对路径,该相对路径必须以”/”开头

 url.toExternalForm()   jndi:/localhost/MvcFrame/WEB-INF/itfuture-config.xml

 url.toString()         jndi:/localhost/MvcFrame/WEB-INF/itfuture-config.xml

 构造(获得)该url的字符串形式的表示

 url.openStream();

 表示:打开到url定位的资源的连接,并返回通过该连接,所连接到资源的InputStream,

  可以通过该InputStream读该资源的Content,读资源以字节形式来读

 jndi

  java naming & direction interface

 

  jndi根目录中保存了大量的jndi

   每一个jndi和一个资源或者对象一一对应

  “jndi:”,表示以在web容器中的jndi目录中以资源唯一的jndi的方法来查找到对应资源

 

(2) URL url=getClass().getResource(“/org/itfuture/www/ApplicationResources”);

   必须依赖于Class Loader 来寻找进而动态导入该资源

   如果一个资源在包中话适合用该方式

 例子如下:

 

package org.itfuture.www.util;

    
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;

  
public class URLApp 
  

   
void display() 
   

    
byte buf[]=new byte[1000]; 
    
try 
    

        System.out.print(
"请输入文件的URL地址:"); 
        
//读取用户输入的URL 
        InputStream consoleis=System.in;  
        
int count=consoleis.read(buf); 
        String addr
=new String(buf,0,count); 
  
//将用户输入的URL字符串传入URL类对象 
  URL url=new URL (addr); 
  
//创建URLConnection对象,用URL的openConnection方法将连接通过返回给URLConnection的对象 
  
//实际上URL的openConnection的返回值就是一个URLConnection 
  URLConnection c = url.openConnection(); //*
  
//用URLConnection的connect()方法建立连接 
  c.connect();                            //*
  
// 显示该连接的相关信息,这些都是URLConnection的方法 
  System.out.println("内容类型: "+c.getContentType()); 
  System.out.println(
"内容长度: "+c.getContentLength()); 
  System.out.println(
"创建日期: "+new Date(c.getDate())); 
  System.out.println(
"最后修改日期: "+new Date(c.getLastModified())); 
  System.out.println(
"终止日期: "+new Date(c.getExpiration())); 
 
        InputStream is
=c.getInputStream();  //*
        InputStreamReader isr=new InputStreamReader(is);
        BufferedReader br
=new BufferedReader(isr);
        String str
=null;
        
while((str=br.readLine())!=null)
        
{
           System.out.println(str); 
        }

        
        
   }
catch(IOException e)
     System.out.println(e); 
   }
 
   }

   
public static void main(String[] args) 
   

    URLApp app
=new URLApp(); 
       app.display(); 
   }
 
  }