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()%>&nbsp;<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 ?