Volverte un Administrador de Servidores es una gran carrera profesional.
Hace un tiempo hice los artículos Introducción a Java para novatos y Instalar Eclipse y Tomcat para desarrollo con Java. Pues bien, ahora continúo esas partes.
En el ejemplo anterior apenas hicimos el "Hola mundo". En este caso vamos ampliar el tema de crear sitios con JSP. El JSP (Java Server Pages) es el lenguaje de Java y sus derivados para crear sitios dinámicos. Competencia directa con PHP y ASP. El JSP es, entonces, ni más ni menos que HTML mezclado con código Java (para definirlo rápidamente). Me voy a pasar por alto, por ahora, el tema de usar servlets pelados ya que esto es mas divertido .
Preparando el proyecto
Hay que comenzar un nuevo proyecto Tomcat en Eclipse, o Java Web/Web Application en NetBeans. Nombrarlo MiPrimerJSP.
En el siguiente paso vamos a crear una clase Java común y corriente muy sencilla para probar. Primero creamos un package llamado Objetos, clic con botón derecho del ratón sobre Web-inf en Eclipse o Source Packages en NetBeans y elegir New -->> Package (Java Package en Netbeans). Ahora clic con boton derecho del ratón en dicho package, elegir New -->> Class (Java Class en NetBeans) común y la nombran Persona. Escribimos la clase:
Código :
package Objetos; public class Persona { private String Nombre; private String Ciudad; private int id; public String getCiudad() { return Ciudad; } public void setCiudad(String Ciudad) { this.Ciudad = Ciudad; } public String getNombre() { return Nombre; } public void setNombre(String Nombre) { this.Nombre = Nombre; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
NetBeans te crea por defecto el index.jsp. En Eclipse hay que crearlo a mano, en la carpeta Web-inf; pueden hacerlo a desde la carpeta del S.O. o bien New -->> File sobre dicha carpeta y nombrarlo index.jsp.
danyrik :
Por lo general en las últimas versiones del Eclipse/Tomcat/NetBeans viene todo bastante cocinado el tema de las librerías y las configuraciones para crear un sitio básico. Si te funcionó el tutorial anterior, éste te tiene que funcionar con lo mismo. Aún así, es un tema mucho más complejo que en otro artículo explicaré.
Escribiendo la página JSP
Lo primero que hay que indicarle a la página son una serie de parámetros o directivas, como por ejemplo qué clases importar:
Código :
<%@ page contentType="text/html; charset=utf-8" import="Objetos.Persona" errorPage=""%>
contentType: especifica el tipo de salida, en este caso text/html.
import: las clases o paquetes que vamos a utilizar en la página. Se puede separar por coma o usando varias veces import. En este caso Objetos.Persona (también pueden ser clases del entorno claro, como java.sql).
erroPage: simplemente la página de error en caso de que ocurra uno y no sea tomado por las excepsiones del código.
Hay otros parámetros más pero por ahora no viene al caso.
Abajo de esa primera línea (pueden copiarla tal cual), creen una página simple como:
Código :
<html> <head> <title>Mi primer sitio JSP</title> </head> <body> <h1>Hola mundo</h1> </body> </html>
Escribiendo código java en la página
Hay varias formas de manipular la información de las clases en el código HTML, y yendo más lejos si se utilizan los frameworks cambia de nuevo según el mismo. Ahora vamos a ver dos formas básicas, código java pelado y los javaBeans. Se utilizan tags especiales para separlo del HTML común.
Para código java pelado se utiliza:
<%= expresión %>: para mostrar datos, es decir expresiones evaluadas para la salida (por ejemplo: persona.getNombre() en una tabla HTML).
<% código %>: algoritmos y cálculos comunes, tomar una variable, manipular clases (código java común y corriente). No se puede mostrar algo en el navegador, para eso de utiliza el tag anterior.
<%! código %>: se insertan en el cuerpo de la clase del servlet, fuera de cualquier método existente.
Por ahora con los los primeros tags nos alcanza.
Con esto ya se puede practicar algo, vamos a ver un ejemplo, tan fácil que casi no hacen falta comentarios:
Código :
<%@page contentType="text/html; charset=utf-8" import="Objetos.Persona"%> <html> <head> <title>Mi primer sitio JSP</title> </head> <body> <% Persona persona = new Persona(); persona.setNombre("Daniel"); persona.setCiudad("Santa Rosa"); persona.setId(12); %> <h1>Datos de la persona:</h1> <p>Nombre: <%=persona.getNombre()%></p> <p>Ciudad: <%=persona.getCiudad()%></p> <p>Numero de identificacion: <%=persona.getId()%></p> </body> </html>
Abajo del cuerpo utilizo el tag <% %> para setearle los datos al objeto, y en el párrafo muestro esos datos con la etiqueta <%= %>.
Para tomar un parámetro que viene por POST o GET, pueden tomarlo con request.getParameter().
Por ejemplo para llevar un parámetro "nombre" a una variable, dentro del tag que corresponda poner: String variable = request.getParameter("nombre"). Recuerden que llega como string, si es un número deben convertirlo a número con código Java.
Veamos el mismo caso utilizando javaBeans. Básicamente un Bean hace referencia a una clase fácilmente reutilizable y "sencilla" por así decirlo. La clase Persona que creamos sería una especie de Bean. Para que funcione debe tener los setters y getters que ya los hemos puesto.
Es muy fácil de entender:
Código :
<%@page contentType="text/html; charset=utf-8" import="Objetos.Persona"%> <html> <head> <title>Mi primer sitio JSP</title> </head> <body> <jsp:useBean id="persona" scope="page" class="Objetos.Persona" /> <jsp:setProperty name="persona" property="nombre" value="Daniel" /> <jsp:setProperty name="persona" property="ciudad" value="Santa Rosa" /> <jsp:setProperty name="persona" property="id" value="12" /> <h1>Datos de la persona:</h1> <p>Nombre: <jsp:getProperty name="persona" property="nombre" /></p> <p>Ciudad: <jsp:getProperty name="persona" property="ciudad" /></p> <p>Numero de identificacion: <jsp:getProperty name="persona" property="id" /></p> </body> </html>
El código lo dice todo:
<jsp:useBean id="algo" scope="page" class="package.class" />: para declarar un Bean. Hay que indicarle cuál paquete y clase. Fijense que le damos el id "persona" en el ejemplo, por lo que a partir de ahora usamos ese id. El scope no viene al caso por ahora.
<jsp:setProperty name="algo" property="nombre" value="Daniel" />: para setearle un valor al Bean creado, usando el id que le hemos dado al crearlo.
<jsp:getProperty name="persona" property="nombre" />: para mostrar los valores del Bean.
danyrik :
Probando la página
Para probar la página, tiene que estar iniciado el Tomcat en los respectivos IDE. En NetBeans clic con el botón derecho del ratón sobre el proyecto (el panel de la izquierda) y elegir "Run"; los llevará automáticamente al navegador por defecto.
En Eclipse pueden entrar desde el navegador siguiendo este formato (por lo general): http://localhost:8080/MiPrimerJSP/index.jsp o donde hayan puesto la página.
Vista general del proyecto en Eclipse
Vista general del proyecto en NetBeans
Finalizando
Con lo que hemos visto hoy ya pueden hacer prácticamente cualquier cosa, y más si saben usar DB. Un ejercicio que pueden probar por ejemplo es el siguiente: crear otra página, pongamosle "datos.jsp" y con "index.jsp" pasarle los parámetros por GET desde un link común (o POST desde un formulario), tomarlos y hacer cálculos o mostrarlos.
danyrik :
La idea de este artículo es solamente comenzar a jugar con Java y páginas webs en la parte básica. Para hacer un sitio profesionalmente se utilizan otros mecanismos y hay miles de alternativas.
Con paciencia, buscando, preguntando, probando se puede ir entendiendo la onda. Suerte y responderé las dudas lo mejor posible, si se me escapó algun detalle me lo hacen saber.
Nos vemos en próximo artículo, donde veremos más cosas para
danyrik :
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Zguillez el 20 de Junio de 2009
Por eldervaz el 20 de Junio de 2009
Por daz_angie el 21 de Junio de 2009
Explicaste de manera sencilla cómo crear un JSP
Por flashreloco el 22 de Junio de 2009
Es bueno volver a recordar este tipo de cosas.
Saludos
Por manhesoft el 23 de Junio de 2009
envien PRV
Por danyrik el 24 de Junio de 2009
manhesoft, claro que se puede, eso escapa un poco al tema de este post jaja pero ya hay tutoriales de eso... si pinta hago uno propio bien explicado para Cristalab, pero buscá en internet que vas a encontrar (lo acabo de hacer y vi mucha info)
Exacto flashreloco, lo ideal sería ir hablando también sobre las distinas alternativas que se están usando, como Struts.
Por Luis el 09 de Julio de 2009
Cannot find any information on property 'Titulo' in a bean of type 'catzPackage.Titulos'
mi clase es muy simple:
package catzPackage;
public class Titulos {
public String Titulo;
public Titulos(){}
public void setTitulos(String Titulo){
this.Titulo=Titulo;
}
public String getTitulos(){
return Titulo;
}
}
y el bean lo he creado de la siguiente manera:
<jsp:useBean id="tit2" scope="page" class="catzPackage.Titulos"/>
<jsp:setProperty name="tit2" property="Titulo" value="Bienvenido"/>
Espero me puedas ayudar en ver por que sale este error
Por damb el 04 de Octubre de 2009
Por nitana el 15 de Enero de 2010
Por Sky_war el 17 de Enero de 2010
GRACIAS!!!
Por Sky_war el 19 de Enero de 2010
Por nina el 21 de Enero de 2010
GRacias
Por zigu el 26 de Enero de 2010
Por Walter el 09 de Febrero de 2010
Por willian el 15 de Marzo de 2010
Por Sh@ el 10 de Mayo de 2010
Por Matias el 15 de Mayo de 2010
Por Alex el 25 de Mayo de 2010
Gracias otra vez.
Por johnny el 04 de Junio de 2010
Por Javier el 01 de Agosto de 2010
org.apache.jasper.JasperException: No se puede compilar la clase para JSP:
An error occurred at line: 6 in the generated java file
Only a type can be imported. Objetos.Persona resolves to a package
Ha tenido lugar un error en la l�nea: 9 en el archivo jsp: /web/index.jsp
Persona cannot be resolved to a type
Por carlos el 05 de Septiembre de 2010
Por Terrique el 07 de Diciembre de 2010
Por ente el 01 de Febrero de 2011
Por fr2d el 02 de Febrero de 2011
Por alfaalfa el 31 de Marzo de 2011
Por Est11 el 04 de Mayo de 2011
Por juniorprogramer el 05 de Mayo de 2011
mas info
Por alberto santa cruz el 23 de Mayo de 2011
En una aplicación web escrita en java, ¿donde se guardan las imagenes?. Por ejemplo: un logotipo.
Busqué dentro de la carpeta del sitio pero no existen archivos png, jpeg, gif, etc. ¿como puedo ubicar el archivo ?. gracias.
Por neto el 24 de Mayo de 2011
Por fabres21s el 13 de Junio de 2011
Por vanicer el 17 de Junio de 2011
tienes alguna pagina o algo asi que uses mas que este blog para mantenerme al tanto de tus publicaciones?
De nuevo gracias...en verdad
Por JOSE el 08 de Septiembre de 2011
Por AYUDA el 09 de Septiembre de 2011
Estado HTTP 500 -
type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción
org.apache.jasper.JasperException: /index.jsp(9,0)
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
causa raíz
org.apache.jasper.JasperException: /index.jsp(9,0)
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1174)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
ME gustaria que me indique paso a paso, tengo que iniciar apache COMO? o ??
Gracias mi mail dmsuite hotmail com
Por Paco el 01 de Noviembre de 2011
Por davicho el 04 de Noviembre de 2011
Por Mari el 18 de Noviembre de 2011
Por GVR el 09 de Diciembre de 2011
Por Jesus el 31 de Enero de 2012
Por tropper el 09 de Febrero de 2012
Por Bastian_2008 el 21 de Febrero de 2012
Por sarita el 18 de Abril de 2012
Por sarita el 23 de Abril de 2012
Por janet el 13 de Junio de 2012
Por javier el 25 de Julio de 2012
Por Gustavo P. el 30 de Septiembre de 2012
ESPERAMOS MAS GRACIAS.
Por edwarcardona el 14 de Diciembre de 2012
Por Gerardo Santiago el 12 de Agosto de 2013
Por jdaxer.com el 11 de Noviembre de 2013
Por sandragh el 09 de Junio de 2014
Por cowboy el 29 de Enero de 2015
Por Parricide el 24 de Febrero de 2015
Por Gdanilo el 11 de Marzo de 2015
y aqui una explicacion muy buena que encontre para que entiendan que es y como se utiliza [url=direccion]https://xmeele.wordpress.com/2013/03/27/guia-completa-de-openshift-de-red-hat-para-principiantes-windows/[/url]
Pequeña explicación :
los hosting o servidores web que soporten tecnología java son pocos (o no conozco muchos ) o son caros , este es gratuito por 3 años , tiene sus limitaciones claro pero es ultra rápido y tiene hartas configuraciones , de paso aprenden GIT que es importante y casi esencial hoy en día , aparte de complementar conocimientos y ver sus resultados en una pagina web real.
Por JavaMaster el 01 de Junio de 2015