Applet Servlet
Comunicacion Applet-Servlet y tunneling
Todos sabemos como hacer una aplicación web en los que el usuario manda un formulario HTML y el servidor lo procesa por medio de Servlets o páginas JSP (sí!, ya sé que son "lo mismo"), pero quizás alguno ya haya tenido el problema de que eso no es siempre suficiente, no es lo suficentemente interactivo paraalgunas aplicaciones que requieren más dinamismo y funcionalidad en el lado del cliente, como por ejemplo un chat u otro tipo de aplicaciones, digámoslo así, distribuídas. Si hablamos de aplicaciones distribuídas con clientes "ricos" (en el sentido de la funcionalidad) todos pensamos en RMI o quizás EJB, en comunicar una aplicación Java con el servidor por medio del API que ofrece Java para procesodistribuído, que aunque sea disfrazado de EJB (con mucha funcionalidad añadida), es RMI. Pero, ¿qué ocurre? Que ningún administrador de una red medianamente grande te va a abrir un puerto en su cortafuegos. La gente está demasiado histérica (seguramente con razón) con la seguridad, así que en algunas ocasiones esta solución no es posible. Así que, si necesitamos una interface rica en el lado delcliente y usar el único puerto que los administradores de red suelen dejar "tranquilo" (el de HTTP, normalmente el 80), ¿qué nos queda? Pues sí, APPLETS!. Son "famosos" los applets que ejercen la labor de "menú" de la página web, sin ir más lejos, en un tiempo muy muy lejano, antes de ser la web preciosa que es ahora, javaHispano tuvo uno. Así que ya sabemos que un applet se puede comunicar con unservidor web para hacer peticiones de páginas HTML. Y si podemos mostrar páginas web.... ¿por qué no hacer peticiones a un servlet?. Además, usando un applet evitamos una de las limitaciones de un formulario HTML, que es que solo pueden hacer peticiones a un servidor y a un recurso Web. Desde un applet podremos hacer, con los mismos datos, peticiones a varios servlets distintos de nuestro servidor,que a su vez se podrán comunicar con otros servidores o servlets, de forma que podemos, con una sola peticion, enviar los datos a cientos de sitios El applet puede ser todo lo rico o pobre que necesitemos, manejar toda la información que necesitemos, y realizar todos los cálculos que queramos, exactamente igual que cualquier aplicación Java. Lo único que tenemos que aprender es cómo hacer que elapplet transmita las peticiones al servidor, y por supuesto cómo hacer que recoja las respuestas. Antes de empezar, un aviso. Como es lógico, todas estas operaciones que tratan con conexiones son susceptibles de lanzar excepciones. La mayoria de las líneas de código mostradas aquí deberían ir encerradas en una sentencia try/catch, pero las he omitido todas para no hacerlo más largo de lo necesario.En realidad vosotros tendréis que poner unas cuantas de ellas :-). Aunque se explican mínimante algunos conceptos del protocolo HTTP, como la diferencia de envio de la petición por medio del método GET o POST, se presuponen ciertos conocimientos del protocolo HTTP, conceptos como cabeceras, tipos de documentos, cookies y demás. Aqui no serán explicados, como mucho se indicará como usarlas en Java,y solo del lado del applet, del lado cliente. Dejo para otro/s artículo/s y quizás otra/s persona/s (se aceptan volutarios) las explicación de dichos conceptos y un uso más avanzado y extensivo de las posibilidades que tienen los servlets, ese no es el objetivo de este artículo.
Peticiones a un servlet por medio de GET
1
http://www.javahispano.com
Como sabéis (o deberíais saber siestais metidos en estas cosas), en una petición HTTP por el método GET, la información viaja en la URL, es decir, en la dirección del navegador, algo así como:
http://www.javahispano.com/servlet/MiServlet?param1=valor1¶m2=valor2
Como podéis ver, después de la direccion del recurso, en nuestro caso el servlet "peticion" (http://www.javahispano.com/servlet/MiServlet), ponemos el símbolo "?" y...
Regístrate para leer el documento completo.