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

Login con JSP

Estas en el tema de Login con JSP en el foro de Java en Foros del Web. Buenas intento realizar una página de login con JSP, y la verdad es que no tengo mucho idea de Java, pero buscando durante bastante tiempo ...
  #1 (permalink)  
Antiguo 04/05/2011, 09:50
 
Fecha de Ingreso: marzo-2011
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 2
Login con JSP

Buenas intento realizar una página de login con JSP, y la verdad es que no tengo mucho idea de Java, pero buscando durante bastante tiempo he encontrado este código.

Y me gustaria saber si era posible modificarlo, que en vez de que se conecte a una BD se conecte a un archivo local y de alli lea el user/pass. Y si no fuera posible ya me apañaria para probarla con una BD. Y otra parte que es la que mas me interesa, es si me pudierais ayudar a encontrar oracle-connector-java-X.X.X-bin.jar o algo parecido.

login.jsp
Código:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
// Leemos la variable de sessión 'validado'
Boolean validado = (Boolean) session.getAttribute( "validado" );
// Si la variable de session 'valiadado' ya
// ha sido creada o el valor es 'true'
if( validado!=null && validado.booleanValue())
// Redireccionamos a la página bienvenido.jsp
response.sendRedirect( "bienvenido.jsp" );
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<%
// Leemos la variable de sesión 'usuario'
String usuario = (String) session.getAttribute( "usuario" );
// Si las variable de sesión 'validado'
// y 'usuario' ya habia sido creadadas
if(validado!=null && usuario!=null)
// Mostramos mensaje de advertencia
out.println("<p>Usuario o contraseña incorrectos</p>");
// Si la variable de sesión usuario
// no ha sido creada
if(usuario==null)
// Instanciamos la variable local 'usuario'
usuario = "";
// Borramos la variable de sesión 'usuario'
session.setAttribute( "usuario", null);
%>
<form method="post" action="bienvenido.jsp" name="formLogin">
<input type="text" name="usuario" value="<%=usuario%>"><br>
<input type="password" name="contrasena"><br>
<input type="submit" name="enviar" value="enviar">
</form>
</body>

bienvenido.jsp

Código:
<%@ page import="java.sql.*" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
// Leemos la variable de sesión 'validado'
Boolean validado = (Boolean) session.getAttribute( "validado" );
// Si la variable de sesión 'validado' no ha
// sido creada o contiene un valor 'false'
if( validado==null || !validado.booleanValue() )
{
// Leemos la variable POST 'usuario'
String usuario= request.getParameter( "usuario" );
// Leemos la variable POST 'contrasena'
String contrasena = request.getParameter( "contrasena" );
// Si las variables POST 'usuario' y 'contrasena'
// existen y 'usuario' contiene texto
if(usuario!=null && contrasena!=null && !usuario.equals("") )
{
// Establecemos la variable de sessión 'usuario'
session.setAttribute( "usuario", usuario);
// Cargamos el Driver de MySQL
Class.forName( "com.mysql.jdbc.Driver" );
// Creamos una conección a MySQL, Sintaxis:
// jdbc:mysql://[servidor]:[puerto]/[base de datos], usuario, contraseña
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/test" , "root", "tu_contraseña" );
// Creamos un Statement
Statement stmt = conn.createStatement();
// Cramos un Resultado de Consulta SQL
ResultSet rs = stmt.executeQuery(
"SELECT usuario FROM usuarios " +
"WHERE usuario='" + usuario + "' " +
"AND contrasena='" + contrasena + "'"
);
// Si el resultado contiene filas
if( rs.next() )
// Establecemos la variable local
// 'validado' a true
validado = new Boolean(true);
// Cerramos el Statment
stmt.close();
// Cerramos la conexión
conn.close();
}
}
// Si la variable de sesión
// 'validado' no ha sido creada
if(validado==null)
// Establecemos la variable local
// 'validado' a true
validado = new Boolean(false);
// Añadimos la variable de sesión 'validado'
// con el contenido de la variable local
session.setAttribute( "validado", validado);
// Si la variable local 'validado' es false
if( !validado.booleanValue() )
// Redireccionamos a la página login.jsp
response.sendRedirect( "login.jsp" );
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Bienvenido</title></head>
<body>Bienvenido</body>
</html>
Agradeceria cualquier ayuda, ya que llevo con este tema 3 días y ya me costo bastante conseguir configurar el eclipse + tomcat. O si al menos me pudierais guiar un poco.

Gracias
  #2 (permalink)  
Antiguo 04/05/2011, 12:52
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Login con JSP

Sí, se puede modificar, sólo es código y da igual mirar en bd que en un fichero.

El driver oracle-java se llama ojdbc14.jar, no te costará encontrarlo en google sabiendo el nombre.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 05/05/2011, 01:17
 
Fecha de Ingreso: marzo-2011
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Login con JSP

Gracias por la respuesta. Quiero intentar modificarlo para poder usar algun archivo local como fuente de user/pass para hacer las pruebas que quiero y saber si el código hace lo que necesito. Aún que no se muy bien por donde empezar, supongo que hay que modificar las siguientes lineas:

Código:
if(usuario!=null && contrasena!=null && !usuario.equals("") )
{
// Establecemos la variable de sessión 'usuario'
session.setAttribute( "usuario", usuario);
// Cargamos el Driver de MySQL
Class.forName( "com.mysql.jdbc.Driver" );
// Creamos una conección a MySQL, Sintaxis:
// jdbc:mysql://[servidor]:[puerto]/[base de datos], usuario, contraseña
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/test" , "root", "tu_contraseña" );

// Creamos un Statement
Statement stmt = conn.createStatement();
// Cramos un Resultado de Consulta SQL
ResultSet rs = stmt.executeQuery(
"SELECT usuario FROM usuarios " +
"WHERE usuario='" + usuario + "' " +
"AND contrasena='" + contrasena + "'"
);
// Si el resultado contiene filas
if( rs.next() )
// Establecemos la variable local
// 'validado' a true
validado = new Boolean(true);
// Cerramos el Statment
stmt.close();
// Cerramos la conexión
conn.close();
}
}
Si me pudieras guiar un poco el código ya me buscaria yo la vida supongo! :D

Gracias.
  #4 (permalink)  
Antiguo 05/05/2011, 10:28
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Login con JSP

Si debes reemplazar desde el Class.forname() hasta el conn.close(), por algo que lea del fichero que tú dices http://chuwiki.chuidiang.org/index.p...cheros_en_Java

Unicamente, debes poner validado a Boolean.TRUE si el usuario/password es correcto.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 11/05/2011, 03:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Login con JSP

Buenas al final lo he hecho todo con .jsp y pongo el código por si alguien lo necesita algun dia

style.css
Código:

.box-table-encuesta{
font-family: "Calibri", "Lucida Grande", Sans-Serif;
font-size: 11px;
margin: 45px;
width:95%;
text-align: center;
border-collapse: collapse;
border: 1px #F79646;
margin-left:0;
text-align: center;
	
}

.box-table-encuesta th{
font-weight: normal;
background: #F79646;

font-weight: bold;
color: #FFFFFF;
font-size: 14px;
text-align: center;

}

.box-table-encuesta td{

color: #000000;
padding: 3px;
font-align: justify;
font-weight: bold;
}


.box-first-encuesta{
font-weight:bold;
width: 30%;
padding:2px;
text-align: justify;

}

.box-table-encuesta input{
	width: 75%;
	height: 15px;
}

.box-table-encuesta input.enviar{
	width: 20%;
	height: 20px;
	margin-left:45%;
	margin-top:3%;
}



.box-table-encuesta_respuesta{
font-family: "Calibri", "Lucida Grande", Sans-Serif;
font-size: 11px;
margin: 45px;
width:95%;
text-align: center;
margin-left:0;
text-align: center;
border: 1px solid #F79646;
border-collapse: collapse;
	
}

.box-table-encuesta_respuesta th{
font-weight: normal;
background: #F79646;
border: 1px solid #F79646;
font-weight: bold;
color: #FFFFFF;
font-size: 14px;
text-align: center;
border-collapse: collapse;

}

.box-table-encuesta_respuesta td {
border: 1px solid #F79646;
color: #000000;
padding: 3px;
font-align: justify;
font-weight: bold;
border-collapse: collapse;
}


.box-first-encuesta_respuesta{
font-weight:bold;
width: 30%;
padding:2px;
text-align: justify;

}

login.jsp

Código:
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<style type="text/css"></style>
<link rel="stylesheet" href="../css/style.css" type="text/css"/>
<script type="text/javascript" src="../js/script.js"></script>
</head>
<body onload="cambiarTitulo()">
<div class="contenido">



       
        <%
        String myname =  (String)session.getAttribute("username");
       
        if(myname!=null)
            {
             out.println("Welcome  "+myname+"  , <a href=\"logout.jsp\" >Logout</a>");
             
            }
        
              else 
            {
            %>
            <form action="checkLogin.jsp"> 
               <table class="box-table-d" >
               <tr><td colspan="2" ><img alt="Se necesita contraseña" src="../img/locked.gif"/>Login</td></tr> 
                    <tr>
                        <td> Username  : </td><td> <input name="username" size=15 type="text" /> </td> 
                    </tr>
                    <tr>
                        <td> Password  : </td><td> <input name="password" size=15 type="text" /> </td> 
                    </tr>
                    <tr><td colspan="2"><input type="submit" value="login" /></td></tr>
                </table>
                
            </form>
            
            <br/><br/><div class="anuncio_pass"><i> Si no tiene contraseña la puede solicitar, enviando un email a Soporte GSIS usando el botón "Contacta" o enviando un correo a la siguiente dirreción <a href="mailto:[email protected]">[email protected]</a></i></div>
            <% 
            }        
            
            %>     
</div>   
</body>
</html>
checkLogin.jsp

Código:
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<style type="text/css"></style>
<link rel="stylesheet" href="../css/style.css" type="text/css"/>
<script type="text/javascript" src="../js/script.js"></script>
</head>
    
<body>
<div class="contenido">
<%
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            String redirectURLprueba = "http://www.google.es/";
            String redirectURLliveall = "../####/####/pagina.html";
            String redirectURLlogin = "./loginES.jsp";
            
         

            // Here you put the check on the username and password
            if (username.toLowerCase().trim().equals("prueba") && password.toLowerCase().trim().equals("prueba")) {
               // out.println("Welcome " + username + " <a href=\"index.jsp\">Back to main</a>");
               // session.setAttribute("username", username);
            	response.sendRedirect(redirectURLprueba);}
            if (username.toLowerCase().trim().equals("admin1") && password.toLowerCase().trim().equals("admin1")) {
                  response.sendRedirect(redirectURLliveall );                  
            }  
          else 
               {
        	  %>
        	  <table class="box-table-d" >
              <tr><td colspan="2" >Error en la contraseña o usuario, vuelve atras por favor.</td></tr> 
             </table>  
        	 <%
          }

%> 
</div>
    </BODY>
</HTML>

Saludos!
  #6 (permalink)  
Antiguo 16/05/2011, 13:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 1
Respuesta: Login con JSP

me gustaría saber si a partir de ahi, sabiendo qué usuario se ha logueado pueda acceder a sus datos personales guardados en una tabla en la base de datos...
  #7 (permalink)  
Antiguo 19/05/2011, 04:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Login con JSP

Cita:
Iniciado por tita_uy Ver Mensaje
me gustaría saber si a partir de ahi, sabiendo qué usuario se ha logueado pueda acceder a sus datos personales guardados en una tabla en la base de datos...

Por poder se puede hacer, pero de como hacerlo no tengo ni idea.

La verdad es que todo esto lo he sacado con el Google, es decir si tienes ganas y paciencia, encontraras una solución a lo que quieres hacer.

Saludos.

Etiquetas: jsp, login
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 12:58.