Olá pessoal
resolvi aquele problema
meu servilet ficou assim:
package controler;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import dao.LogarDAO;
import javax.swing.JOptionPane;
/**
*
* @author hallan medeiros
*
*/
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;
public Login() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
/**
* Vai processar a valida??o do usu?rio e senha
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(); //obtem a sessao do usuario, caso exista
String user="ramon";
String user2="ramon";
String email = request.getParameter("email_aluno"); // Pega o Login vindo do formulario
String senha = request.getParameter("senha_aluno"); //Pega a senha vinda do formulario
LogarDAO dao = new LogarDAO(); //cria uma instancia do DAO usuario
dao.setEmail(email);
dao.setSenha(senha);
user = dao.LoginAluno(email, senha);
user2 = dao.LoginProfessor(email, senha);
//se nao encontrou usuario no banco, redireciona para a pagina de erro!
if (user!=null) {
//se o dao retornar um usuario, coloca o mesmo na sessao
session.setAttribute("logado", "1");
request.getRequestDispatcher("index.jsp" ).forward(request, response);
}
else{
if(user2!=null){
session.setAttribute("logado", "1");
request.getRequestDispatcher("new-lesson.jsp").forward(request, response);
}else{
session.invalidate();
request.getRequestDispatcher("login.jsp" ).forward(request, response);
JOptionPane.showMessageDialog(null, "Usuário não encontrado");
}
}
if(request.getParameter("acao").equals("logout")) {
// no logout invalido a sessao
HttpSession sessao = request.getSession();
sessao.invalidate();
// chamo novamente a pagina principal, que deve chamar a p?gina index
// que ira mostrar o formulario para o usu?rio logar
response.sendRedirect("login.jsp");
}
}
}
porém agora não consigo com que ele encerre a sessão quando clico no link logout que tenho na minha page index, ele verifica dentro da page index e se eu não fizer o login não consigo acessar ela, mas ele não encerra a sessão quando clico em logout,
coloquei esse if na index para que ele peça o login quando for entra nela
<%
// verificando se tem um atributo login na sessao
// se tiver vai continuar e mostrar o menu
if(session.getAttribute("logado") != null) {
%>
<%
// se não existir um login na sessao,
// vai enviar para a página de login novamente
} else {
%>
<jsp:forward page="login.jsp"></jsp:forward>
<%
}
%>
e coloquei esse código no link logout:
<a href="Login?acao=logout">Logout</a>
ele chama a ação logar que está no meu Servilet
porém ele não encerra a sessão, o que estou fazendo de errado?
se alguém puder ajudar…
obrigado!