LINGUAGEM DE PROGRAMAÇÃO
II /PROGRAMAÇÃO INTERNET I
Seção II
Introdução a Java Server
Pages (JSP)
Professorª Angela Saemi
[email protected]Desenvolvimento
web com JSP
Servlets e JSP
• Como estudamos anteriormente, as classes
servlets permitem gerar dinamicamente páginas
HTML dentro de um programa Java.
• Dessa forma, a criação das páginas acabava
ficando para programadores Java e não para web
designers por exemplo.
• Isto proporcionou uma limitação na utilização de
servlets.
Servlets e JSP
• Surgiu então a tecnologia Java Server Pages ou
JSP.
• Com o surgimento do JSP, a página pôde ser
escrita por um web designer através de
ferramentas específicas para a geração de
páginas HTML.
• Assim, com o JSP foi possível escrever páginas
HTML e inserir código Java nelas.
O que é uma página JSP?
• É uma página HTML com trechos de programa Java
embutidos e outras tags especiais
– A parte dinâmica da página é gerada pelo JSP e a parte
estática pelo HTML.
• Simplificam a geração de conteúdo dinâmico para Web
Designers
• A página JSP é automaticamente transformada em servlet
• JSP pode ser expresso através do seu formato padrão e do
seu formato XML.
Java Server Pages
• JSP (JavaServer Pages) é uma tecnologia
baseada em Java que simplifica o processo de
desenvolvimento de sites da web dinâmicos.
• Foi criada pela Sun Microsystems em junho de
1999 com o objetivo de simplificar a tecnologia
Java Servlets, possuindo um suporte robusto e
repleto de recursos Java no servidor, a fim de
garantir uma plataforma estável e bem definida.
Então não precisamos
mais de servlets ?
• Sim, precisamos.
• As boas práticas Java ensinam que devemos
dividir responsabilidades entre os diversos
objetos e componentes da nossa aplicação.
Então não precisamos
mais de servlets ?
• Antes do surgimento do JSP, atribuímos a
responsabilidade de processar a lógica de
negócio em um servlet e responsabilidade
para outro servlet para gerar uma página
HTML.
• Agora podemos ter um servlet para o
processamento de lógica de negócio e um JSP
para gerar páginas.
Ciclo de vida de um JSP
• Um JSP é uma forma mais simples de se criar
um servlet.
• Para lidarmos com páginas JSP precisamos
entender os passos executados para que ele
seja transformado em um servlet.
Ciclo de vida JSP
Transformação de um JSP
em servlet
• Ao chamar o JSP, ele é transformado em um
servlet para depois ser compilado.
Elementos utilizados em JSPs
• Em uma página JSP podemos escrever
código Java, HTML, XML, texto simples
ou qualquer outro formato que possa
interpretado pelo cliente (navegador).
Tipos de elementos utilizados
em uma página JSP
• Scriptlets
• Comentários
• Expressões
• Diretivas
• Declarações
Scriptlets
• Bloco de código Java que é executado
durante o processo de requisição e é
utilizado como declaração dentro de tags
<% %>.
• Dentro das tags podemos utilizar código
Java, sem esquecermos de colocar o
ponto-e-vírgula necessário.
Scriptlets
• Exemplo:
Vamos criar nossa
primeira página JSP
Nomeie o seu jsp como
index.jsp
Scriptlets
• Exemplo:
Scriptlets
• NO JSP temos uma variável já implícita
do tipo JspWriter que permite imprimir
para o response (resposta) através do
método println:
• <% out.println(variavel); %>
Ao rodar o nosso projeto
Scriptlets
• A variável out é um objeto implícito na
nossa página JSP.
• Repare que o uso é semelhante ao que
utilizamos em um servlet.
• Podemos imprimir o conteúdo utilizando
um atalho:
• <% = variavel %>
Vamos praticar
• Crie um Jsp para exibir o conteúdo
abaixo:
• Bem vindo ao Portal do Bilac
Desenvolvido por (coloque seu nome)
• A primeira frase utilizaremos a variável out
• A segunda frase utilizaremos o atalho.
Mais Scriptlets
<% for(int i=1; i<=10; i++){ %>
Número: <% out.println ( i );%>
<br/>
<% } %>
Mais Scriptlets
Sintaxe dos elementos JSP
• Podem ser usados em documentos de texto
(geralmente HTML ou XML)
• Todos são interpretados no servidor (jamais chegam
ao browser)
– diretivas: <%@ ... %>
– declarações: <%! ... %>
– expressões: <%= ... %>
– scriptlets: <% ... %>
– comentários: <%-- ... --%>
– ações: <jsp:ação ... />
– custom tags: <prefixo:elemento ... />
Expressões
• Expressões contem elementos que são
processados e geram um resultado que
será exibido na página jsp.
• Os elementos podem ser:
• Variáveis
• Operações
• Chamadas a métodos
Expressões
<% String variavel = "teste"; %>
<table border="2">
<tr>
<td>
<%=variavel%>
</td>
</tr>
</table>
Expressões
Expressões
Tabuada de 3;
<% for (int i = 1; i <= 10; i++) { %>
<br/>
<% int res = 3*i; %>
3 x <% =i %> = <% =res %>
<% } %>
Expressões
Declarações
• As declarações em páginas JSP são
blocos de código que podem conter
declarações de variáveis e métodos que
serão utilizados no escopo da classe.
• São declarados dentro de tags <%! %>
Declarações
Chamada de metodo:
<%= metodo() %>
<br/>
<%!
public String metodo(){
String variavel = "variável declarada";
return variavel;
}
%>
Declarações
Diretivas
• São instruções de configuração de
páginas JSP.
• Utilizando as diretivas é possível fazer a
importação de classes, configuração de
saída, inclusão de outros arquivos, etc...
• Contém informações necessárias ao
processamento da classe do servlet que
gera a página JSP
Diretivas
• As diretivas são:
• page: configurações gerais.
• Include: inclui outros arquivos na
página
• Taglib e tag: para configuração de tags
customizadas.
Diretivas
• Diretivas JSP devem estar sempre
entre tags <%@ %>
• Cada diretiva possui o seu conjunto
de atributos associados.
Diretivas
• Sintaxe de uma diretiva
• <%@ diretiva [atributo]="valor"
[atributo]="valor" %>
Diretivas
Principais Atributos Descrição
Import Utilizada para indicar classes ou pacotes vão ser importados
pelo servlet
Session indica se a session vai ser criada automaticamente, ou não,
através de true ou false
errorPage Indica qual página será executada quando ocorrer um erro
na página
isErrorPage Indica que a página é uma página de erro
contentType Indica o tipo do conteúdo da página.
O valor padrão é “text/html”
pageEnconding Indica o charset da página. O padrão é ISO-8859-1
File Indica o arquivo que será incluído na posição em que a
diretiva aparece na página JSP
Importação de pacotes e classes
• Utilize o atributo import na diretiva
page para fazer a importação de
classes e pacotes a serem utilizados
na página JSP.
Importação de pacotes e classes
<%@page import="java.util.Date" %>
<!DOCTYPE html>
<body>
São José dos Campos,
<%= new Date()%>
</body>
Importação de pacotes e classes
Configuração de
páginas de erro para JSP
• Utilizando a diretiva page podemos
configurar uma página de
tratamento de erros para uma
página JSP.
• Quando ocorrer uma exceção em
uma página JSP, a página de erro
será exibida.
Atributo errorPage
• Caso haja uma exceção em uma
página, podemos utilizar o atributo
errorPage pare redirecionar para
uma página de erro.
Atributo errorPage
• Sintaxe:
<%@page errorPage="paginaDeErro.jsp" %>
Vamos testar!
Inclua a diretiva no início da página e crie uma
página jsp chamada paginaDeErro.jsp
<%@page errorPage="paginaDeErro.jsp" %>
Vamos testar!
Na página atual inclua um cálculo para que
ocorra um erro:
<body>
<% int x=10/0; %>
</body>
Vamos testar!
Na página paginaDeErro.jsp, faça uma
alteração para que exiba a ocorrência de um
erro.
<title>Página de erro</title>
</head>
<body>
<h1>Ocorreu um erro!!</h1>
</body>
Execute o programa
Como nenhum número pode ser dividido por s
zero, será redirecionado para a página de erro
exibindo a mensagem:
Ocorreu um erro!!
Inclusão de arquivos externos
• Uma diretiva bastante utilizada é a
include.
• Através dela podemos utilizar arquivos
externos.
Inclusão de arquivos externos
• Sintaxe:
<%@include file=“header.jsp" %>
Crie uma página header.jsp
Crie uma página
cadastroUsuario.jsp
Na página index.jsp
Ao executarmos, em cada célula
da tabela será exibido a
página jsp chamada.
E então? Agora que conhecemos
um pouco sobre jsp
Bora trabalhar?
Início da Atividade de ED – Parte 2
O objetivo final do Estudo Dirigido é
criarmos um site com páginas JSP
• Grupo de até 4 pessoas.
• Crie uma página index.jsp:
– Esta será a sua página principal, utilize o conceito
de JSP para incluir páginas com cabeçalho,
rodapé padrão para todas as suas páginas.
– Utilize o formato de seu site desenvolvido em
disciplina anterior.
– O projeto deve ser enviado para o e-mail
[email protected]. No assunto coloque o
curso, período e “projeto parte 2”.
Bibliografia
• DEITEL, Paul J.; DEITEL, Harvey M.; Java - Como programar, 8ª edição, São
Paulo, Editora: Prentice Hall, 2010.
• GOODWILL J. Pure JSP -- Java Server Pages: A Code-Intensive
Premium Reference Sams, 2000.
• GONÇALVES, Edson. Desenvolvendo aplicações Web com JSP, Servlets,
JavaServer faces, Hibernate, EJB 3 Persistence e Ajax. Ciência Moderna. ISBN
8573935723
• ARAUJO, Everton Coimbra de ; Desenvolvimento para WEB com Java, São
Paulo, Visual Books, 2010.