Класс ContentHandler
- java.lang.Object
-
- java.net.ContentHandler
public abstract class ContentHandler extends Object
Абстрактный класс ContentHandler является суперклассом для всех классов, которые считывают объект из Object по URLConnection.
Приложение обычно не вызывает метод getContent в этом классе напрямую. Вместо этого приложение вызывает метод getContent в классе URL или в URLConnection. Фабрика обработчика контента приложения (экземпляр класса, реализующего интерфейс ContentHandlerFactory созданный вызовом setContentHandlerFactory) вызывается с String, содержащим MIME-тип получаемого объекта по сокету. Фабрика возвращает экземпляр подкласса ContentHandler, и его метод getContent вызывается для создания объекта.
Если обработчик контента не был найден, URLConnection будет искать обработчик контента в настраиваемом набором мест. Пользователи могут определить набор префиксов классов, разделённых вертикальной чертой, для поиска, определив свойство URLConnection.contentPathProp. Имя класса должно быть в формате:
{префикс-пакета}.{главная_часть}.{второстепенная_часть}Если пользовательский обработчик контента не найден, система пытается загрузить обработчик типа контента из одного из встроенных обработчиков, если он существует.где {главная_часть}.{второстепенная_часть} формируется путём взятия строки типа контента, замены всех символов косой черты на
period('.') и всех других не буквенно-цифровых символов на знак нижнего подчёркивания '_'. Буквенно-цифровые символы - это 26 прописных ASCII букв 'A' по 'Z', 26 строчных ASCII букв 'a' по 'z', и 10 ASCII цифр '0' по '9'.Пример: YoyoDyne.experimental.text.plain
Если загрузка класса обработчика контента будет выполнена загрузчиком классов, который находится вне цепочки делегирования вызывающей стороны, JVM потребует разрешения RuntimePermission "getClassLoader".
- Since:
- 1.0
- See Also:
-
getContent(java.net.URLConnection),ContentHandlerFactory,URL.getContent(),URLConnection,URLConnection.getContent(),URLConnection.setContentHandlerFactory(java.net.ContentHandlerFactory)
Конструкторы
| Конструктор | Описание |
|---|---|
ContentHandler() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Object |
getContent(URLConnection urlc) |
Этот метод считывает поток соединения URL и создаёт объект из него, начиная с начала представления объекта. |
Object |
getContent(URLConnection urlc,
Class[] classes) |
Этот метод считывает поток соединения URL и создаёт объект, соответствующий одному из указанных типов, начиная с начала представления объекта. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
ContentHandler
public ContentHandler()
Методы
getContent
public abstract Object getContent(URLConnection urlc)
throws IOException
Этот метод считывает поток соединения URL и создаёт объект из него, начиная с начала представления объекта.
- Parameters:
-
urlc- соединение URL. - Returns:
- объект, считанный обработчиком
ContentHandler. - Throws:
-
IOException- если при чтении объекта произошла ошибка ввода/вывода.
getContent
public Object getContent(URLConnection urlc,
Class[] classes)
throws IOException
Этот метод считывает поток соединения URL и создаёт объект, соответствующий одному из указанных типов, начиная с начала представления объекта. Реализация по умолчанию этого метода должна вызвать getContent(URLConnection) и проверить возвращаемый тип на соответствие предложенным типам.
- Parameters:
-
urlc- соединение URL. -
classes- массив запрашиваемых типов - Returns:
- объект, считанный обработчиком
ContentHandler, который соответствует первому из предложенных типов, илиnull, если ни один из запрошенных типов не поддерживается. - Throws:
-
IOException- если при чтении объекта произошла ошибка ввода/вывода. - Since:
- 1.3
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/ContentHandler.html