Do PHP para JSP

7 respostas
P

Olá,

sendo muito acostumado com o PHP e tb com ASP, comecei o desenvolvimento de um site utilizando JSP. Tenho algumas dúvidas baseada em “vícios” das outras linguagens e gostaria de alguma direção…

1-Como criar um arquivo de configuração que seja global? Eu já achei a classe Properties que me pareceu útil para este fim, porém ainda não enxerguei como tornar algumas configurações globais a todas as páginas, já que Java não tem este conceito. Tenho que ler o arquivo em todas as páginas? Leio uma vez e armazeno em uma Session?

2-Gostei muito da flexibilidade que me dá as TagLibraries e os Servlets porem gostaria de opiniões de quando optar por elas.

Agradeço qualquer ajuda e se possível alguns links de documentos que falem sobre o tema. Eu já tenho alguns tutoriais porém a maioria é muito superficial, do tipo “minha primeira pagina”, que já me foi útil a uma semana atrás :slight_smile:

Obrigado.

7 Respostas

Paulo_Silveira

Oi e bem vindo ao GUJ!!

Se voce colocar algo na session, ela soh estara visivel para o usuario que estiver vendo aquela pagina, e a partir dela!

Entao, se voce quer algo global (pense 2 vezes antes de usar coisas globais!), voce deve usar a Servlet Context!

http://www.guj.com.br/api/j2ee.html?api=javax.servlet,ServletContext

Ai, voce usa setAttribute, e getAttribute! Ele armazena objetos, como numa tabela de hash de string->objetos

Outra coisa, para voce epgar o ServletContext, basta usar this.getServletContext()

nao tenho experiencia com tag libraries, por isso nao posso te responder!

Rafael_Steil

Bom, nao da para comparar diretamente taglibs com servlets. A primeira eh usada para facilitar as coisas com JSP, ja que voce escreve coisas para simplificar o jsp. Servlets eh usado como uma camada antes do JSP ( em uma aplicacao que siga os principios de bom design ), ja que JSP eh usado para mostrar os dados na tela, enquando servlets se encarrega do “trabalho pesado”…

Basicamente eh isso sobre esse topico…

Rafael

P

Obrigado pela calorosa (!!) recepção e pelas respostas…

Bom, eu citei as variaveis globais porque em php é costume meu colocar algumas configurações em um config.php e dar um include nela nas paginas que é necessária.

Colocando um exemplo hipotetico: Vamos supor que eu meu site, existe uma determinada opção de menu que pode ou não aparecer, dependendo de uma opção do usuário que instalar o site em seu servidor. Esta opção seria determinada por uma variavel neste arquivo config.php e nas páginas em que eu colocaria ou não a opção teriamos algo do tipo:

Se $usa_opcao = sim mostra "<a href='blablabla.php'>Opção 1</a>"

Hoje (15/10) eu pesquisei e até pensei na hipotese de criar uma classe com uma “class variable” contendo a informação que preciso. Algo assim:

class Configuracoes { static String UsaOpcao = "sim"; }

Ai, sempre que precisar, em qualquer página que a opção exista eu instanciaria a classe e testaria o valor de UsaOpcao. Essa ideia é muito idiota?

Dei uma lida sobre o Servlet Context e vi que dá para o que eu preciso, mas não seria muito para pouca coisa? Ou é a melhor opção?

Eu tb pensei até em utilizar estas configurações em BD mas imagino que geraria um monte de acessos inuteis ao banco e, além do mais, ainda precisaria de algo para armazenar o caminho do banco, username, etc…

Agradeço qquer comentário

Valeu!

P

Obrigado pela calorosa (!!) recepção e pelas respostas…

Bom, eu citei as variaveis globais porque em php é costume meu colocar algumas configurações em um config.php e dar um include nela nas paginas que é necessária.

Colocando um exemplo hipotetico: Vamos supor que eu meu site, existe uma determinada opção de menu que pode ou não aparecer, dependendo de uma opção do usuário que instalar o site em seu servidor. Esta opção seria determinada por uma variavel neste arquivo config.php e nas páginas em que eu colocaria ou não a opção teriamos algo do tipo:

Se $usa_opcao = sim mostra "<a href='blablabla.php'>Opção 1</a>"

Hoje (15/10) eu pesquisei e até pensei na hipotese de criar uma classe com uma “class variable” contendo a informação que preciso. Algo assim:

class Configuracoes { static String UsaOpcao = "sim"; }

Ai, sempre que precisar, em qualquer página que a opção exista eu instanciaria a classe e testaria o valor de UsaOpcao. Essa ideia é muito idiota? Se fosse usar isso, teria que colocar esta classe como um Servlet?

Dei uma lida sobre o Servlet Context e vi que dá para o que eu preciso, mas não seria muito para pouca coisa? Ou é a melhor opção?

Eu tb pensei até em utilizar estas configurações em BD mas imagino que geraria um monte de acessos inuteis ao banco e, além do mais, ainda precisaria de algo para armazenar o caminho do banco, username, etc…

Agradeço qquer comentário

Valeu!

Rafael_Steil

Nao, eh melhor voce colocar as configuracoes em um arquivo texto e processar ele usando Properties, pois dessa maneira fica muito mais simples alterar/adicionar valores quando precisar.
A classe eh http://www.guj.com.br/api/j2se.html?api=java.util,Properties, e o seu formado eh “campo = valor” ( sem as aspas, claro :slight_smile: )

De uma olhada nisso, vai ser bem mais util e funcional.

Rafael

P

Obrigado. Vou utilizar as Properties como vc sugeriu, me parece a melhor opção.

Eu percebi que se fizesse como falei, utilizando uma class variable, ela não poderia ser declarada em um arquivo .jsp e sim como um servlet, o que dificultaria alterações no seu conteudo com o site em produção.

Acho que é isso mesmo, né? Pois qdo tentei colocar uma class variable em uma classe dentro de um arquivo .jsp, o TomCat não gostou :frowning:

Valeu!

Rafael_Steil

Mesmo que voce tivesse conseguido, nao eh aconselhavel fazer isso. PHP nao tem jeito mesmo porque eh uma linguagem de script apenas, mas com java as coisas funcionam um pouco diferente. O JSP deve ser usado apenas para montar o layout, e nao para declaracao de classes, conexao com o banco etc… claro que muitas coisas que voce faz nas classes voce pode fazer direito no jsp, mas nao eh recomendavel, ja que as aplicacoes ficam complicadas de manter.

Acho que deve estar entrando nos proximos dias um tutorial sobre MVC, o qual explica o que comentei aqui.

[]'s
Rafael Steil

Criado 15 de outubro de 2002
Ultima resposta 16 de out. de 2002
Respostas 7
Participantes 3