Hola, auqnue el título es sobre página web la duda es de programación así que he decidido poner la duda aquí.
Antes de exponer todo el royo que tengo akí montado y poner el código quiero aclarar que no tiene nada que ver con el hack es pura programación pero es el primer sítio que se me ha ocurrido entrar.
La cosa es, tengo un paquete en el que están las siguietnes clases: Usuario, Usuarios, UsuariosDao, UsuariosMusqlDao y UsuariosFacade. Usuario tiene nombre, pass, clase de usuario (0 no logueado, 1 admin, 2 public) y tipo (admin, public). Usuarios tendría un array de usaurios y las demás pues todo para el facade.
Tengo el siguiente jsp: login.jsp
<jsp:include page="../includes/header.jsp"/>
<jsp:include page="../includes/menu.jsp"/>
<jsp:include page="../includes/content.jsp"/>
<form action="login" method="post">
<table>
<tr>
</tr>
<td>Erabiltzailea :</td><td><input type="text" name="username" size="10" value=""/></td>
<tr>
<td>PasaHitza :</td><td><input type="password" name="password" size="10" value=""/></td>
</tr>
<tr>
<td><input type="submit" value="sartu"/></td>
</tr>
</table>
</form>
<jsp:include page="../includes/sidebar.jsp"/>
<jsp:include page="../includes/footer.jsp"/>
Para esto tengo un servlet, Servletlogin.java:
public void execute(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
String returnCode="/pages/login.jsp";
String username=req.getParameter("username");
String password=req.getParameter("password");
UserVo user=null;
UserFacade facade=new UserFacade();
UsersVo users=facade.getUsers();
for(int i=0;i<users.getLength();i++){
if(users.getUser(i).getUsername().equals(username)&&users.getUser(i).getPassword().equals(password)){
user=users.getUser(i);
user.setType(i);
System.out.println("He elegido el usuario "+user.getUsername());
if(user.getMota().equals("Admin"))
returnCode="/pages/admin.jsp";
else{
if(user.getMota().equals("Public"))
returnCode="/pages/diskak.jsp";
}
}
}
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher(returnCode);
dispatcher.forward(req, resp);
}
Y para finalizar tengo el siguietne jsp que pertenecería a la parte de css, sidebar.jsp:
<jsp:useBean id="user" class="edu.mondragon.eps.jaagirre.webaplikazioak.ariketak.diskakazterketa.users.UserVo" scope="session" />
<jsp:useBean id="menuak" class="edu.mondragon.eps.jaagirre.webaplikazioak.ariketak.diskakazterketa.menu.Menuak" scope="session" />
</div>
<!-- end #content -->
<div id="sidebar">
<ul>
<li>
<h2>Web Aplikazioak Azterketa</h2>
<b>MGEP Informatikako 3.maila</b>
<ul>
<%
System.out.println(user.getUsername()+":"+user.getType());
if (user == null || user.getType()== 0 ){
%>
<li><a href="<%=request.getContextPath()%>/login">Login</a></li>
<li><a href="<%=request.getContextPath()%>/register">Erregistratu</a></li>
<% }else{ %>
<li><a href="<%=request.getContextPath()%>/logout">Logout(<%=user.getUsername() %>)</a></li>
<% } %>
</ul>
</li>
</font>
</td>
</tr>
<!-- end #sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end #page -->
Bueno la cosa es, como podeis ver en el sidebar.jsp tengo tengo el print para que me salga el usuario y el tipo de usuario y si no estoy logueado saldrá una cosa y si estoy logeado saldrá otra cosa.
Pues bien, tengo una index.jsp que simplente hay que darle a login para que vaya a la parte de poner el nombre de usuario y password.
Cuando pongo usuario y pasword en el ServletLogin.java una vez que le doy al boton submit si es admin, me va a la parte de admin y si es usuario publico me va a la página que le digo, pero es como si no se hubiese logeado. Es decir cuando me meto con un usuario en la esquina tendría que aparece Logout(nombre de usaurio) para darle a ese link y deslogearse. Pero la cosa es que me va a las páginas que le digo pero como si no se hubiese logeado.
Espero que la duda haya quedado clara
Un saludo.