Dudas Estudiantes Java de Programación - Risuk90


¿Que es JSP?


JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java. 

Bibliografía: Esta descripción de JSP está extraída de un PDF en inglés muy completo que introduce la tecnología, que se puede encontrar el la página corporativa de Java de Sun Microsystems, en su sección de aprendizaje online. A su vez, dicho manual proviene del portal Java jGuru

Guru: Introduction to JavaServer Pages technology

Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas JSP están compuestas de código HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual

Motor JSP 

El motor de las páginas JSP está basado en los servlets de Java -programas en Java destinados a ejecutarse en el servidor-, aunque el número de desarrolladores que pueden afrontar la programación de JSP es mucho mayor, dado que resulta mucho más sencillo aprender que los servlets. 

En JSP creamos páginas de manera parecida a como se crean en ASP o PHP -otras dos tecnologías de servidor-. Generamos archivos con extensión .jsp que incluyen, dentro de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el servidor. Antes de que sean funcionales los archivos, el motor JSP lleva a cabo una fase de traducción de esa página en un servlet, implementado en un archivo class (Byte codes de Java). Esta fase de traducción se lleva a cabo habitualmente cuando se recibe la primera solicitud de la página .jsp, aunque existe la opción de precompilar en código para evitar ese tiempo de espera la primera vez que un cliente solicita la página. 

Ejemplo de página JSP 


En la imagen siguiente se puede ver un ejemplo extremadamente simple de una página JSP y el esquema de conversión de esa página en un servlet. 

 

Prerequisitos 

Para aprender JSP, aparte de conocer HTML, será necesario comprender y tener algo de experiencia en la programación en Java, que es un lenguaje de programación Orientado a Objetos por completo. Una vez conocida la programación en Java se puede estudiar por encima el sistema de Servlets, lo que nos dará una mejor idea del funcionamiento interno del motor JSP. 

Para aprender Java podemos consultar algunos enlaces del correspondiente directorio de nuestro buscador de enlaces. 

Además, necesitaremos descargar e instalar Tomcat, el contenedor de servlets usado en la referencia oficial de implementación de JSP. Podemos acceder a un ejercicio para aprender a realizar esta instalación, disponible también en la referencia de aprendizaje de la página de Java


Referencias JSP 


Hemos creado una nueva sección en nuestro directorio dedicada por completo a las páginas JSP, que será muy interesante para todo aquel que desee profundizar en el tema.









¿Que es Servlets?


Java Servlets

¿Qué son los servlets?Los Servlets son módulos escritos en Java que se utilizan en un servidor, que puede ser o no ser servidor web, para extender sus capacidades de respuesta a los clientes al utilizar las potencialidades de Java. Los Servlets son para los servidores lo que los applets para los navegadores, aunque los servlets no tienen una interfaz gráfica.

Los servelts pueden ser incluidos en servidores que soporten la API de Servlet (ver servidores). La API no realiza suposiciones sobre el entorno que se utiliza, como tipo de servidor o plataforma, ni del protocolo a utilizar, aunque existe una API especial para HTTP.

Los Servlets son un reemplazo efectivo para los CGI en los servidores que los soporten ya que proporcionan una forma de generar documentos dinámicos utilizando las ventajas de la programación en Java como conexión a alguna base de datos, manejo de peticiones concurrentes, programación distribuida, etc. Por ejemplo, un servlet podría ser responsable de procesar los datos desde un formulario en HTML como registrar la transacción, actualizar una base de datos, contactar algún sistema remoto y retornar un documento dinámico o redirigir a otro servlet u alguna otra cosa.
¿Cómo es un Servlet?Un pequeño servlet de ejemplo es el siguiente:

public class SimpleServlet extends HttpServlet {

// Maneja el método GET de HTPP para 
// construir una sencilla página Web.

public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out;
String title = "Simple Servlet Output";

// primero selecciona el tipo de contenidos y otros campos de cabecera de la respuesta
response.setContentType("text/html");
// Luego escribe los datos de la respuesta
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>" + title + "</H1>");
out.println("<P>This is output from SimpleServlet.");
out.println("</BODY></HTML>");
out.close();
}

}

Primero es necesario señalar que el servlet será del tipo HTTP por lo que se extiende de la clase HttpServlet. Al extender de esta clase es necesario definir el método doGet para responder la petición. Este método recibe los parámetros dados por el cliente a través de la clase HttpServletRequest y encapsula la respuesta que se le dará al cliente a través de la clase HttpServletResponse. El servlet puede retornar al cliente cualquier tipo de información, desde texto plano hasta un ejecutable, por lo que es necesario señalar inicialmente qué tipo de respuesta se dará a través del método setContentType. Luego se obtiene el objeto para poder escribir texto al cliente a través del método getWriter con el cual se puede retornar una página web llamado sucesivamente el método println hasta terminar con close.En negrita se ha resaltado los detalles importantes que son característicos de un Servlet. Este Servlet puede ser puesto en un servidor web ya que utiliza el protocolo HTTP para comunicarse.
Propiedades
[ul][li]Manejo de Sesiones: Se puede hacer seguimiento de usuarios a través de distintos servlets a través de la creación de sesiones.[/li][li]Utilización de Cookies: Las cookies son pequeños datos en texto plano que pueden ser guardados en el cliente. La API de servlets permite un manejo fácil y limpio de ellas.[/li][li]Multi-thread: Los servlets soportan el acceso concurrente de los clientes, aunque hay que tener especial cuidado con las variables compartidas a menos que se utilize la interfaz SingleThreadModel.[/li][li]Programación en Java: Se obtienen las características de multiplataforma o acceso a APIs como JDBC, RMI, etc.[/li][/ul]Para poder entender bien cómo son los servlets y lo que se puede hacer con ellos es necesario conocer de forma general las clases involucradas en la API y sus métodos más importantes









¿Que es SQL?



El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos.

Breve Historia

La historia de SQL (que se pronuncia deletreando en inglés las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales.

En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transfomó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92.

El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él. Desde el punto de vista práctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos.

Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales.









¿Que es HTML?

HTML es el lenguaje que se emplea para el desarrollo de páginas de internet.
Este lenguaje está constituido de elementos que el navegador interpreta y las despliega en la pantalla de acuerdo a su objetivo. Veremos que hay elementos para disponer imágenes sobre una página, hipervínculos que nos permiten dirigirnos a otra página, listas, tablas para tabular datos, etc.
Para poder crear una página HTML se requiere un simple editor de texto (en nuestro caso emplearemos este sitio) y un navegador de internet (IExplorer, FireFox etc.), emplearemos el navegador que en este preciso momento está utilizando (recuerde que usted está viendo en este preciso momento una página HTML con su navegador).
Lo más importante es que en cada concepto desarrolle los ejercicios propuestos y modifique los que se presentan ya resueltos.

Este curso lo que busca es acercar el lenguaje HTML a una persona que nunca antes trabajó con el mismo. No pretende mostrar todas los elementos HTML en forma alfabética.
Como veremos, de cada concepto se presenta una parte teórica, en la que se da una explicación completa, luego se pasa a la sección del ejercicio resuelto donde podemos ver el contenido de la página HTML y cómo la visualiza el navegador. Por último y tal vez la sección más importante de este tutorial es donde se propone que usted haga páginas en forma autónoma (donde realmente podrá darse cuenta si el concepto quedó firme).






¿Que es XML?



El XML (eXtensible Markup Lenguage - Lenguaje extensible de marcas) es un un lenguaje abierto, derivado de SGML, optimizado para su uso en la WWW, y que va a permitirnos describir el sentido o la semántica de los datos. El XML, a diferencia del HTML, separa el contenido de la presentación. XML es un Meta-Lenguaje, que permite la definición de lenguajes concretos de representación de documentos.
Los fundamentos del XML son muy sencillos y en principio,para ir empezando, las únicas herramientas que nos harán falta son:
[ul][li]Un editor para poder escribir los documentos XML, por ejemplo, el notepad en windows y el xemacs en Linux[/li][li]Un procesador o parser XML, por ejemplo, usaremos los parsers que incorporan el Internet Explorer 5 (o superior) o el Mozilla (cualquier versión)[/li][/ul]





¿Que es Struts?

Es un framework que implementa el patrón de arquitectura MVC en Java

Un framework es la extensión de un lenguaje mediante una o más jerarquías de clases que implementan una funcionalidad y que (opcionalmente) pueden ser extendidas. El framework puede involucrar TagLibraries.

El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define la organización independiente del Model (Objetos de Negocio), la View (interfaz con el usuario u otro sistema) y el Controller (controlador del workflow de la aplicación: "si estoy aquí y me piden esto entonces hacer tal cosa, si sale bien mostrar esto y sino lo aquello otro").


¿Cómo funciona esto en aplicaciones Web?


El navegador genera una solicitud que es atendida por el Controller (un Servlet especializado). El mismo se encarga de analizar la solicitud, seguir la configuración que se le ha programado en su XML y llamar al Action correspondiente pasándole los parámetros enviados. El Action instanciará y/o utilizará los objetos de negocio para concretar la tarea. Según el resultado que retorne el Action, el Controller derivará la generación de interfaz a una o más JSPs, las cuales podrán consultar los objetos del Model a fines de realizar su tarea.

¿Para qué sirve?

Evidentemente, como todo framework intenta, simplifica notablemente la implementación de una arquitectura según el patrón MVC. El mismo separa muy bien lo que es la gestión del workflow de la aplicación, del modelo de objetos de negocio y de la generación de interfaz.

El controlador ya se encuentra implementado por Struts, aunque si fuera necesario se puede heredar y ampliar o modificar, y el workflow de la aplicación se puede programar desde un archivo XML Las acciones que se ejecutarán sobre el modelo de objetos de negocio se implementan basándose en clases predefinidas por el framework y siguiendo el patrón Facade. Y la generación de interfaz se soporta mediante un conjunto de Tags predefinidos por Struts cuyo objetivo es evitar el uso de Scriplets (los trozos de código Java entre "<%" y "%>"), lo cual genera ventajas de mantenibilidad y de perfomance (pooling de Tags, caching, etc).

Logísticamente, separa claramente el desarrollo de interfaz del workflow y lógica de negocio permitiendo desarrollar ambas en paralelo o con personal especializado.

También es evidente que potencia la reutilización, soporte de múltiples interfaces de usuario (Html, sHtml, Wml, Desktop applications, etc.) y de múltiples idiomas, localismos, etc.

¿Licencia?

Struts está disponible bajo la licencia "free-to-use-license" de la Apache Software Foundation (ver http://www.apache.org/LICENSE-1.1)

¿Y para qué este manual básico?

Para simplificar el "first touch" y para explicar Struts desde el punto de vista del desarrollo de aplicaciones Web.

No pretende ser un tutorial, una guía del usuario ni un manual de referencia. Ellos ya se han escrito y están disponibles en las direcciones que se mencionan en la sección "¿Dónde encuentro más info?"

¿Dónde encuentro más info?

[ul][li]http://jakarta.apache.org/struts[/li][li]http://jakarta.apache.org/struts/userGuide[/li][li]http://jakarta.apache.org/struts/api/index.html[/li][li]http://jguru.com/faq/Struts[/li][li]http://jguru.com/forums/Struts[/li][li]http://jakarta.apache.org/struts/#Involved[/li][/ul]





¿Que es JavaScript?



[ltr]JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetosbasado en prototiposimperativo, débilmente tipado y dinámico.
Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, en bases de datos locales al navegador... aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.
JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes.
Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM).
Tradicionalmente se venía utilizando en páginas web HTML para realizar operaciones y únicamente en el marco de la aplicación cliente, sin acceso a funciones del servidor. JavaScript se interpreta en el agente de usuario, al mismo tiempo que las sentencias van descargándose junto con el código HTML.
Una cuarta edición está en desarrollo e incluirá nuevas características tales como paquetes, espacio de nombres y definición explícita de clases.


Proximos Temas a seguir

[/ltr]

¿Que es MySQL?

[ltr]
¿Que es Hibernate?

[/ltr]
[ltr]¿Que es Spring?[/ltr]

[ltr]¿Que es Java?(Para quien no lo conocen)[/ltr]

[ltr]¿que es ASP.Net?[/ltr]

[ltr]¿Que es tomcat?[/ltr]

[ltr]¿Que es CSS?[/ltr]

¿Que es Apache?

[ltr]¿Que es PHP?[/ltr]
Dudas Estudiantes Java de Programación - Risuk90
55 Puntos Score: 9.2/10
Visitas: 1488 Favoritos: 19
Ver los usuarios que votaron...
9 Comentarios Dudas Estudiantes Java de Programación - Risuk90
Muy bueno muchas gracias  
Cita Cerberus1: Mostrar
si quieres puedes seguirme, estare haciendo una segunda en el que tratare  Spring,Java,ASP.Net, tomcat,CSS,Apache,PHP..
weno stoy iniciando en todo lo q es java asi q me bajo todo de algo me servira gracias
Cita DEOXI: Mostrar
esto es solo un vistazo general, pero te ayudara a relacionar diferentes conceptos y as?
Esto si es oro puro amigo...el ver tanto crap en identi ha valido la pena para encontrarse con esta perla...

Estar?
Gracias de verdad por aportar informaci?
Gracias por tu aporte! Recien arranco con esto de java, y la verdad tengo muchos concepto todos separados!, espero con ansias lo de Hibernate y Spring. A ver que tal pinta! Un abrazo
Exelente aporte!!!
Dejo el link de la segunda parte ---> Entrar
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!