Sessão jsp-servlet

10/11/2017

0

Estou com um grande problema.

Fiz uma aplicação JSP/Servlet - onde os professores acessam, colocam senha e usuário que é consultado em um banco de dados, aparece uma lista dos alunos que são para eles. Eles clicam em um desses alunos aparece os dados deles, podem até dar um aceite nesse aluno, como também rejeitá-lo. Quando faz isso retorna para a tela anterior e vê a lista atualizada desses alunos. Tem sessão na página tudo funcionando beleza, nos testes.

Porém agora que todos estão acessando. Quando vários professores estão acessando e dão voltar, no navegador, saindo da tela com os dados do aluno, acessa a lista de outro professor que está no momento logado em outro lugar.

Ou seja, está misturando os acessos dos professores. Isso não ocorre quando loga, mas quando volta da página individual do aluno.

A página tem sessão, mas ela continua sendo do professor correto, apenas o acesso às informações do banco de dados que bagunça. Tem como vincular a sessão ao acesso ao banco de dados?

O que faço???
Joel

Joel

Responder

Posts

10/11/2017

Deivid Nascimento

como esta criando as sessoes:? pois pelo que parece todos estao no escopo de aplicacao onde todos consegue acessar o mesmo dado.
Responder

10/11/2017

Joel

Uso MVC.
O acesso é feito através de uma página onde o usuário, coloca o usuário e senha. Isso chama uma servlet bdlogin.

--------------
public class BdLogin extends HttpServlet {
private Connection connection;

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String status;
String usuario= request.getParameter("txtusuario");
String senha= request.getParameter("txtsenha");
String id;
String pass;
String orientador;
id =null;
pass=null;
orientador=null;


try{
this.connection=ConnectionFactory.getConnection();
PreparedStatement stmt= this.connection.prepareStatement("select * from professores where id ='"+usuario+"'");
ResultSet rs=stmt.executeQuery();

while(rs.next()){
id=rs.getString("id");
pass=rs.getString("senha");
orientador=rs.getString("orientador");

}
rs.close();
stmt.close();
connection.close();
}catch(java.lang.NullPointerException e){
System.out.println("servidor1 fora");
}catch(SQLException e){
e.printStackTrace();
}


if(usuario.equals(nusp) & senha.equals(pass)){

try {
ContatoDAO dao= new ContatoDAO();
dao.setupusuario(orientador);


}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//sessao
HttpSession sessao = request.getSession();
// setando um atributo da sessao
sessao.setAttribute("usuario", orientador);

response.sendRedirect("lista_candidatos.jsp");


}else{

// no logout invalido a sessao

HttpSession sessao = request.getSession();
sessao.invalidate();

response.sendRedirect("index.jsp");
}

}
}
Responder

10/11/2017

Joel

Depois no ContatoDao, recebo o "orientador" e uso como where para o select, filtrando para selecionar os candidatos desse orientador.

Tudo isso funciona, o problema é quando volta que acessa dados de outro computador conectado, mesmo em local diferente.

Como se fosse outra pessoa voltando. Em outra máquina.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar