Foros del Web » Programación para mayores de 30 ;) » Java »

Novato en JSP y Servlets con varias dudas

Estas en el tema de Novato en JSP y Servlets con varias dudas en el foro de Java en Foros del Web. Conozco los lenguajes PHP y ASP, y ahora estoy intentando aprender por mi cuenta JSP. Por supuesto me he encontrado con mil problemas y preguntas... ...
  #1 (permalink)  
Antiguo 29/01/2007, 18:29
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Novato en JSP y Servlets con varias dudas

Conozco los lenguajes PHP y ASP, y ahora estoy intentando aprender por mi cuenta JSP. Por supuesto me he encontrado con mil problemas y preguntas...


De momento me he bajao e instalado el servidor Apache Tomcat 5.0 para ejecutar los JSP, y los ejemplos que lleva consigo de JSP funcionan a la perfeccion.

He intentado colocar un ejemplo de JSP, pero al ponerlo en "webapps" directamente ni siquiera lo encontraba. Luego lo he colocado en cualquiera de las subcarpetas de "webapps", y alli si que lo encuentra. Primera duda ¿Como funciona la estructura de carpetas dentro de "webapps" tanto para JSP como para servlets? ¿Como colocar los archivos correctamente para que todo funcione?


El caso es que al colocar un JSP de ejemplo en la carpeta "webapps\ROOT", como un "hola mundo" como este que he encontrado por internet:

Código PHP:
<%@ page language='java' contentType="text/html" %>
<%! 
int count=0; %>
<
html>
<
head><title>Hola y númerosIntro to JSP</title></head>
<
body bgcolor="white">
HolamundoTe lo repito  <%= count++ %> 
<% if (
count == 1) { %>
 
vez
<% } else { %>
 
veces
<% } %>
</
body></html
me aparece el error:
"No se puede compilar la clase para JSP"
"Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK"

Tenia entendido que el TOMCAT 5.0 ya traia de por si un compilador JSP, ¿estoy equivocado? Segunda duda: Si TOMCAT no lleva compilador de JAVA incluido ¿Como es posible que los codigos de ejemplo que trae Tomcat funcionen bien sin instalar nada mas? y si lo lleva incluido ¿como es que no funciona mi ejemplo?


He dado mil vueltas por internet, y en muchas paginas dicen que hay que instalar el compilador de Java aparte. Lo he hecho, me baje el Java 2 Platform (J2SE) 1.4.2, e incluso he conseguido añadirlo al "AUTOEXEC" de XP (que no es un .bat precisamente...) para que se ejecute al iniciar el ordenador. El problema no se solucionó. Tercera Duda: ¿Que debo hacer? ¿Cuales son los pasos que debo seguir para conseguir que funcione tanto el codigo de ejemplo, como la posible futura combinacion de JSP y Servlets (con esto tambien me refiero a la estructura de carpetas y la forma de llamar a los archivos entre si?


PD: Apenas tengo idea tanto de JSP como de Servlets, por eso necesito que me expliqueis hasta el mas pequeño concepto. Muchas Gracias.
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #2 (permalink)  
Antiguo 31/01/2007, 17:18
Avatar de Felippe  
Fecha de Ingreso: octubre-2006
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Novato en JSP y Servlets con varias dudas

Hola oskarL:

Trataré de ser breve en mis respuestas a tus dudas, espero sean lo suficientemente claras:

Primero: la estructura necesaria para una aplicación web en Tomcat (y otros contenedores Web), es como sigue:

Código:
  catalina-home
   |
   +- webapps
        |
	+- miAplicacion
		     |
		     +- WEB-INF
			     |
			     +- classes ( paquetes y *.class )
			     +- lib (*.jar)
			     +- 'web.xml'
		     |
		     +- (otros directorios, *.jsp, *.htm, *.html)
donde 'catalina-home' es el directorio raiz de Tomcat (c:\tomcat5.5 por ejem). Y 'miAplicacion' es el directorio de tu aplicación.

Segundo: Tomcat NO lleva un compilador Java, pero Sí lo necesita. Me explico, Tomcat tiene 2 motores para procesar alguna petición: 1º Motor de Servlets, el que sí requiere de un compilador Java (será necesario que configures las variables de entorno JAVA_HOME y CATALINA_HOME) y 2º Motor de JSP's, el cual no requiere de un compilador de Java, sino que toma como entrada el archivo .jsp y genera un archivo .java (un servlet); una vez generado ese 'servlet' le pasará la tarea al Motor de Servlets para que busque un archivo .class (si es que ya existe) o compile el servlet generado, una vez hecho todo este proceso se emite una respuesta al cliente.

Ah, y respecto a tu prueba de un JSP, pienso que debiste tener ya instalado JRE en tu PC, posiblemente en alguna remota actualización que hiciste en algun momento. Ya que para que se ejecute un archivo compilado, como mínimo se requiere JRE.

Tercero: Aunque tu pregunta puede dar lugar a mucho de que hablar, te diré que estás encaminado para construir una buena aplicacion web con estas tecnologías, ya que por lo que comentas, pretendes combinar JSP's y Servlets lo cual es lo más optimo (una razón es la explicacion de los motores), el manejo de esa combinación te dará las bases a manejar otras herramientas de mas alto nivel (frameworks). La forma de invocar esos archivos no es nada complicado: los JSP's invócalos como ya tú conoces en PHP o ASP, en cambio con los Servlets deberás usar el descriptor de archivos (web.xml) para configurarlos adecuadamente y tú definas cómo invocarlos.

Por último recomendarte que leas la documentación que viene junto con Tomcat, la cual te será de mucha utilidad (puedes encontrar un enlace en el index de Tomcat).

Bueno, pues darte ánimos a que continúes.

Saludos
  #3 (permalink)  
Antiguo 01/02/2007, 00:13
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Novato en JSP y Servlets con varias dudas

oskarl , yo tuve un problema igual... la solucion fue instalar el jdk-1_5_0_07
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:12.