martes, 19 de octubre de 2010

Ejemplos de Servlet

Para comenzar, escribiremos un ejemplo sencillo que nos va a servir para entender la forma básica de un servlet. El ejemplo consiste en una forma HTML en la que existirá un campo de entrada, con los correspondientes botones Submit y Reset típicos de cualquier formulario de entrada de datos.

A oprimir sobre el botón Submit se producirá la ejecución del Servlet en el servidor, que procesará la información recibida, y mostrará como resultado una página HTML con el texto introducido con anterioridad.

Código HTML

<html>
<head>
<title>Ejemplo de un Servlet simple</title>
</head>
<body>
<form action=http://servidor:8080/servlet/ServletSimple method=POST>
<BR>
<BR>Introduzca un texto en el cuadro y oprima el botón "Aceptar"
<BR>
<input type=text name=TEXTO>
<p>
<input type=submit value=Aceptar><input type=reset value=Limpiar>
</form>
</body>
</html>


En el código HTML necesario para implementar el ejemplo destacan dos partes. En primer lugar la cabecera del form, que indica la acción a desencadenar en el servidor al pulsar el botón de Submit, y en segundo lugar la parte en que se define el form propiamente. El archivo que contiene la página HTML lo llamaremos ServletSmiple.htm.

Código del Servlet

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletSimple extends HttpServlet
{
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream salida = res.getOutputStream();
res.setContentType("text/html");
String cadena = req.getParameter("TEXTO");
salida.println ("<p>Datos capturados : "+ cadena + "</p>");
}
}



lunes, 18 de octubre de 2010

Tomcat


Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems.

Tomcat es un servidor web con soporte de servlets y JSPs. Tomcat no es un servidor de aplicaciones, como JBoss o JOnAS. Incluye el compilador Jasper,
   
que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache.

Tomcat puede funcionar como servidor web por sí mismo. En sus inicios existió la percepción de que el uso de Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos mínimos de velocidad y gestión de transacciones. Hoy en día ya no existe esa percepción y Tomcat es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad.

Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual Java.

Para Instalarlo.
sudo apt-get install tomcat6
Tomcat 6 porque es la version mas estable ya que la 7 aun son beta release

FUENTE
http://es.wikipedia.org/wiki/Tomcat

JSP - Servlet

JSP

JavaServer Pages (JSP) es una tecnología Java que permite generar contenido dinámico para web, en forma de documentos HTML, XML o de otro tipo.

Esta tecnología es un desarrollo de la compañía Sun Microsystems. La Especificación JSP fue la primera que se liberó y en la actualidad está disponible la Especificación JSP.

Las JSP's permiten la utilización de código Java mediante scripts. Además, es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilización de Bibliotecas de Etiquetas (TagLibs o Tag Libraries) externas e incluso personalizadas.

Arquitectura.

JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por ello que una página JSP puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versión de la especificación de JSP está fuertemente vinculada a una versión en particular de la especificación de servlets.

El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones interpreta el código contenido en la página JSP para construir el código Java del servlet a generar. Este servlet será el que genere el documento (típicamente HTML) que se presentará en la pantalla del Navegador del usuario.

JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador)

Es posible enriquecer el lenguaje de etiquetas utilizado por JSP. Para ello debemos extender la capa de alto nivel JSP mediante la implementación de Bibliotecas de Etiquetas (Tags Libraries). Un ejemplo de estas bibliotecas son las propocionadas por Sun bajo la denominación de JSTL o las distribuidas por Apache junto con el Framework de Struts.

TagLibs -> JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador)

El rendimiento de una página JSP es el mismo que tendría el servidor equivalente, ya que el código es compilado como cualquier otra clase Java. A su vez, la máquina virtual compilará dinámicamente a código de máquina las partes de la aplicación que lo requieran. Esto hace que JSP tenga un buen desempeño y sea más eficiente que otras tecnologías web que ejecutan el código de una manera puramente interpretada.

La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera prolija. Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP.

Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que la aplicación termine siendo ejecutada en otra.

Los servlets y Java Server Pages (JSPs) son dos métodos de creación de páginas web dinámicas en servidor usando el lenguaje Java. En ese sentido son similares a otros métodos o lenguajes tales como el PHP, ASP o los CGIs, programas que generan páginas web en el servidor. Sin embargo, se diferencian de ellos en otras cosas.

JAVA Servlet.

Los servlets, son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad.

La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor.

El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.


FUENTES
http://es.wikipedia.org/wiki/Java_Servlet
http://es.wikipedia.org/wiki/JavaServer_Pages
 

miércoles, 13 de octubre de 2010

Proyecto de Medio Curso...

Bueno mi proyecto de medio curso consiste en una pagina web para subir archivos y descargar, estilo rapidshare.com o speedyshare.com, yo nombre a mi proyecto WeShare.com.

Archivos generados para el proyecto:
  • Upload.py: CGI en python.
  • HTML: pagina web.
  • CSS: archivos para el diseño de la pagina web.

martes, 21 de septiembre de 2010

pruebas

##############################
# Cuidado con los espacios xd
##############################
#!/usr/bin/python

import cgi
def main():
print "Content-type: text/html\n"
print "<html><head><title>Formulario</title></head><body><p>\n"

entrada = cgi.FieldStorage()
if entrada.has_key("nombre") \
and entrada["nombre"].value != "":
print "Fail, %s.<br><a href="%s.html">" \
% entrada["nombre"].value
else:
print "Define por favor tu nombre \
para poder acceder el sistema.\n"
print "</p></body></html>"
main()

elrichicorex=open("%s.html", "w")
elrichicorex.write("<html>\n")
elrichicorex.write("H")
elrichicorex.write("</html>\n")
escribe.close()

martes, 14 de septiembre de 2010

Instalar Apache

 Para poder hostear una pagina web es necesario tener el Apache Instalado

En Debian/Ubuntu tecleamos desde la terminal:

sudo apt-get install apache2


Para comprobar que se instalo correctamente el Apache abrimos el navegador y entramos a http://localhost/ 





Con el apache se van a crear unas librerias para el cgi-bin y para lo que es el HTML. 

  1. cgi-bin  en esta carpeta vamos a guardar los archivos en Python.


    ubuntu@ubuntu:~$ cd /usr/lib/cgi-bin/
  2. www y aqui se van a guardar los archivos HTML.
    ubuntu@ubuntu:~$ cd /var/www/

Para editar el HTML teclearemos:  
ubuntu@ubuntu:~$ cd /var/www/

ubuntu@ubuntu:/var/www$ emacs NOMBRE.html &

Para editar el archivo  .py:
ubuntu@ubuntu:~$ cd /usr/lib/cgi-bin 
ubuntu@ubuntu:/usr/lib/cgi-bin$ emacs NOMBRE.py & 

Para hacer ejecutable el archivo  .py 
ubuntu@ubuntu:/usr/lib/cgi-bin$ chmod a+x NOMBRE.py 

Para Windows:


Xampp

Guia de Instalación  que hice para un maestro.
 
 


Conexión SSH

Esta entrada consta de una breve explicacion de como utilizar la terminal para acceder a otra computadora.

Bueno lo primero es abrir la Terminal y vamos a teclea lo siguiente:


ubuntu@ubuntu:~$ ssh Usuario@148.xxx.xxx.xx
donde ssh nos sirver para poder conectarnos al servidor.

al teclear lo primero nos perdira un password para conectarnos por razones de seguridad no se va a ver lo que estas tecleando.
Usuario@148.xxx.xx.xx's password: 

Si te aparece esto quiere decir que estas conectado sin ningun problema.
Linux ubuntu 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux
Ubuntu 10.04 LTS


Welcome to Ubuntu!
 
* Documentation:  https://help.ubuntu.com/


Realmente podras utilizar la terminal para acceder y editar los archivos a los que tengas los permisos.

Los siguientes ejemplos son los que utilizamos en Programacion web. Para utilizar la terminal como un control remoto a una computadora que funciona como servidor.

Ejemplos de directorios.
Para acceder al directerio cgi-bin tecleamos: 
usuario@ubuntu:~$ cd /usr/lib/cgi-bin/ 


Para poder ver los HTMLs en la carpeta:
ubuntu@ubuntu:~$ cd /var/www/

Si no conoces donde esta la ubicacion de la carpeta puedes teclear en la terminal ls y asi podras ver que archivos tiene la carpeta en la que estas.

Subir o descargar archivos. 

PRIMERO NESESITAMOS ABRIR OTRA TERMINAL.

Tomaremos de ejemplo unos archivos en Python que utilizo se CGI. 
  
para poder descagar un archivo tenemos que teclear esto:
ubuntu@ubuntu:~/Desktop$ scp usuario@148.xxx.xx.xx:/usr/lib/cgi-bin/Nombre.py

y para subirlo
ubuntu@ubuntu:~/Desktop$ scp Nombre.py usuario@148.xxx.xx.xx:/usr/lib/cgi-bin/


Editar permisos de los archivos.
 
Tomamos de ejemplo el archivo.py y para que sea ejecutable es nesesario teclear:

usuario@ubuntu:/usr/lib/cgi-bin$ chmod a+x nombre.py

Para saber si se cambiaron los permisos es bueno usar  ls o ls -la ya que segun el color te muestra los permisos que tiene y si agregas -la es dice que permisos tiene cada archivo.

Llamar un CGI desde un HTML.

 Es nesesario Añadir al archivo HTML la siguiente linea para que se conecte con el programa de Python
 <form name="acceso" action="http://localhost/cgi-bin/NOMBRE.py" method="get">
Formulario.  
</form>


La idea de esta entrada es para manejar paginas web, pero es muy util si aun estas aprendiendo comandos basicos para usar la Terminal. 
 

Saludos :]