Programao Distribuda em Java Aula 09 JSP Na
Programação Distribuída em Java Aula 09 - JSP
Na aula passada vimos: • Aspectos gerais de segurança em Java • policytool • Instalação de políticas de segurança • A classe Security. Manager
Na aula de hoje veremos: • Tom. Cat • JSP. . . uma introdução
Tom. Cat. . . O que é? • Servidor de aplicações Java para web. • Instalação e configuração: – Vide (excelente) tutorial on-line no site de Márcio D’Ávila em: – http: //www. mhavila. com. br/topicos/java/tomcat. html • Criação de contextos de aplicação – Veja o tutorial acima citado Observar a estrutura de diretórios
JSP • Java Server Pages • Características – Permite a inserção de código Java em páginas HTML – Permite a exibição de conteúdo dinamicamente – Semelhante a ASP. . . Com a vantagem da portabilidade
JSP • Expressões – – Código Java inserido em páginas HTML usando-se: <%= java_code %> O código Java é avaliado em tempo de execução Comentários são da forma <%-- comments --%> • Exemplo – Hora certa: <% = new java. util. Date() %> – Atente para o uso do sinal ‘ = ‘ expressao. jsp
Scriptlets • São blocos de código Java dentro da JSP • Diferem das expressões por não usar ‘ = ‘ • Exemplo: – – – <% // Tudo aqui dentro deve ser tratado como se estivesse // sendo escrito em uma classe Java qualquer System. out. println(“Instancia um objeto Date”); java. util. Date data = new Date(); %>
• A partir do trecho anterior teremos a variável data disponível para toda a JSP • Poderíamos escrever então: – – . . . A hora atual é <% = data. get. Time() %>. . . Hoje, dia <% = data. get. Day() %> • Podemos. . . Mas queremos? scriptlet. jsp
• Um scriptlet não gera conteúdo HTML • Se for necessário imprimir de dentro de um scriptlet, usar a variável predefinida “out”, que é da classe Jsp. Writer • Exemplo – – – <% // Esse scriptlet gera saída HTML diretamente System. out. println(“Instancia um objeto Date”); java. util. Date data = new Date(); out. println(String. value. Of(data)); %>
Misturando Java com HTML • O uso repetitivo de ‘out’ torna o código complicado • É possível aplicar-se as estruturas de controle do Java ao código HTML misturando. jsp
Diretivas • Para importar pacotes usamos “Diretivas” • Existem várias diretivas • Uso: <% @ directive %> • Exemplo: – <%@ page import = “java. util. *” %> diretivas. jsp
Declarações • Escrever uma JSP é equivalente a definir uma classe • Fazemos declarações de variáveis e/ou métodos dentro de uma JSP usando a estrutura: <% ! declaration %>
• Exemplo – – – – <%! String nome; String sobremone; void print. Name() { String out = nome + sobrenome; System. out. println(out); } %> • Note que nesse caso a avaliação das variáveis declaradas é feita apenas no carregamento da JSP declaracao. jsp
• Em resumo • Variáveis declaradas em <% __%> (scriptlet’s) – São locais – Tudo bem usar • Variáveis declaradas em <%!__%> (JSP declaration style) – São “globais” e vão ser compartilhadas com outras threads dessa instância – Em geral não é uma boa idéia pois exige sincronismo, o que piora a performance
Tags JSP • Não usam <%, e sim <. . . > semelhante ao HTML • Convenção de sintaxe usada por XML • Podem ser de dois tipos – Carregadas de biblioteca externa – Predefinidas • Tags predefinidas começam com jsp: • Ex. <jsp: include. . . > tags. jsp
Sessões • Objeto associado a cada visitante do site • Cada sessão recebe dados associados a um cliente que podem ser recuperados como fazemos em uma Hashtable • Usuários distintos que acessarem a mesma página simultaneamente terão sessões diferentes get. Name. htm
Processamento de formulários HTML • Defina uma classe que tenha um campo correspondente a cada campo do formulário (exatamente o mesmo nome) • Crie getters e setters para todos os campos. • Coloque seu arq. class no local apropriado de acordo com a versão do Tomcat que estiver utilizando (classpath do servidor)
• Na JSP incluir: – <jsp: use. Bean id=“var" class=“Minha. Classe" scope="session"/> A tag use. Bean cria uma instância “var” de Minha. Classe ou atualiza se a mesma já existir. . . Essa instância é chamada “bean” – <jsp: set. Property name=“var" property="*"/> A tag set. Property coleta os dados de entrada, compara com os campos do “bean” e atribui os valores coletados usando os setters apropriados. • A partir daí, os campos do objeto “var” da classe “Minha. Classe” podem ser acessados através dos seus getters get. Data. html and zeller. Algorithm. jsp
O que você precisa saber: • Instalar e configurar um Servlet. Container • Compreender as características principais de uma JSP • Diferenciar as estruturas da JSP e perceber o melhor momento de se utilizar de cada uma delas • Ter noção de “o que são beans”
Na próxima aula veremos • Java Servlets
- Slides: 20