OSGi R4服务平台核心规范 :第十一章 URL处理服务规范(2)

 由  满江红开放技术研究组织 发布

11.7.org.osgi.service.url

OSGi URL流和内容处理器API包,版本规范:1.0。

需要使用这个包的bundle必须要导入这个包,通过在bundle清单文件中的Import-Package头标中描述。例如:

  Import-Package: org.osgi.service.url; version=1.0

11.7.1.概要

  • AbstractURLStreamHandlerService – URLStreamHandlerService接口的抽象实现。[p.263]
  • URLConstants – 定义了与URLStreamHandlerService[p.265]和java.net.ContentHandler 服务相关的属性键名称。[p.264]

URLStreamHandlerService – 服务接口,实现了java.net.URLStreamHandler 中私有方法的公开化。[p.265]

URLStreamHandlerSetter – URLStreamHandlerService对象使用的接口,用来调用代理器URLStreamHandler对象的setURL方法。

11.7.2.public abstract class AbstractURLStreamHandlerService extends URLStreamHandler implements URLStreamHandlerService

URLStreamHandlerService接口的抽象实现。所有的方法只是简单的调用了在类java.net.URLStreamHandler中相应的方法,除了parseURL和setURL方法,这两个方法使用了URLStreamHandlerSetter参数。这个抽象类的子类应该没有必要覆盖setURL和parseURL(URLStreamHandlerSetter,...)方法。

11.7.2.1.protected URLStreamHandlerSetter realHandler

传递给parseURL方法的URLStreamHandlerSetter对象。

11.7.2.2.public AbstractURLStreamHandlerService( )

11.7.2.3.public boolean equals( URL u1, URL u2 )

 

调用super.equals(URL,URL)

See Also

java.net.URLStreamHandler.equals(URL,URL)

11.7.2.4.public int getDefaultPort( )

 

调用super.getDefaultPort。

See Also

java.net.URLStreamHandler.getDefaultPort

11.7.2.5.public InetAddress getHostAddress( URL u )

 

调用super.getHostAddress

See Also

java.net.URLStreamHandler.getHostAddress

11.7.2.6.public int hashCode( URL u )

 

调用super.hashCode(URL)

See Also

java.net.URLStreamHandler.hashCode(URL)

11.7.2.7.public boolean hostsEqual( URL u1, URL u2 )

 

调用super.hostsEqual

See Also

java.net.URLStreamHandler.hostsEqual

11.7.2.8.public abstract URLConnection openConnection( URL u ) throwsIOException

See Also

java.net.URLStreamHandler.openConnection

11.7.2.9.public void parseURL( URLStreamHandlerSetter realHandler, URL u, String spec, int start, int limit )

realHandler

必须要对指定URL调用这个对象的setURL方法

 

使用一个URLStreamHandlerSetter对象来分析一个URL,通过这个方法来设置realHandler的值,设置为指定的URLStreamHandlerSetter对象,然后调用parseURL(URL,String,int,int)。

See Also

java.net.URLStreamHandler.parseURL

11.7.2.10.public boolean sameFile( URL u1, URL u2 )

 

调用super.sameFile

See Also

java.net.URLStreamHandler.sameFile

11.7.2.11.protected void setURL( URL u, String proto, String host, int port, String file, String ref )

 

调用realHandler.setURL(URL,String,String,int,String,String)

See Also

java.net.URLStreamHandler.setURL(URL,String,String,int,String,String)

Deprecated

这个方法只适用于使用JDK1.1写的处理器

11.7.2.12.protected void setURL( URL u, String proto, String host, int port, String auth, String user, String path, String query, String ref )

####

 

调用realHandler.setURL(URL,String,String,int,String,String,String,String)

See Also

java.net.URLStreamHandler.setURL(URL,String,String,int,String,

String,String,String)

11.7.2.13.public String toExternalForm( URL u )

 

调用super.toExternalForm

See Also

java.net.URLStreamHandler.toExternalForm

11.7.3.public interface URLConstants

定义了与URLStreamHandlerService[p.265]和java.net.ContentHandler 服务相关的属性键名称。

如果没有特别声明,属性的值为java.lang.String[]。

11.7.3.1.public static final String URLCONTENTMIMETYPE = “url.content.mimetype”

服务属性,表示MIME类型,提供给java.net.ContentHandler。这个属性的值为一个MIME类型的数组。

11.7.3.2.public static final String URLHANDLERPROTOCOL = “url.handler.protocol”

服务属性,表示协议名称,提供给URLStreamHandlerService。

这个属性的值为一个协议名称的数组。

11.7.4.public interface URLStreamHandlerService

服务接口,提供了对java.net.URLStreamHandler的私有方法的公有化。

这个接口和URLStreamHandler类的重要不同点在于没有setURL方法,而且parseURL方法中有一个URLStreamHandlerSetter对象作为第一个参数。实现这个接口的类必须要调用通过parseURL方法获得的URLStreamHandlerSetter对象的setURL方法,而不是调用URLStreamHandler.setURL,这样可以避免抛出安全异常(SecurityException)。

See Also

AbstractURLStreamHandlerService[p.263]

11.7.4.1.public boolean equals( URL u1, URL u2 )

See Also

java.net.URLStreamHandler.equals(URL, URL)

11.7.4.2.public int getDefaultPort( )

See Also

java.net.URLStreamHandler.getDefaultPort

11.7.4.3.public InetAddress getHostAddress( URL u )

See Also

java.net.URLStreamHandler.getHostAddress

11.7.4.4.public int hashCode( URL u )

See Also

java.net.URLStreamHandler.hashCode(URL)

11.7.4.5.public boolean hostsEqual( URL u1, URL u2 )

See Also

java.net.URLStreamHandler.hostsEqual

11.7.4.6.public URLConnection openConnection( URL u ) throws IOException

See Also

java.net.URLStreamHandler.openConnection

11.7.4.7.public void parseURL( URLStreamHandlerSetter realHandler, URL u, String spec, int start, int limit )

realHandler

必须要对指定URL调用这个对象的setURL方法

 

分析一个URL。这个方法通过URLStreamHandler代理来调用,而不是java.net.URLStreamHandler.parseURL,通过传递一个URLStreamHandlerSetter对象来完成。

See Also

java.net.URLStreamHandler.parseURL

11.7.4.8.public boolean sameFile( URL u1, URL u2 )

See Also

java.net.URLStreamHandler.sameFile

11.7.4.9.public String toExternalForm( URL u )

See Also

java.net.URLStreamHandler.toExternalForm

11.7.5.public interface URLStreamHandlerSetter

URLStreamHandlerService类使用这个接口来调用URLStreamHandler代理器的setURL方法。

这个类型的对象传递给URLStreamHandlerService.parseURL[p.265]方法。调用为这个协议而实际注册在java.net.URL之下的URLStreamHandlerSetter对象的setURL方法。

11.7.5.1.public void setURL( URL u, String protocol, String host, int port, String file, String ref )

See Also

java.net.URLStreamHandler.setURL(URL,String,String,int,String,String)

Deprecated

这个方法只适用于使用JDK1.1编写的处理器。

11.7.5.2.public void setURL( URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref )

See Also

java.net.URLStreamHandler.setURL(URL,String,String,int,String,

String,String,String)

11.8.参考

[47]Java

  http://java.sun.com/j2se/1.4/docs/api/java/net/package-summary.html

[48]URLs

  http://www.ietf.org/rfc/rfc1738.txt

[49]MIME Multipurpose Internet Mail Extension

  http://www.nacs.uci.edu/indiv/ehood/MIME/MIME.html

[50]Assigned MIME Media Types

  http://www.iana.org/assignments/media-types

查看评论