bom dia,
Estou com o seguinte probelma:
quero encerrar uma sessão usando o mesmo servlet do login (não sei se é o mais indicado)
meu link sair
<a class="linkMenorCinza" href="LoginServlet?logout=true">Sair</a>
Meu método doPost
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String logout = (String) request.getParameter("logout");
//HttpSession session = request.getSession();
if ("true".equals(logout)){
// session.invalidate();
response.sendRedirect("/treinamento/treinamento/geral/login.jsp");
}
}
mas um erro é retornado quando declaro um objeto session no doGet:
Cannot create a session after the response has been committed
Como devo proceder para tal fim (logOut)?
abaixo o doPost onde pego a sessão (também não sei se é a melhor forma):
[code]protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(“doPost”);
doGet(request, response);
String nome = (String) request.getParameter("login");
//String senha = (String) request.getParameter("senha");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
ServletContext contextParam = config.getServletContext(); //Verificar por que precisa do argumento passado como parâmetro para o método init
String login = contextParam.getInitParameter("user"); //'pega' o valor no <context-param> do web.xml
HttpSession session = req.getSession();
if(nome.equals(login)){
session.setAttribute("logado", nome);
request.getRequestDispatcher("/treinamento/aluno/index.jsp").forward(request, response);
}else{
res.sendRedirect("/treinamento/treinamento/geral/login.jsp");
}
}[/code]
Obs: sempre q clico no link o doGet é chamado.
desde já agradeço a ajuda.