Sessão de Usuário com Struts

4 respostas
J

Ola Pessoal?

Seguinte alguem sabe me dizer como configurar uma sessão de usuário eis, o meu problema é o seguinte, quando eu logo a sessão é aberta e me aparece o nome do usuário na tela mas quando passo para outra página a sessão se desfaz parece que cai a sessão eis o código para login:

import org.apache.struts.action.*;
/**
 * @author wajunior
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */ 
public class Login extends Action {
	
	private Connection con=null;
	Statement stmt = null;
	ResultSet rs = null;
	static String nome;
	
	private Connection getConnection(){
				try {
					Class.forName("com.mysql.jdbc.Driver");
					con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sitewrhjweb?user=root&password=root&useUnicode=true");
				} catch (java.lang.ClassNotFoundException e) {
					System.err.print("ClassNotFoundException: "+ e.getMessage());
				}catch (java.sql.SQLException se) {
					System.err.print("SQLException: " + se.getMessage());
				}catch(Exception e){
					System.err.println("Exception Encountered: "+  e.getMessage());
					e.printStackTrace();
				}
				return con;
		  }		  
		  
//	public LinkedList getUserList() throws SQLException {
	public boolean ehValido(User user) throws SQLException{
		
		UserView view = null;
		PreparedStatement stmt = null;
		  con = getConnection();	  
		  stmt = con.prepareStatement("select username from user where address = ? and password = ?");	
		  stmt.setString(1, user.getAddress());
		  stmt.setString(2, user.getPassword());
		  ResultSet rs = stmt.executeQuery();
		  boolean valido = rs.next();  
		  nome = rs.getString("username");
		  rs.close();
		  stmt.close();

	 return valido;

	
 }
 
 public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response)
	  throws Exception{
	 	
		 LoginForm formulario = (LoginForm) form;
		 UserView userView = formulario.getUserView();
		 User user = formulario.getUser();
		  int cod = 1;
		 HttpSession session = request.getSession();
		 session.setAttribute("autorizado",user);
		 
		 if (!ehValido(user)){ 
			 return map.findForward("erro");
		 }else{
			 return map.findForward("ok");
		 }
	  }
	  
	  
	public static String getNome(){return nome;}

}

eis o codigo da pagina quando logo:

<%if (session.getAttribute("autorizado") == null){ %>  
      Seja Bem Vindo ! <%=loginAdminServlet.getNome()%> <a href='<% request.getSession().invalidate();%>'>Sair</a>
   <%}else{
     if (loginAdminServlet.getNome()== null) { %>
         Para efetuar o Login Clique
      <a href="index-login.jsp">aqui</a>
      <%}%>
   <%}%>

Alguém pode me ajudar ? alguma dica importante que estou esquecendo?

Obrigado Pessoal!

4 Respostas

F

Olá JavaDabas.
Existe um tutorial de sistema de Login fácil de entender e simples no site do JairElton.

Abraço.

E

Cara pq vc nao faz essas verificações na sua Action ja que esta utilizando o struts !?

M

Sugiro que crie um filtro para não permitir acesso direto aos JSP’s, e remova estes scriplets que fica muito feio assim.

:okok:

J

Como assim pode me mostrar um exemplo ?

Falo !

Criado 24 de agosto de 2006
Ultima resposta 24 de ago. de 2006
Respostas 4
Participantes 4