Java - Servlet y JSP

 
Vista:
sin imagen de perfil
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rosa (8 intervenciones) el 14/02/2020 08:22:55
Tengo el siguiente JSP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            //Al hacer click en el botón ingresar
            if (request.getParameter("btn_ingresar") != null)
            {
                //Crea dos strings, una para el user y otra para el password.
                String username = request.getParameter("txt_username");
                String password = request.getParameter("txt_password");
 
                //Si ambas son "admin"...
                if (username.equals("admin")&&password.equals("admin"))
                {
                    //Redirecciona al servlet 'crear_departamento.do'
                    response.sendRedirect("ListadoProductos_almacenesServlet");
                }
                //Si no...
                else
                {
                    //Muestra un mensaje javascript señalando que hay daros erróneos
                    out.println("<script>alert('Usuario o contraseña incorrecta');</script>");
                }
            }
        %>
    <center>
        <div style="font-family: sans-serif">
            <h2> Banco notNull </h2>
            <h3 style="font-family:sans-serif">Ingreso administrador</h3>
            <form action="index.jsp" method="POST">
                <table border="1" style="font-family:sans-serif">
                    <tbody>
                        <tr>
                            <td>Usuario</td>
                            <td><input type="text" name="txt_username" value="" /></td>
                        </tr>
                        <tr>
                            <td>Contraseña</td>
                            <td><input type="password" name="txt_password" value="" /></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td><input type="submit" value="Ingresar" name="btn_ingresar" /></td>
                        </tr>
                    </tbody>
                </table>
            </form>
            <hr>
        </center>
    </body>
</html>

Cuando lo ejecuto y le doy a ingresar, ya sea introduciendo correctamente o incorrectamente me da un error 500 y no me redirecciona al servlet. ¿Alguien podria ayudarme? gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por pablo (239 intervenciones) el 14/02/2020 13:44:34
Hola Rosa

Podrías por favor colocar el error en detalle que te arroja,es decir la descripción completa.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rosa (8 intervenciones) el 14/02/2020 14:08:17
Este seria

HTTP Status 500 - Internal Server Error
type Exception report

messageInternal Server Error

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
root cause

java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por pablo (239 intervenciones) el 14/02/2020 14:57:06
Hola Rosa

1
if (request.getParameter("btn_ingresar") != null)

1
if (request.getParameter("btn_ingresar").equalsIgnoreCase("Ingresar"))

Creo que el error radica en el primer if que tienes intenta hacer ese cambio para ver sí el código se evalúa correctamente, y para probar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rosa (8 intervenciones) el 14/02/2020 15:34:20
Buenas, al introducir el cambio sugerido y actualizar, me da el error directamente

HTTP Status 500 - Internal Server Error
type Exception report

messageInternal Server Error

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
root cause

java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.

Antes me permitia introducir los campos y al darle a enviar me daba el error. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por pablo (239 intervenciones) el 14/02/2020 15:56:27
1
2
3
<input type="text" name="txt_username" value="" />
 
<input type="password" name="txt_password" value="" />

Quitá el value="" de tus input es decir:

1
2
3
<input type="text" name="txt_username" />
 
<input type="password" name="txt_password"  />


y adicional vuelve al cambio anterior del if para probar

if (request.getParameter("btn_ingresar") != null)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rosa (8 intervenciones) el 14/02/2020 16:05:37
Continua igual...si quieres y me facilitas un correo te envio el proyecto para que lo mires. Mandamelo por privado si quieres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rodrigo (623 intervenciones) el 14/02/2020 16:12:02
Mi apuesta:
username y password son null, de modo instrucciones como

1
username.equals("admin")

haran que se desreferencie null.

No se por que los valores llegan null, eso lo tienes que resolver.
Para que el codigo funcione, aun cuando los valores sean null, invierte la comparacion asi:

1
"admin".equals(username)

Misma cosa con password.

Esto no resuelve el problema, pero hara que el codigo funcione, al menos hasta alli.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rosa (8 intervenciones) el 14/02/2020 16:18:33
Muchas gracias por la aportación, aunque sigue dando el mismo error :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por pablo (239 intervenciones) el 14/02/2020 16:20:49
Complementando también lo que dice el compañero Rodrigo

Revisa la carpeta de logs del GlassFish que es donde te sale la traza de la excepción, y mira el archivo que te da la excepción y la línea que te indica (suelen ser los archivos que tú has creado y suele estar al principio de todo en la traza de la excepción). Yo no ocupo Glassfish utilizo Tomcat, pero es indistinto. Intenta buscar la carpeta antes mencionada y comparte el error que te aparece.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rosa (8 intervenciones) el 14/02/2020 16:38:17
Aqui esta

java.lang.NullPointerException
at org.apache.jsp.validarUsuario_jsp._jspService(validarUsuario_jsp.java:56)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:748)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Servlet y JSP

Publicado por Rodrigo (623 intervenciones) el 14/02/2020 18:04:32
Preguntas mas que respuestas.

Tengo entendido que lo que pones en form action que en tu caso es index.jsp es lo que se intentara ejecutar cuando presiones el boton del form. Es en este otro jsp (index) en donde tiene sentido (para mi) recuperar los valores que has ingresado en los campos username y password. Una vez que has presionado submit, el codigo que has escrito para el jsp actual ya no sirve.

Yo crearia un redireccionador.jsp pondria este nombre en el action del form, y en redireccionador.jsp pondria el codigo java que has puesto en el codigo que presentas aqui.

Aunque aun despues de estos cambios es posible que aun tengas el problema de null, al menos separarlo asi tiene mas sentido para mi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar