Manipuladores de Protocolo

Um manipulador de protocolo é uma classe em Java escrita, compilada e colocada em uma parte particular da estrutura de diretórios do browser. Um programador cria um manipulador de protocolo para fornecer uma nova forma de se interpretar conteúdo. Um novo protocolo faz com que seja possível se ter uma nova palavra chave no começo de uma URL(Universal Resource Location). O exemplo abaixo mostra como criar um protocolo chamado RUN, que roda uma applet.

Primeiramente escreve-se o manipulador de protocolo em Java e coloca-o em um arquivo denominado Handler.Java.


package net.www.protocol.run;
import java.io.*;
import java.net.www.html.*;
/**
*
* Dada uma URL da forma
* run:classname
* roda uma classe compilada em Java
* A classe deve estar no CLASSPATH 
* que é uma variável do sistema.
**/

class Handler extends URLStreamHandler {
	public synchronized InputStream openStream(URL u){
		PipedOutputStream ps = new PipedOutputStream();
		PipedInputStream is = new PipedInputStream(ps);
		PrintStream os = new PrintStream(ps);

		String className = u.file;
		String args;
		className = className.substring(className.lastIndexOf("/")+1);
		if(className.indexOf("?") !=0){
			className.replace(':', ' ');
			}
		u.setType(URL.content_html);
		os.println("");
		os.print("\n\n");
		os.close();
		return is;
	}
}

- Este manipulador de protocolo de exemplo é uma subclasse de URLStreamHandler, portanto sua declaração é:

	class Handler extends URLStreamHandler
A classe URLStreamHandler é parte da Application Programming Interface(API), o conjunto de classes que os programadores podem utilizar para escrever aplicações em Java e applets.

- Em seguida deve-se compilar o manipulador de protocolos e colocar a classe resultante da compilação em um subdiretório net/www/protocol abaixo do subdiretório classes.

- Com isto o browser reconhece URLs da forma:

	run:nome-da-applet
onde nome-da-applet é o nome de uma applet no diretório de arquivos de classe definido pela variável de ambiente definida por CLASSPATH.