Ajuada com SESSION (HttpSession)

Tenho um servlet Login que autentica o usuário.
Um entra com a senha e login “usuario” e o outro com senha e login “admin”,
o “usuario” só pode ter a opção de Listar e o “admin” tem todas as opções. Isso em uma página jsp.
A minha dificuldade é: como faço para ter uma sessão diferente.
Se eu entro com “usuario” e depois em uma nova página como “admin” o “admin” substitui o “usuario”.

Código do Servlet Login

package servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class ServletLogin extends HttpServlet implements Servlet
{
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
doPost(request,response);
}

protected void doPost(HttpServletRequest request, 
					  HttpServletResponse response) 
					  throws ServletException, IOException
{
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	
	if(username.equals("admin") && password.equals("admin") ||
			username.equals("usuario") && password.equals("usuario"))	  
	{
		HttpSession session = request.getSession();
		HttpSession session2 = request.getSession(); [b]Não resolve?[/b]
		
		if(username.equals("username"))
		{	
		    session.setAttribute("username",username);			
		}
		else
			session2.setAttribute("username",username); 
		
	    RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
	    rd.forward(request,response);
	}		
	else
	{
		response.sendRedirect("login.jsp");
	}
}

}

Cara.

A sessão é controlada pelo container.

E, falando a grosso modo, o container cria uma sessão para cada instância do browser.

Então, em teoria, para vc ter 2 sessões, é só abrir 2 janelas do browser.

Fazer isso:

HttpSession session = request.getSession();
HttpSession session2 = request.getSession(); Não resolve? 

não adianta absolutamente nada. Pois está retornando a mesma instância de session, pois vc está usando a mesma request(valores).

Recomendo vc dar uma estudada sobre os conceitos web. O Livro “Use a Cabeça! JSP e Servlets” é muito bom para explicar estes pontos!

Um abraço.

Valeu! Vou estudar mais essa questão. :lol: