Sessão de Usuário com Struts

Ola Pessoal,

Seguinte alguém sabe me dizer como manter um sessão de usuário em um sistema?

        Tenho uma aplicação feita que na hora em que logo a sessão aparece legal depois que acesso outra pagina do sistema a sessão cai se disfaz, retornando sem sessão o codigo na pagina segue abaixo:

<%if (session.getAttribute("autorizado") == null){ %> Para efetuar o Login Clique <html:link action="/viewsignin">aqui</html:link> <%}else{%> Seja Bem Vindo ! <%=Login.getNome()%> <a href='<% request.getSession().invalidate();%>'>Sair</a> <%}%>

eis o codigo da classe que faz a autenticação:

[code]package net.jspnet.internet.security;

import java.sql.;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.http.
;
import net.jspnet.internet.businessobjects.view.UserView;
import net.jspnet.internet.businessobjects.;
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/users?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 email = ? and password = ?");	
	  stmt.setString(1, user.getAddress());
	  stmt.setString(2, user.getPassword());
	  ResultSet rs = stmt.executeQuery();
	  boolean valido = rs.next();
	//  if (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;
 User user = formulario.getUser();
 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;}

}[/code]

Alguém pode me ajudar e ver o que esta errado ou faltando ?

opa,

Dúvidas de struts, nada melhor do que postar no fórum de frameworks! :joia:

sugestão, pegue este objeto da sessão e valide apenas se ele é do tipo Usuario, não há necessidade de ficar checando isto no banco de dados a todo momento.

:okok: