Include

Pessoal, em ASP ou PHP quando necessito criar uma função onde poderá ser utilizada em várias partes do sistema, geralmente é criado um arquivo com esta função e quando necessário o uso é só fazer um include.

Para JSP isso é correto?
Quando temos uma função que poderá ser usada em várias partes do sistema(validação de um cpf, por exemplo), o que é correto fazer?

Valeu!

o correto é usar o JSP apenas como camada de VIEW e suas lógicas de negócios, validações, conexão com o BD, etc etc etc, através de um servlet :wink:

Comece estudando orientação a objetos que vc vai ver maneiras muito melhores de reaproveitar “funções”.

E tente não comparar a maneira que vc programava em ASP e PHP com Java, senão vc não vai aproveitar nem um décimo do que o Java oferece.

[]'s

Olá!
Bom… respondendo a tua pergunta.
Ao meu ponto de vista, o mais simples é vc fazer uma classe normal(q não seja jsp nem servlet) e criar método estáticos para serem usados.
Ai no caso basta dentro do JSP vc colocar

NomeDaClasse.metodoEstatico();

Ai vc pode usar esse método quantas vezes quiser :wink:

Espero ter ajudado!

André, eu até pensei mesmo em usar métodos static.

A questão é, para cada função que eu tenha seria uma nova classe?
Tipo uma classe para validar CPF, uma outra para CNPJ, etc…etc…

[quote]Comece estudando orientação a objetos que vc vai ver maneiras muito melhores de reaproveitar “funções”.

E tente não comparar a maneira que vc programava em ASP e PHP com Java, senão vc não vai aproveitar nem um décimo do que o Java oferece.

[]'s[/quote]

Rodrigo, com a sua experiência vc recomenda essa forma a mais apropriada, visto que vc disse no plural “maneiras”

A maneira mais básica de separar camadas em aplicações web com java é usar Servlets + JSP.

E te digo, o negócio é bom cara :smiley:

Pois se você ficar enfiando todo o código no meio do html … bem … isso é porco hehe e digo isso com toda certeza pois já fiz muito disso :smiley:

Lipe, tudo bem…está bem claro pra mim sobre a separação de tudo.

Mas minha dúvida não bem isso. O que eu queria saber baseado na experiência que vc´s possuem em JAVA é qual a maneira mais usada para reutilizar uma função(no caso método).

Acho que com um exemplo fica melhor de entender:
Vamos dizer que eu tenha um bean e nele eu preciso validar o CPF por exemplo e lógicamente não vou escrever toda hora o código quando for utilizar.

O andre_a_s disse em criar classes e nelas terem métodos estáticos e quando precisar d um método eu faço a chamada.

E a pergunta é: Este é o jeito melhor?
Tipo criar um diretório com classes…tipo uma para validar CPF, outra CNPJ, etc…etc…

Entendi :smiley:

Bem eu faço quase do mesmo jeito, mas sem os métodos estáticos.

[quote=“LIPE”]Entendi :smiley:

Bem eu faço quase do mesmo jeito, mas sem os métodos estáticos.[/quote]

Ou seja, ao invés de método estático vc cria uma classe e quando tem que validar um CPF instancia passando o valor para o construtor.

  • ou - o que vc faz?

[quote=“prog”][quote=“LIPE”]Entendi :smiley:

Bem eu faço quase do mesmo jeito, mas sem os métodos estáticos.[/quote]

Ou seja, ao invés de método estático vc cria uma classe e quando tem que validar um CPF instancia passando o valor para o construtor.

  • ou - o que vc faz?[/quote]

Uma outra idéia é usar uma Framework MVC (no caso o Webwork2) e essas validações podem ser feitas através de interceptors :wink:

Bem, acho que ficou claro as alternativas mais usadas…

ManchesteR, acho que vou na linha do LIPE e do andre_a_s, ainda sou meio novado então vou deixar para um pouco mais para frente as framework MVC.

Obrigado!
:smiley:

[quote=“prog”]Bem, acho que ficou claro as alternativas mais usadas…

ManchesteR, acho que vou na linha do LIPE e do andre_a_s, ainda sou meio novado então vou deixar para um pouco mais para frente as framework MVC.

Obrigado!
:D[/quote]

é apenas uma dica, pois quando você for utilizar essas Frameworks, você vai ver como fica bem mais simples trabalhar com elas :lol:

Entendi!

Obrigado pela dica! :smiley:

Só complementando a sua pergunta…
Vc não precisa ter uma classe para cada função, vc pode er uma Util.java
Nela vc teria metodos estatico como: validaCPF(), validaRG()… esses coisas. Ai quando vc precisar de um metodo especifico é só colocar Util.nomeDoMetodo().
:wink:

Espero ter ajudado.

Por que uma JSP deveria validar qualquer coisa?

Basicamente, pelo que me lembro, você valida no cliente e/ou no servidor.

No cliente, JavaScript. Sim, você pode usar uns includes para reaprveitar javascript.

No segundo, a validação deve estar dividida: o cara digitou letra no lugar do número e o Javascript não pegou? Validação no Servlet… O cara digitou um número <0 para diade? validação no próprio setIdade().

Ah, e dá uma olhada nos frameworks de valdiação, pelo menos, valem MUITO.

Outra coisa: acho que o nome Util eh muito generico. Crie uma Validadores, ou algo assim. Ah, e EVITE um excesso de classes com métodos estáticos, se não sua OO vira procedural novamente.

[]s

[quote=“pcalcado”]
No segundo, a validação deve estar dividida: o cara digitou letra no lugar do número e o Javascript não pegou? Validação no Servlet… O cara digitou um número <0 para diade? validação no próprio setIdade().
[]s[/quote]

Aí é que esta amigo…vou usar o seu próprio exemplo.
Eu vou validar algo no método setIdade() e vamos dizer que por um motivo qualquer eu precise desta mesma validação em outro método de outro BEAN. O que vc faria? Eu preciso reutilizar código novamente.
Concordo que do lado cliente devo usar JS mas nem sempre resolvo as coisas do lado cliente.

A questão de evitar métodos estáticos eu concordo e por isso compartilhei essa minha dúvida com vc´s.
Por que situações exclusivas sempre aparecem.

Use herança :wink:

[quote=“prog”]
Concordo que do lado cliente devo usar JS mas nem sempre resolvo as coisas do lado cliente.[/quote]

Mas pelo menso faça um, semrpe. Evita um request no seu servidor a toa, isso reduz muito a carga. Acabo de sair de um projeto para um site de rpevidência e tal… vocês não tem noção de quanto os aposentados faziam request errado quando não tinha um javascript descente para falar ‘SEU BURRO, SÓ LETRAS!!!’…

[]s

Phillip, novamente eu fico do seu lado em relação ao JS.

Em seus projetos com JSP não precisou fazer uma chamada a funções estaticas em uma classe?

Tipo com JS e herança vc conseguiu resolver?

Bom, faça do jeito que vc conseguir fazer, seja usando um monte de funções estáticas, seja usando herança ou o que for. Se funcionar, beleza, vc tá aprendendo mesmo. Depois do negócio estár funcionando vai começar a ver as outras possibilidade de fazer isso e vai achar o que vc fez uma porcaria.

Só espero que esse projeto que vc tá fazendo não entre em produção logo, fazer projeto sério em fase aprendizado é pedir por muitos problemas no futuro.

E quanto ao JS, acho que tem que usar sempre pra evitar os requests, mas nunca deixa a validação só no lado cliente, faça a validação de novo no lado server por segurança pq JS é fácilmente burlável.

[]'s