Ola Pessoal ! Saudações ...
Seguinte, estou tendo problemas com minha pagina estou colocando autenticação de usuário e estou também usando para o layout da pagina o Struts Tiles.
Quando faço login aparece o nome, apelido da pessoa que logou na pagina de boas vindas mas quando acesso outra pagina parece que a sessão cai não aparece o nome e apelido e outra quando logo desaparece um dos menus do layout ...
É muito extranho isso, é a primeira vez que uso o Struts Tiles, o problema de que parece que cai a sessão é muito esquisito.
Aqui estão os fonts:
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/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(true);
session.setAttribute("user",new Integer(cod));
if (!ehValido(user)){
return map.findForward("erro");
}else{
return map.findForward("ok");
}
}
public static String getNome(){return nome;}
}
aqui esta a pagina jsp:
<table width="100%" height="57" align='center' bgcolor="#f5f5f5" >
<tr>
<td width="58%">Seja Bem Vindo ! &nbsp;
<c:choose>
<c:when test="${empty user}"> Voc&ecirc; n&atilde;o esta Logado ! </c:when>
<c:otherwise> ${user.login}&nbsp;<a href='<%= response.encodeURL("index.jsp?logoff=true") %>'>Sair</a></c:otherwise>
</c:choose></td>
<td width="42%" height="21"></td>
</tr>
<tr>
<td height="23" colspan="2">Confira os topicos sobre TI </td>
</tr>
</table>
quando acesso outra página contendo os tags jstl que coloquei não aparece o usuário logado, mas estou declarando os tags c.tld na página.
O que posso fazer ? para mudar isso ? sera o Struts Tiles sera que devo mudar o layout da página não usando o Tiles?
Fiz auteração na atenticação usando o atenticação do TomCat e deu o mesmo problema !
Aguardo alguma ajuda.
Valeu galera