Java y web

De ChuWiki

Java y Web[editar]

Para hacer programas java accesibles desde navegador, tenemos varias posibilidades. De más sencilla a compleja son:


Applets[editar]

Un Applet es una clase java compilada. En una página html podemos poner que incluya esta clase compilada y veremos en el navegador un pequeño rectángulo en el que se ejecuta el código de dicho Applet.

El código del Applet se ejecuta en el navegador, en el ordenador del visitante de la página web. Por ello es necesario que el usuario tenga java instalado. Por otro lado, el Applet tiene los permisos muy restringidos, de forma que no puede acceder ni grabar en disco duro, acceder a la impresora, etc, ya que un programador malintencionado podría hacer un Applet que haga cualquier cosa en el ordenador del usuario. Para que un Applet tenga más permisos, es necesario firmar el applet, de forma que al usuuario se le enseñará quién ha hecho el Applet y se le preguntará si se debe dejar al Applet acceder o no a los recursos de su ordenador.

Los Applets sin firmar, sin embargo, sí pueden conectarse con el servidor donde están hospedados y acceder allí a bases de datos u otros recursos.

Esto los hace adecuados para pequeños programas en los que se requiera mucha interactividad con el usuario y no se requiera guardar ni consultar datos en el ordenador del cliente. Por ejemplo, juegos o chats.


JSP[editar]

Una página JSP es igual que una página HTML, pero lleva código fuente java dentro.

Cuando un navegador pide al servidor una página jsp, el servidor se encarga de ejecutar el código java embebido. La salida de dicho código java formará parte de la página web que se muestra en el servidor.

Al ejecutarse el código java en el servidor, este código sí tiene acceso al disco del servidor, sus bases de datos y demás. El navegador no necesita tener ningún plug-in instalado ni nada parecido, puesto que lo que recibe al pedir una página jsp es igual que una página html normal. Sin embargo, el servidor sí necesita ser un servidor adecuado para entender y poder ejecutar páginas JSP, como Apache Tomcat.

Las páginas jsp no son demasiado interactivas con el usuario, ya que necesitan que con cada acción del usuario se recargue en el navegador una página jsp nueva.

Este tipo de aplicaciones son adecuadas cuando no se requiere mucha interactividad con el usuario pero, por ejemplo, si con una base de datos centralizada en el servidor. Por ejemplo, foros, gestión de almacenes, ver catálogos de productos, carritos de la compra, etc.

Por supuesto, usando código javascript y cosas como AJAX, se podría dar interactividad a una aplicación hecha con jsp.


J2EE[editar]

J2EE es el nivel más complejo. Necesitamos un servidor especial que admita J2EE, como JBoss o Glassfish. Para conectarnos a él podemos hacerlo desde el navegador con páginas jsp o bien desde una aplicación java independiente.

J2EE, a nivel del que navega no aporta nada especial. J2EE hace que el programador de la página/aplcacion web se desentienda de muchas cosas como accesos a bases de datos, sincronizaciones entre objetos, etc, etc.

Otra ventaja fundamental que aporta J2EE es que es bastante independiente del número ordenadores servidor disponibles. Si nuestra aplicacion web tiene pocas visitas, puede correr en un solo ordenador. Si de repente se dispara el número de visitas, podemos poner a trabajar varios ordenadores en paralelo y no necesitamos en absoluto reprogramar la aplicación. Unicamente configuramos el servidor de J2EE para que corra en varios ordenadores en paralelo.

El despliegue necesario para una aplcación J2EE es bastante complejo, por lo que esta tecnología está bien para aplicaciones muy complejas en las que sacamos provecho de despreocuparnos de temas comunicaciones, sincronizaciones, etc. O bien para aplicaiones web que tiene previsto incrementar brutalmente el número de clientes.