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();
}
}