|
Buscador
Secciones
Otras zonas
Registro
Foros
Recomendamos
|
Tus programas Java también pueden interactuar con los scripts cgi-bin del lado del servidor. Sólo deben poder escribir a una URL, así proporcionan los datos al servirdor. Tu programa puede hacer esto siguiendo los siguientes pasos.
Hassan Schroeder, un miembro del equipo de Java, escribió un script cgi-bin, llamado backwards, y está disponible en la Web site de, java.sun.com. Puedes utilizar este script para probar el siguiente programa de ejemplo.Si por alguna razón no puedes obtenerlo de nuestra Web; puedes poner el script en cualquier lugar de la red, llamándolo backwards, y prueba el programa localmente. El script de nuestra Web lee una cadena de la entrada estandard, invierte la cadena, y escribe el resultado en la salida estandard. El script requiere una entrada de la siguiente forma: string=string_to_reverse, donde string_to_reverse es la cadena cuyos caracteres van a mostrarse en orden inverso. Aquí tienes un programa de ejemplo que ejecuta el script backwards a través de la red utilizando un URLConnection.
import java.io.*;
import java.net.*;
public class ReverseTest {
public static void main(String[] args) {
try {
if (args.length != 1) {
System.err.println("Usage: java ReverseTest string_to_reverse");
System.exit(1);
}
String stringToReverse = URLEncoder.encode(args[0]);
URL url = new URL("http://java.sun.com/cgi-bin/backwards");
URLConnection connection = url.openConnection();
PrintStream outStream = new PrintStream(connection.getOutputStream());
outStream.println("string=" + stringToReverse);
outStream.close();
DataInputStream inStream = new DataInputStream(connection.getInputStream());
String inputLine;
while ((inputLine = inStream.readLine()) != null) {
System.out.println(inputLine);
}
inStream.close();
} catch (MalformedURLException me) {
System.err.println("MalformedURLException: " + me);
} catch (IOException ioe) {
System.err.println("IOException: " + ioe);
}
}
}
Examinemos el programa y veamos como trabaja. Primero, el programa procesa los argumentos de la línea de comandos.
if (args.length != 1) {
System.err.println("Usage: java ReverseTest string_to_reverse");
System.exit(1);
}
String stringToReverse = URLEncoder.encode(args[0]);
Estas líneas aseguran que el usuario proporciona uno y sólo un argumento de la línea de comandos del programa y lo codifica. El argumento de la línea de comandos es la cadena a invertir por el script cgi-bin backwards. El argumento de la línea de comandos podría tener espacios u otros caractetes no alfanuméricos. Estos caracteres deben ser codificados porque podrían suceder varios procesos en la cadena en el lado del servidor. Esto se consigue mediante la clase URLEncoder. Luego el programa crea el objeto URL -- la URL para el script backwards en java.sun.com.
URL url = new URL("http://java.sun.com/cgi-bin/backwards");
El programa crea una URLConnection y abre un stream de salida sobre esa conexión. El stream de salida está filtrado a través de un PrintStream. URLConnection connection = url.openConnection(); PrintStream outStream = new PrintStream(connection.getOutputStream()); La segunda línea anterior llama al método getOutputStream() sobre la conexión. Si no URL no soporta salida, este método lanza una UnknownServiceException. Si la URL soporta salida, este método devuelve un stream de salida que está conectado al stream de entrada estandard de la URL en el lado del servidor -- la salida del cliente es la entrada del servidor. Luego, el programa escribe la información requerida al stream de salida y cierra el stream.
outStream.println("string=" + stringToReverse);
outStream.close();
Esta línea escribe en el canal de salida utilizando el método println(). Como puedes ver, escribir datos a una URL es tan sencillo como escribir datos en un stream. Los datos escritos en el stream de salida en el lado del cliente son la entrada para el script backwards en el lado del servidor. El programa ReverseTest construye la entrada en la forma requirida por el script mediante la concatenación string= para codificar la cadena. Frecuentemente, como en este ejemplo, cuando escribe en una URL está pasando información al script cgi-bin que lee la información que usted escribe, realiza alguna acción y luego envía la información de vuelta mediante la misma URL. Por lo que querrás leer desde la URL después de haber escrito en ella. El programa ReverseTest los hace de esta forma.
DataInputStream inStream = new DataInputStream(connection.getInputStream());
String inputLine;
while (null != (inputLine = inStream.readLine())) {
System.out.println(inputLine);
}
inStream.close();
Cuando ejecutes el programa ReverseTest utilizando Invierteme como argumento, deberías ver esta salida. Invierteme reversed is. emetreivnI
|
| Utilidades
Patrocinados |
Copyright © 1999-2007
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados