Data em JSP?

6 respostas
C

E ai galera blz.

Estou aqui novamente para pedir SOCORRO.

Queria saber como manipular Data em JSP.
Exemplo:

Um usuario se cadastra na data 00/01/2004, e na data 02/05/2004 ele tem que ser retirado do banco de dados.

eu só quero saber como faço para o sistema verificar esse tempo. e que ele ainda me dê um aviso quando faltar 10 dias ou 4 sei lá.

como fazer ???

valeu

6 Respostas

G

Olá,

Esse tratamento de Datas e no seu caso especificamente de Controle de Acesso ao Sistema não dever ser realizado na sua camada de View (JSP). Deve ser feito na camada de Controle (Controller). Isso logicamente se você estiver utilizando o modelo MVC (Model - View - Controller).

Você deve ter um campo em uma tabela na sua Base de Dados que contém a Data de Expiração do usuário. Quando o usuário efetuar o login no Sistema, você verifica a data atual e compara com o valor do campo da sua tabela, entendeu? Se for maior, você nega a entrada do usuário no sistema e assim por diante.

Assim o seu sistema ficará mais estruturado!

Um abraço!

Espero ter ajudado!

George.

C

Concordo com o georgemazza … mas se for só com relação ao código … você vai ter que criar substrings dela … ou seja … fica mais ou menos assim …

String data1 = “10/05/2004”;

String diaData1 = data1.substring(0,2);

String mesData1 = data1.substring(3,5);

String anoData1 = data1.substring(6,10);
String data2 = “20/05/2004”;

String diaData2 = data2.substring(0,2);

String mesData2 = data2.substring(3,5);

String anoData2 = data2.substring(6,10);

e então você cria outras duas Strings recebendo elas ao contrário …

String dataRes1 = anoData1.concat(mesData1).concat(diaData1);
String dataRes2 = anoData2.concat(mesData2).concat(diaData2);

Depois disso você compara os inteiros relativos às Strings dataRes1 e dataRes2:

if( Integer.parseInt(dataRes1)  > Integer.parseInt(dataRes2) ) {

//aceitar

}

else {

// n aceitar!

}

Espero que tenha ajudado … mas não se esqueça … regras de negócio são sempre implementadas na camada controladora … não na camada de visualização!

[]s

C

Blz, mas vcs estão falando nessa camada de controle que seria quando eu valido o usuário ???

não tem outra maneira de fazer que seja automático tipo o cara não precisa logar no sistema para fazer essa verificação, quando uma determinada página for carregada ela faz essa verificação no sistema para exibir os dados, se a data estiver expirada ele não mostra, mostra apenas quem ainda está no praso. entenderam ???

e queria saber qual classe usar, e como obter a data atual do servidor, não da máquina do cara.

e como comparar ???
valeu

PS: obrigado ao clandestino e ao georgemazza pela ajuda

G

Beleza,

Se vc estiver usando Struts, antes de chamar essa JSP você passará por uma Action onde você poderá tratar essa data e redirecionar para a página do sistema ou para uma página de proibição de acesso.

Caso vc nao use Struts e/ou queira chamar via Servlet, vc poderá tratar essas datas nos métodos doGet ou doPost e redirecionar para a página devida.

Mas se você chamar direto essa JSP, então você pode usar a dica que o Clandestino comentou, ok?

Espero ter ajudado!

George.

D

Ae Clandestino, essa tua solucao funciona, mas o java ja da um puta suporte para trabalhar com Datas, naum creio q transformar pra string seja melhor…

tente fazer assim:

java.sql.Date data = // pega a data de expiracao do banco de dados
java.util.Date hoje = new Date();

if (! hoje.before(data) )
{
    // naum deixa o cara logar
}
else
{
    // libera pro cara
}

acho q assim vai dar certo, talvez tenha q converter de java.sql.Date para java.util.Date, mas testa sem converter pra ver se da certo…

C

Pooo … hehehe … dessa eu não sabia … :oops:

vivendo e aprendendo … :wink:

[]s

Criado 6 de setembro de 2004
Ultima resposta 6 de set. de 2004
Respostas 6
Participantes 4