Java Server Pages (JSP) es una tecnología que permite crear páginas web dinámicas usando Java como lenguaje de programación. JSP combina la potencia de Java en el servidor con la flexibilidad de HTML en el navegador. El código JSP se compila en código Java de servlets que generan páginas HTML dinámicas en respuesta a solicitudes del cliente.
2. Java Server Pages
Es una tecnología que ayuda a los desarrolladores de
software a crear páginas web dinámicas basadas en
HTML, XML, entre otros tipos de documentos. JSP es
similar a PHP, pero usa el lenguaje de programación
Java.
Para desplegar y correr JavaServer Pages, se requiere un
servidor web compatible con contenedores servlet como
Apache Tomcat o Jetty.
3. ¿Que es?
El rendimiento de una página JSP es el mismo que tendría el servlet
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.
4. ¿Qué es?
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.
Para empezar, los JSPs y servlets se ejecutan en una máquina virtual Java, lo
cual permite que, en principio, se puedan usar en cualquier tipo de ordenador,
siempre que exista una máquina virtual Java para él. Cada servlet (o JSP, a
partir de ahora lo usaremos de forma indistinta) se ejecuta en su propio hilo, es
decir, en su propio contexto; pero no se comienza a ejecutar cada vez que
recibe una petición, sino que persiste de una petición a la siguiente, de forma
que no se pierde tiempo en invocarlo (cargar programa + intérprete). Su
persistencia le permite también hacer una serie de cosas de forma más
eficiente: conexión a bases de datos y manejo de sesiones, por ejemplo.
Las JSPs son en realidad una forma alternativa de crear servlets ya que el
código JSP se traduce a código de servlet Java la primera vez que se le invoca y
en adelante es el código del nuevo servlet el que se ejecuta produciendo como
salida el código HTML que compone la página web de respuesta.
5. Características
Conjunta el poder de Java en el servidor y la flexibilidad de
HTML en el browser.
No sólo se puede utilizar HTML, sino también XML o WML.
Hace más fácil reusar componentes con JavaBeans los cuales
realizan tareas más especificas.
Su función es saber como procesar una solicitud para crear una
respuesta.
Soporta contenido dinámico que refleja las condiciones del mundo
real.
Es más rápido y fácil crear aplicaciones de web
Capaz de instanciar cualquier clase de Java
6. Ejemplo de documento JSP
<%@ page errorPage="myerror.jsp" %> <%@ page
import="com.foo.bar" %> <html> <head> <%! int
serverInstanceVariable = 1;%> ... <% int
localStackBasedVariable = 1; %>
7. Ejemplo de una compilación o salida"
JSP:
package jsp_servlet;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import com.foo.bar; //importado como resultado de <%@ page
import="com.foo.bar" %>
import ...
class _myservlet implements javax.servlet.Servlet,
javax.servlet.jsp.HttpJspPage { //insertado como //resultado de <%! int
serverInstanceVariable = 1;%> int serverInstanceVariable = 1;
...
8. Ejemplo de una compilación o salida"
JSP:
public void _jspService(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response ) throws
javax.servlet.ServletException, java.io.IOException
{
javax.servlet.ServletConfig config = ...;//obtener la
configuración del servlet Object page = this; PageContext
pageContext = ...;//obtener el contexto de la pagina para esta
petición javax.servlet.jsp.JspWriter out =
pageContext.getOut(); HttpSession session =
request.getSession( true );
…
10. VENTAJAS
Contra los Servlets, JSP no nos da nada que no
pudiéramos hacer con un servlet, pero no es mucho más
conveniente escribir y modificar HTML normal que tener
un gran número de sentencias "print" que generen
HTML. Además, es posible agregar código Java una
página que fue anteriormente diseñada con puro HTML.
11. Desventajas
No posee una interfaz "rica", ya que la interfaz web es
limitada.
La codificación de interfaces elaboradas lleva muchas
lineas de código, y la mayoria debe hacerse usando
scripts (javascript)
La carga de la interfaz es mas lenta que la de una
aplicación de escritorio
La mayor parte de la lógica de la aplicación se ejecuta
en el servidor, por lo que se corre el riesgo de
sobrecargar de trabajo al mismo
La aplicación no está disponible si ocurre algun problema
con el servidor o con la conexión de red