Erro ao obter valor da sessão

1 resposta
E

Boa tarde pessoal… estou com um problema aqui mas não estou conseguindo vizualizar o erro!!
estou querendo fazer o seguinte
tenho um opção no menu chamado administrar… ela tem que fazer o seguinte… na primeira vez que ele entrar no administar aparece a tela de login, se o usuário fizer o login aparece a tela de opcões do administrador. já na segunda vez que ele clicar no administrar já tem que ir para a tela opções do administrador visto que ele já fez login uma vez… meu código está abaixo e gostaria de saber se vcs podem me ajudar nesse erro…

qdo clico no login ele chama admlogin.jsp
(fragmento de codigo)

<%

if (session.getAttribute(autorizado)!= null)

response.sendRedirect("/ProjetoFarmacia/admOpcoes.jsp");

%>
... Login: Senha: ...

ele chama o servlet loginAdminServlet… descrito abaixo…

public class loginAdminServlet extends HttpServlet{

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{

response.setContentType(“text/plain”);

String login = request.getParameter(“login”);
String senha = request.getParameter(“senha”);

String sql = “Select * from administradores where login = '” + login + “’ and senha = '” + senha + “’”;

Connection conn = null;

Statement stmt =  null;

ResultSet rs   = null;
try{

conn = ConnectionManager.getConexao();

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

if(rs.next()){

int cod = 1;

HttpSession session = request.getSession();

session.setAttribute(autorizado”,new Integer(cod));

RequestDispatcher rd = request.getRequestDispatcher("/admOpcoes.jsp");

rd.forward(request,response);

}else{

RequestDispatcher rd = request.getRequestDispatcher("/erroLogin.jsp");

rd.forward(request,response);

}	

}catch(SQLException e){

RequestDispatcher rd = request.getRequestDispatcher("/errobd.jsp");

rd.forward(request,response);

}catch(FarmaciaException e){

e.printStackTrace();

RequestDispatcher rd = request.getRequestDispatcher("/errobd.jsp");

rd.forward(request,response);

}

finally{

ConnectionManager.closeAll(conn,stmt,rs);

}

}

}

então é isso pessoal…não estou entendendo pq ele não vai para a admOpçoes.jsp direto da segunda vez…

valew galera …

1 Resposta

Pedrosa

Use a tag code para postar seus códigos aqui, no seu caso eu isolaria essa parte de login em um método do tipo boolean e redirecionaria direto pela servlet, de preferência coloque esse método em uma outra classe .

algo + - assim:

Login login = new Login();
if(login.validaLogin(usuario,senha)){
  direciona para onde quizer
}
Criado 10 de agosto de 2006
Ultima resposta 10 de ago. de 2006
Respostas 1
Participantes 2