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

Error con Servlets, lanza mensaje de guardar,abrir o cancelar

Estas en el tema de Error con Servlets, lanza mensaje de guardar,abrir o cancelar en el foro de Java en Foros del Web. Hola, estoy haciendo un proyecto java web y tengo problema con los servlets. Tengo un pequeño formulario para el login en donde le doy a ...
  #1 (permalink)  
Antiguo 18/07/2011, 04:56
 
Fecha de Ingreso: junio-2011
Mensajes: 21
Antigüedad: 12 años, 10 meses
Puntos: 1
Exclamación Error con Servlets, lanza mensaje de guardar,abrir o cancelar

Hola,
estoy haciendo un proyecto java web y tengo problema con los servlets.

Tengo un pequeño formulario para el login en donde le doy a action el nombre del servlet:
<form method="post" action="login" onsubmit="return validar();" name="login">
<fieldset>
<legend>Identificación</legend>
Nombre de Usuario:
<input type="text" name="nombreusuario" id="nombreusuario" />
Contraseña:
<input type="password" name="contrasena" id="contrasena" />
<input type="submit" name="inputsubmit1" value="Enviar" />

</fieldset>
</form>


el servlet es de la siguiente forma:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String login = request.getParameter("nombreusuario");
String pass=request.getParameter("contrasena");
Identificacion ident= new Identificacion(login,pass);

if(persistencia.identificacionValida(ident)){
response.sendRedirect("./Administrador/opcionesadministrador.jsp");

}
} finally {
out.close();
}
}



Utilizo XAMPP y por tanto Tomcat y MySQL y cuando intento ejecutar el Servelt solo me sale un cuadro en el que me dice si deso guardar, abrir o cancelar.
Cuando relleno los campos del formulario y le doy a enviar me sale unas veces el error de 404 en el que no se puede encontrar o me sale un error de que el objeto no está encontrado.

He intendado mil cosas: desde crear de nuevo todo el proyecto, parar los servicios de Tomcat, reiniciar XAMPP, importar proyecto, hacer un proyecto nuevo con solo el login...

Es imposible solucionar este error, si alguien me puede ayudar lo agradeceria porque es el proyecto para una empresa y me estoy retrasando bastante con este tema.

gracias de antemano.
  #2 (permalink)  
Antiguo 18/07/2011, 15:32
 
Fecha de Ingreso: junio-2011
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 16
Respuesta: Error con Servlets, lanza mensaje de guardar,abrir o cancelar

Hola,

1. Asumo que tienes correctamente la configuración del servlet en tu web.xml, algo como esto:

Código XML:
Ver original
  1. <servlet>
  2.     <servlet-name>login</servlet-name>
  3.     <servlet-class>paquete.LoginServlet</servlet-class>
  4.   </servlet>
  5.  
  6.   <servlet-mapping>
  7.     <servlet-name>login</servlet-name>
  8.     <url-pattern>/login</url-pattern>
  9.   </servlet-mapping>

El acceso al login servlet

Código HTML:
Ver original
  1. //cambiar esto:
  2. action="login"
  3.  
  4. //por esto:
  5. action="/login"


Código Javascript:
Ver original
  1. // 2. Creo que este par de lineas te estan sobrando en tu caso
  2. response.setContentType("text/html;charset=UTF-8");
  3. PrintWriter out = response.getWriter();

Todo es pura especulación jeje.

Espero te sirva.
__________________
Saludos desde Colombia.
http://labs.distrit.co
  #3 (permalink)  
Antiguo 18/07/2011, 23:10
 
Fecha de Ingreso: junio-2011
Mensajes: 21
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Error con Servlets, lanza mensaje de guardar,abrir o cancelar

Muchas gracias, lo solucioné ayer poniendo la ruta bien. El problema es que ahora cuando le doy al enlace que lleva al Servlet se queda una pantalla en blanco y no hace nada.
Tengo un bucle con un if() en donde no entra.
Si pongo una prueba típica para que me muestre el "Hola Mundo" tampoco me muestra nada, simplemente se queda la pantalla en blanco.

¿Sabes a qué puede ser debido?

Gracias.
  #4 (permalink)  
Antiguo 20/07/2011, 15:36
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Error con Servlets, lanza mensaje de guardar,abrir o cancelar

Si sabemos.

Un servlet se muestra en blanco por 3 razones.

1.- No hay conección al servidor y el navegador se queda cargando
2.- El método doGet no tiene nada que mostrar o manda a llamar a otro método que tampoco tiene nada que mostrar

Y

3.- Porque está ocurriendo un Exception y no la estas imprimiendo.

Y si!, las primeras 2 opciones son de broma para animarte un poco.

-----------------------------

Debes tratar la excepcion de forma adecuada. Primero elimina:

Código java:
Ver original
  1. finally {
  2. out.close();
  3. }

Y remplazalo por

Código java:
Ver original
  1. catch(Exception e) {
  2.  
  3. out.println("LA excepcion es la siguiente: "+e);
  4.  
  5. }

REsultado
Código java:
Ver original
  1. try{
  2. ...
  3. ...
  4. ...
  5. }catch(Exception e){ out.println("La excepcion es:" +e); }

Como estas en un servlet, el objeto "out" no es implicito por lo que hay que iniciarlo:

Código java:
Ver original
  1. .
  2. .
  3. .
  4.  
  5. PrintWriter() out = response.getWriter();
  6. .
  7. .
  8. .

Y bueno esto es para empezar aunque a vista vemos donde ésta la exception, con que quites el finally out.close() ya solo te quedara solucionar la excepcion que ocurre con

Código java:
Ver original
  1. persistencia.identificacionValida(ident)

Yo no veo a persistencia inicializado en ningun lado, Puedo pensar que es una clase y que identificacionValida es un método estático de esa clase. Pero como persistencia tiene la primer letra minuscula tengo mis dudas.

Recomendaciones:

Todas las clases en Java se crean y se escriben con la primer letra del nombre de la clase en mayuscula. Y se utiliza camelCase

camelCase:

HolaMundo
ComoEstas
YoMuyBien

etc... [La primer letra de cada palabra se escribe en mayuscula]

Los servlets son un tipo de Clase por lo tanto la primer letra es en mayuscula

login --> Login

Código HTML:
Ver original
  1. <form method="post" action="Login" onsubmit="return validar();" name="login">
  2. .
  3. .
  4. .

Saludos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: jsp-servlets, servlet
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 21:00.