Sei sulla pagina 1di 36

Servlet e JSP

Prof. Andrey Masiero

11 de agosto de 2016
Agenda

1 Última Aula

2 Um pouco mais de Servlet

3 JSP

4 Próxima Aula
Limitações das Servlets (Última Aula)

Contudo, Servlets possuem uma grande limitação!

Como devolver uma página web formatada para o navegador do


cliente?

Na próxima aula...

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 1 / 34


Demonstração

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 2 / 34


Demonstração

Classe Login.java

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 3 / 34


Demonstração

Classe Login.java - Detalhe

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 4 / 34


Demonstração

Classe Logout.java

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 5 / 34


Demonstração

Classe Logout.java - Detalhe

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 6 / 34


Demonstração

Criar o página logout.html

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 7 / 34


Demonstração

Alterar a classe Logout.java para redirecionar a aplicação para a página


criada.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 8 / 34


Demonstração

Resultado

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 9 / 34


Demonstração

Mover a página de logout para WEB-INF, mas como iremos acessar?

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 10 / 34


Demonstração

Para acessar a página devemos utilizar o caminho via servidor.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 11 / 34


Demonstração

Resultado

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 12 / 34


Demonstração

Vamos agora fazer o mesmo para uma nova empresa.


Mas como associamos o nome da empresa cadastrado?

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 13 / 34


Demonstração

- Temos que utilizar agora um formato de página dinâmica.


- Em java, temos a jsp.
- Com ela podemos acessar os atributos através de expression language.

- Mas como essas informações chegam na página jsp?

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 14 / 34


Demonstração

- No objeto de requisição podemos adicionar mais informações, mais


atributos.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 15 / 34


Demonstração

Resultado

MAS QUE NOME MALUCO É ESSE!!!!!!

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 16 / 34


Demonstração

- É necessário chamar o método para pegar o nome da empresa na


expression language.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 17 / 34


Demonstração

Resultado

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 18 / 34


Demonstração

- Ainda podemos simplificar.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 19 / 34


Demonstração

Resultado

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 20 / 34


Demonstração

- Vamos para a busca de empresas. Alteramos a servlet para enviar as


empresas à página jsp.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 21 / 34


Demonstração

- Mas e agora, como percorremos uma coleção de empresas?

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 22 / 34


Demonstração
- Para isso utilizamos uma taglib (biblioteca de tags), que nos auxilia a
trabalhar com informações dinâmicas na jsp.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 23 / 34


Demonstração

Resultado para pesquisa de “le”

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 24 / 34


Demonstração

- Vamos usar mais uma taglib?


- Que tal mostrar o usuário logado?

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 25 / 34


Demonstração
Resultado logado

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 26 / 34


Demonstração
Resultado não logado

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 27 / 34


Aplicações em JSP

As Java Server Pages (JSP) foram criadas para contornar algumas


das limitações no desenvolvimento com Servlets.
Em Servlet a formatação da página HTML resulta do processamento
de uma requisição.
Em JSP essa formatação se encontra separada da programação,
podendo ser modificada sem afetar o restante da aplicação.
Existe um Servlet especial, chamado Page Compiler, que intercepta
requisições direcionadas a recursos com extensão “.jsp”
No instante em que é recebida uma requisição para uma página JSP, o
Page Compiler transforma essa página em um Servlet e o compila,
sendo que o resultado da compilação carregado em memória para
evitar que esse processo tenha que ser repetido para todas as
requisições recebidas.

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 28 / 34


Como isso funciona

Em um JSP, utiliza-se o Scriptlet (“<% . . . %>”) para escrever código java


entre o código HTML.

<! DOCTYPE html >


< html > < head > < meta charset =" UTF -8" > < title > Java coffee !!! </ title > </
head >
< body >
<% String opcao = Boolean . valueOf ( request . getParameter ("
acucar ") ) ? " com " : " sem "; % >
Serao <% out . println ( request . getParameter (" quantidade ") ) ; % >
xicaras <% out . println ( opcao ) ; % > acucar .
</ body >
</ html >

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 29 / 34


Como isso funciona

Directive <%@ . . . %>, declarar informações especiais (page,include,tablib)

<% @page import =" br . metodista . Usuario " % >


<! DOCTYPE html >
< html > < head > < meta charset =" UTF -8" >
< title > Exemplo de tag directive </ title > </ head >
< body >
<% Usuario user =( Usuario ) session . getAttribute ("
usuario ") ; % >
<h1 > <% out . println ( user . getNome () ) ; % > </ h1 >
</ body >
</ html >

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 30 / 34


Como isso funciona

Expression <%= . . . %>, igual ao uso do out.println()

<% @page import =" br . metodista . Usuario " % >


<! DOCTYPE html >
< html > < head > < meta charset =" UTF -8" >
< title > Exemplo de tag expression </ title > </ head >
< body >
<% Usuario user = ( Usuario ) session . getAttribute ("
usuario ") ; % >
<h1 > <% out . println ( user . getNome () ) ; % > </ h1 >
O scriplet acima eh igual ao expression abaixo :
<h1 > <%= user . getNome () % > </ h1 >
</ body >
</ html >

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 31 / 34


Como isso funciona

Declaration <%! . . . %>, utilizada para declarar atributos

<% @page import =" br . metodista . Usuario " % >


<! DOCTYPE html >
< html > < head > < meta charset =" UTF -8" >
< title > Exemplo de tag declaration </ title > </ head >
< body >
<%! Usuario user = new Usuario ( ‘ ‘ Judith ’ ’) ; % >
<h1 > <%= user . getNome () % > </ h1 >
</ body >
</ html >

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 32 / 34


Como isso funciona

Comment <%– . . . –%>, comentários no código.

<% @page import =" br . metodista . Usuario " % >


<! DOCTYPE html >
< html > < head > < meta charset =" UTF -8" >
< title > Exemplo de tag comment </ title > </ head >
< body >
<% - - Obter o usuario da sessao - -% >
<h1 > <%= (( Usuario ) session . getAttribute (" usuario ") )
. getNome () % > </ h1 >
</ body >
</ html >

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 33 / 34


Próxima Aula

Padrão de Projeto MVC

Na próxima aula...

Prof. Andrey Masiero Aula 02 11 de agosto de 2016 34 / 34

Potrebbero piacerti anche