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

Ayuda para un ignorante novato

Estas en el tema de Ayuda para un ignorante novato en el foro de Java en Foros del Web. Muy buenas, para un trabajo necesito vuestra ayuda porque no tengo ni idea de servlets ni de su funcionamiento. Tengo que crear una pequeña aplicación ...
  #1 (permalink)  
Antiguo 14/01/2010, 09:53
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda para un ignorante novato

Muy buenas, para un trabajo necesito vuestra ayuda porque no tengo ni idea de servlets ni de su funcionamiento.

Tengo que crear una pequeña aplicación web utilizando html y servlets y no sé ni por dónde empezar, yo se programar aplicaciones web con html y php, y un poco de javascript, pero es que esto se me está yendo de las manos. En principio no creo que tenga problemas con la "programación" en sí, con lo que tengo problema es con configurar todo para poder empezar.

Me explico, tengo una máquina virtual debian, y en ella tengo instalados tanto el eclipse como el servidor apache. He comenzado a hacer la aplicación en html, y el servidor apache va bien, pero llego a un punto en el que no sé como hacer la "conexión" con el servlet. Si yo por ejemplo pongo un link, en php paso los parametros get o post y juego con eso, pero en el servlet no sé como hacerlo. Supongo que el link me tendrá que llevar a uno de los servlets que tengo de prueba en el eclipse, no? me explico, yo tengo que poner en el "href" una conexión al servlet1.java o lo que sea.

Además el eclipse no me pilla el import javax.servlet.* ni el import javax.servlet.httpservlet, que parece ser que son los que hacen falta para eso...si alguien sabe de algún tutorial básico básico para esto agradecería su ayuda, porque ahora mismo estoy que no sé ni por dónde tirar....muchas gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 15/01/2010, 10:53
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Ayuda para un ignorante novato

Hola Rookienovato, mira, es complicado si no tenés idea ni de servlets ni de algún webServer que soporte los mismos. El servidor común de Apache no los soporta, con lo cual eso lo podrías ir apartando. Un webServer comúnmente usado y simple, es Apache Tomcat (que no es lo mismo que el Apache común y corriente). El Apache solo sirve contenido estático. El apache Tomcat sirve contenido dinámico por medio de Servlets o JSP, por ende es éste el que deberías utilizar (Se puede hacer una colaboración entre ambos Apaches, pero no te lo recomiendo en esta instancia). Ahora, Apache Tomcat también sirve para contenido estático con lo cual te recomiendo que si recien estas empezando con esto, SOLO uses este para todo (htmls, css, js y servlets). Su versión actual es la 6. No recuerdo realmente el nombre del paquete para Debian, pero si vas al sitio oficial y obtenes el link de descarga y lo extraes, sale funcionando por lo general. Supongo q tenes instalado un JRE. Si no lo tenés deberías hacerlo. Una vez descomprimido el Tomcat, tenés que configurar en los archivos carpetatomcat/bin/startup.sh una variable de entorno JAVA_HOME y CATALINA_HOME para indicarle donde se encuentra la JVM. Con esto ya tenés el tomcat funcionando. Luego vas a carpetatomcat/conf/server.xml y te configuras un host virtual para tu aplicación. Si te sigue sin tomar el javax.servlet , conseguite el j2ee.jar (si mal no recuerdo estaba contenido en ese jar). Para empezar, create un proyecto Java en eclipse, luego anda a propiedades del proyecto/java build path y cambia el output folder que probablemente sea "bin" y cambialo por "classes" (que es la carpeta que busca el tomcat". Luego dejá los jars que utilices para tu aplicación, dentro de la carpeta lib, y en el mismo lugar donde cambiaste el path de classes, inlcuí los jars con el botón "Add jars", buscalos por tu proyecto, seleccionalos y agregalos. Si lo que vas a hacer es bien estandar no necesitarías tal vez algún jar. Lo digo solo por si tenés que agregar el j2ee.jar. Recordá agregar al archivo de hosts la url o nombre que le hayas puesto a la aplicación, para poder navegarla localmente. Hecho todo esto, ya tendrías tu entorno de desarrollo completo.

Ahora, programación

Un servlet se puede ver como algo de mas bajo nivel a lo que estás acostumbrado en PHP y HTML. La ejecución de un servlet, comienza con la recepción de un HttpServletRequest (que es un http request) y concluye al terminar el código del servlet (que es por lo general cuando se envía un HttpServletResponse al cliente). Los parámetros, sean de formularios, o sean pasados por GET, están contenidos dentro del Request, y los obtendrías haciendo: String par = request.getParameter("nombreparametro");
Un ejemplo típico de un servlet es este:

Código:
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import censere.framework.logger.CensereLogger;

public class AbstractController extends HttpServlet {
	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
		doPost(request, response);
	}

	public final void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException {
		response.getWriter.println("<h1>Hola mundo</h1>");
	}
	
}
Hecho esto, debés tener un archivo web.xml adentro del root de tu proyecto, en el cuál debes especificar el path dentro de tu proyecto donde se encuentra este Servlet, indicar su nombre, y su url.
Una vez hecho esto, reinicas tomcat (para que obtenga las modificaciones del web.xml) y vas al browser a ver que onda, con la url que le hayas dado en tu virtual host, y el nombre del servlet (sin olvidar el numero de puerto, que suele ser 8080 por default) Ej.: www.proyectopropio.com:8080/nombreServlet

Esto es todo el paso a paso, para llegar a tener un servlet funcionando desde cero. Lo único que faltan son detalles. Espero que sirva

Slds!
  #3 (permalink)  
Antiguo 20/01/2010, 11:35
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda para un ignorante novato

Muchisimas gracias. Intentaré ponerlo tal y como me lo has dicho, pero, si me surgieran dudas, ¿podrías respondermelas tan amablemente como ahora? me has servido de mucha ayuda, gracias.

Saludos!
  #4 (permalink)  
Antiguo 21/01/2010, 06:08
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Ayuda para un ignorante novato

Por supuesto. [email protected]

Slds
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 02:18.