necesito ayuda con logins en jsp

phenomnon
06 de Octubre del 2005
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&iacute;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&iacute;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&aacute;cticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=eliminar">Eliminar grupos de pr&aacute;cticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=vaciar_grupos">Vaciar grupos de pr&aacute;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&iacute;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&aacute;cticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=eliminar">Eliminar grupos de pr&aacute;cticas.</a></br>
<a href="/webfi/html/alumnos/static.do?pagina=./alumnos/practicas_profesores.jsp?action=vaciar_grupos">Vaciar grupos de pr&aacute;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&aacute;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&aacute;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>

phenomnon
06 de Octubre del 2005
bueno, al final lo solucione con lo de sessions, una tarde quemado pero lo saque

phenomnon
06 de Octubre del 2005
estas dos lineas en realidad no hacen nada, son restos de mis intentos de solucionar el problema:

request.getSession().setAttribute("user", user);
Object var = request.getSession().getAttribute("user");