Sessão com layout com Struts Tiles

0 respostas
J

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 !  
      <c:choose>
        <c:when test="${empty user}"> Você não esta Logado ! </c:when>
        <c:otherwise> ${user.login} <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

Criado 18 de agosto de 2006
Respostas 0
Participantes 1