necesito ayuda con logins en jsp
Hola, estoy haciendo un web en el que pueden entrar usuarios introduciento usuario y pass, en concreto es para que los profesores de mi facultad puedan crear grupos de practicas para sus asignaturas, el problema es que me logueo con un usuario, y si mientras estoy logueado entra otra persona, ya entra logueado con el usuario que esta dentro :(
supongo que mi error se debe a fallo de concepto, porque yo pensaba que cada vez que un usuario abria un .jsp en el servidor (jboss) este digamos que "creaba una copia" para el, en vez de lo que realmente supongo que hace, que es cargar la pagina solicitada para que este disponible para cualquier usuario que la pida.... ayuda!!! os pongo el codigo para que os riais de mi:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%! boolean login = false;
String action = null, user = null, password = null, ip = null;%>
<h3>Área de profesores</h3>
<%if((request.getParameter("log") != null) && (request.getParameter("log") != "")){
login = false;
}
if(!login){//NO ESTAMOS LOGUEADOS, PEDIMOS USER Y PASS
if ((request.getParameter("name") == null) || (request.getParameter("name")== "")) {%>
<form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">
<ul>
<table border="0"><tr><td>Usuario: </td><td><input type="text" name="name" size=26></td></tr>
<tr><td>Contraseña: </td><td><input type="password" name="pass" size=26></td></tr></table>
<input type="submit" value="Enviar">
</ul>
</form>
<ul>
Para darse de alta, envíe un correo al <a href="mailto:[email protected]" target="_blank">Webmaster</a>.
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas.jsp">Volver</a></div>
<%}
else{
user = request.getParameter("name");
password = request.getParameter("pass");
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select * from profesores where user = "" + user + "" and pass = "" + password + """);
if(rs.next()){
if (user.equals(rs.getString("user")) && password.equals(rs.getString("pass"))){
login = true;
//out.println("LOGIN CORRECTO");
//session.setAtributtes("n_atributo", );
//session.getAtributte(" nombre del atributo" );
request.getSession().setAttribute("user", user);
Object var = request.getSession().getAttribute("user");
String s = null;
s = var.toString();
out.println(s + " -------- ");%>
<ul>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=crear">Crear grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=eliminar">Eliminar grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=vaciar_grupos">Vaciar grupos de prácticas.</a></br>
</br>Generar lista de alumnos <form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_genlista.jsp">
<input type="hidden" name="usu" value="<%=user%>">
<input type="hidden" name="con" value="<%=password%>">
<select name="asig">
<%rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}%>
</select>
<select name="option">
<option>Generar HTML</option>
<option>Enviar a mi correo</option>
</select>
<%rs = st.executeQuery("select email from profesores where user = "" + user + """);
rs.next();%>
<input type="hidden" name="email" value=<%=rs.getString("email")%>>
<input type="submit" value="OK">
</form><%=rs.getString("email")%>
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?log=none">Salir</a></div>
<%}
}
else{%>
<ul>
El Login ha fallado.</br>
Compruebe que el usuario y la contraseña son correctos.</br>
Para darte de alta, envía un correo al <a href="mailto:[email protected]" target="_blank">Webmaster</a>.
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}
}
}
else{//ESTAMOS LOGUEADOS, AHORA PODEMOS MANEJAR LOS GRUPOS
action = request.getParameter("action");
if(action == null){
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();%>
<ul>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=crear">Crear grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=eliminar">Eliminar grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=vaciar_grupos">Vaciar grupos de prácticas.</a><br>
</br>Generar lista de alumnos <form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_genlista.jsp">
<input type="hidden" name="usu" value="<%=user%>">
<input type="hidden" name="con" value="<%=password%>">
<select name="asig">
<%rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}%>
</select>
<select name="option">
<option>Generar HTML</option>
<option>Enviar a mi correo</option>
</select>
<%rs = st.executeQuery("select email from profesores where user = "" + user + """);
rs.next();%>
<input type="hidden" name="email" value=<%=rs.getString("email")%>>
<input type="submit" value="OK">
</form><%=rs.getString("email")%>
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?log=none">Salir</a></div>
<%}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}
}
else{
if(action.equals("crear")){//CREAR GRUPO
if((request.getParameter("ngru") == null || request.getParameter("ngru")== "")||
(request.getParameter("maxa") == null || request.getParameter("maxa")== "")){%>
<form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_crea.jsp">
<ul>
Asignatura: <select name="asig">
<%Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select asignatura from asignaturas order by asignatura asc");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}%>
</select>
<table border="0"><tr>
<td>Nº de grupos: </td>
<td><select name="ngru">
<option></option>
<%for(int i=1;i<=50;i++){%>
<option><%=i%></option>
<%}%>
</select> </td>
</tr>
<tr>
<td>Nº de componentes: </td>
<td><select name="maxa">
<option></option>
<%for(int i=1;i<=80;i++){%>
<option><%=i%></option>
<%}%>
</select> </td>
</tr>
<tr><td>Contraseña: </td><td><input type="password" name="pass" size=26> (opcional)</td></tr>
<tr><td>Confirmar contraseña: </td><td><input type="password" name="cpas" size=26> (opcional)</td></tr>
<tr><td>Comentarios para los alumnos: </td><td><textarea name="texto" maxlength="1000" cols="80"></textarea> (opcional)</td></tr></table>
<input type="submit" value="Crear">
</ul>
</form>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
}
else{
if(action.equals("eliminar")){%>
<ul>
Elimina los grupos de prácticas creados para la asignatura. (cuidado, no se pide confirmación)
</ul>
<ul><form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_elimina.jsp">
<input type="hidden" name="user" value="<%= user%>">
<input type="hidden" name="pass_user" value="<%= password%>">
Asignatura: <select name="asig">
<%Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0 order by asignatura asc");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}%>
</select>
<input type="submit" value="Eliminar">
</form></ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
else{
if(action.equals("vaciar_grupos")){%>
<ul>
Elimina los alumnos apuntados a los grupos de prácticas de la asignatura. (cuidado, no se pide confirmación)
</ul>
<ul><form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_vacia.jsp">
<input type="hidden" name="user" value="<%= user%>">
<input type="hidden" name="pass_user" value="<%= password%>">
Asignatura: <select name="asig">
<%Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0 order by asignatura asc");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}%>
</select>
<input type="submit" value="Vaciar">
</form></ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
else{
%>-<%
}
}
}
}
}%>
</body>
</html>
supongo que mi error se debe a fallo de concepto, porque yo pensaba que cada vez que un usuario abria un .jsp en el servidor (jboss) este digamos que "creaba una copia" para el, en vez de lo que realmente supongo que hace, que es cargar la pagina solicitada para que este disponible para cualquier usuario que la pida.... ayuda!!! os pongo el codigo para que os riais de mi:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%! boolean login = false;
String action = null, user = null, password = null, ip = null;%>
<h3>Área de profesores</h3>
<%if((request.getParameter("log") != null) && (request.getParameter("log") != "")){
login = false;
}
if(!login){//NO ESTAMOS LOGUEADOS, PEDIMOS USER Y PASS
if ((request.getParameter("name") == null) || (request.getParameter("name")== "")) {%>
<form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">
<ul>
<table border="0"><tr><td>Usuario: </td><td><input type="text" name="name" size=26></td></tr>
<tr><td>Contraseña: </td><td><input type="password" name="pass" size=26></td></tr></table>
<input type="submit" value="Enviar">
</ul>
</form>
<ul>
Para darse de alta, envíe un correo al <a href="mailto:[email protected]" target="_blank">Webmaster</a>.
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas.jsp">Volver</a></div>
<%}
else{
user = request.getParameter("name");
password = request.getParameter("pass");
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select * from profesores where user = "" + user + "" and pass = "" + password + """);
if(rs.next()){
if (user.equals(rs.getString("user")) && password.equals(rs.getString("pass"))){
login = true;
//out.println("LOGIN CORRECTO");
//session.setAtributtes("n_atributo", );
//session.getAtributte(" nombre del atributo" );
request.getSession().setAttribute("user", user);
Object var = request.getSession().getAttribute("user");
String s = null;
s = var.toString();
out.println(s + " -------- ");%>
<ul>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=crear">Crear grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=eliminar">Eliminar grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=vaciar_grupos">Vaciar grupos de prácticas.</a></br>
</br>Generar lista de alumnos <form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_genlista.jsp">
<input type="hidden" name="usu" value="<%=user%>">
<input type="hidden" name="con" value="<%=password%>">
<select name="asig">
<%rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}%>
</select>
<select name="option">
<option>Generar HTML</option>
<option>Enviar a mi correo</option>
</select>
<%rs = st.executeQuery("select email from profesores where user = "" + user + """);
rs.next();%>
<input type="hidden" name="email" value=<%=rs.getString("email")%>>
<input type="submit" value="OK">
</form><%=rs.getString("email")%>
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?log=none">Salir</a></div>
<%}
}
else{%>
<ul>
El Login ha fallado.</br>
Compruebe que el usuario y la contraseña son correctos.</br>
Para darte de alta, envía un correo al <a href="mailto:[email protected]" target="_blank">Webmaster</a>.
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}
}
}
else{//ESTAMOS LOGUEADOS, AHORA PODEMOS MANEJAR LOS GRUPOS
action = request.getParameter("action");
if(action == null){
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();%>
<ul>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=crear">Crear grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=eliminar">Eliminar grupos de prácticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=vaciar_grupos">Vaciar grupos de prácticas.</a><br>
</br>Generar lista de alumnos <form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_genlista.jsp">
<input type="hidden" name="usu" value="<%=user%>">
<input type="hidden" name="con" value="<%=password%>">
<select name="asig">
<%rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}%>
</select>
<select name="option">
<option>Generar HTML</option>
<option>Enviar a mi correo</option>
</select>
<%rs = st.executeQuery("select email from profesores where user = "" + user + """);
rs.next();%>
<input type="hidden" name="email" value=<%=rs.getString("email")%>>
<input type="submit" value="OK">
</form><%=rs.getString("email")%>
</ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?log=none">Salir</a></div>
<%}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}
}
else{
if(action.equals("crear")){//CREAR GRUPO
if((request.getParameter("ngru") == null || request.getParameter("ngru")== "")||
(request.getParameter("maxa") == null || request.getParameter("maxa")== "")){%>
<form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_crea.jsp">
<ul>
Asignatura: <select name="asig">
<%Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select asignatura from asignaturas order by asignatura asc");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}%>
</select>
<table border="0"><tr>
<td>Nº de grupos: </td>
<td><select name="ngru">
<option></option>
<%for(int i=1;i<=50;i++){%>
<option><%=i%></option>
<%}%>
</select> </td>
</tr>
<tr>
<td>Nº de componentes: </td>
<td><select name="maxa">
<option></option>
<%for(int i=1;i<=80;i++){%>
<option><%=i%></option>
<%}%>
</select> </td>
</tr>
<tr><td>Contraseña: </td><td><input type="password" name="pass" size=26> (opcional)</td></tr>
<tr><td>Confirmar contraseña: </td><td><input type="password" name="cpas" size=26> (opcional)</td></tr>
<tr><td>Comentarios para los alumnos: </td><td><textarea name="texto" maxlength="1000" cols="80"></textarea> (opcional)</td></tr></table>
<input type="submit" value="Crear">
</ul>
</form>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
}
else{
if(action.equals("eliminar")){%>
<ul>
Elimina los grupos de prácticas creados para la asignatura. (cuidado, no se pide confirmación)
</ul>
<ul><form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_elimina.jsp">
<input type="hidden" name="user" value="<%= user%>">
<input type="hidden" name="pass_user" value="<%= password%>">
Asignatura: <select name="asig">
<%Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0 order by asignatura asc");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}%>
</select>
<input type="submit" value="Eliminar">
</form></ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
else{
if(action.equals("vaciar_grupos")){%>
<ul>
Elimina los alumnos apuntados a los grupos de prácticas de la asignatura. (cuidado, no se pide confirmación)
</ul>
<ul><form method="post" action="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores_vacia.jsp">
<input type="hidden" name="user" value="<%= user%>">
<input type="hidden" name="pass_user" value="<%= password%>">
Asignatura: <select name="asig">
<%Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/gpracticas");
st = conn.createStatement();
rs = st.executeQuery("select asignatura from asignaturas where ngrupos > 0 order by asignatura asc");
while(rs.next()) {%>
<option><%= rs.getString("asignatura") %></option>
<%}
}
catch (Exception ex) {%>
<table>
<tr><td>
<%out.println(ex);%>
</td></tr>
</table>
<%}
finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}%>
</select>
<input type="submit" value="Vaciar">
</form></ul>
<div class="volver"><a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp">Volver</a></div>
<%}
else{
%>-<%
}
}
}
}
}%>
</body>
</html>
bueno, al final lo solucione con lo de sessions, una tarde quemado pero lo saque
