Module java.base
Package java.net

Class ContentHandler

java.lang.Object
java.net.ContentHandler

public abstract class ContentHandler extends Object
抽象类ContentHandler是所有从URLConnection读取Object的类的超类。

应用程序通常不直接调用此类中的getContent方法。相反,应用程序调用URL类或URLConnection中的getContent方法。应用程序的内容处理程序工厂(实现接口ContentHandlerFactory的类的实例,通过调用setContentHandlerFactory设置)将使用给定的String调用,该String给出了在套接字上接收的对象的MIME类型。工厂返回ContentHandler的子类的实例,并调用其getContent方法来创建对象。

如果找不到内容处理程序,URLConnection将在用户可定义的一组位置中查找内容处理程序。用户可以通过定义java.content.handler.pkgs系统属性来定义要搜索的一组以竖线分隔的类前缀。类名必须采用以下形式:

{package-prefix}.{major}.{minor}

其中{major}.{minor}是通过取内容类型字符串,用period('.')替换所有斜杠字符,用下划线字符'_'替换所有其他非字母数字字符而形成的。字母数字字符具体指26个大写ASCII字母'A'到'Z',26个小写ASCII字母'a'到'z'和10个ASCII数字'0'到'9'。

例如 YoyoDyne.experimental.text.plain

如果找不到用户定义的内容处理程序,则系统将尝试从内置处理程序中加载特定的content-type处理程序。

如果内容处理程序类的加载将由调用者的委托链之外的类加载器执行,则JVM将需要RuntimePermission "getClassLoader"。

自版本:
1.0
参见:
  • Constructor Details

    • ContentHandler

      public ContentHandler()
      子类调用的构造函数。
  • Method Details

    • getContent

      public abstract Object getContent(URLConnection urlc) throws IOException
      给定位于对象表示的开始处的URL连接流,此方法读取该流并从中创建一个对象。
      参数:
      urlc - 一个URL连接。
      返回:
      ContentHandler读取的对象。
      抛出:
      IOException - 在读取对象时发生I/O错误。
    • getContent

      public Object getContent(URLConnection urlc, Class[] classes) throws IOException
      给定位于对象表示的开始处的URL连接流,此方法读取该流并创建一个与指定类型之一匹配的对象。此方法的默认实现应调用getContent(URLConnection)并筛选建议类型的匹配项。
      参数:
      urlc - 一个URL连接。
      classes - 请求的类型数组
      返回:
      ContentHandler读取的对象,是建议类型的第一个匹配项,如果没有请求的类型被支持,则返回null
      抛出:
      IOException - 在读取对象时发生I/O错误。
      自版本:
      1.3