O documento descreve as tecnologias Servlets, JSP e Tomcat para desenvolvimento de aplicações web dinâmicas. Ele explica como o HTTP funciona com requisições GET e POST, como Servlets e JSP permitem processamento de dados no lado servidor, e como eles podem ser implementados juntos usando o padrão MVC com Tomcat.
1. SERVLET, JSP E TOMCAT 8.0 Max Rosan
<max.rosan@ymail.com>
2. HTTP: GET E POST
HTTP: protocolo baseado no padrão cliente/servidor usado na Web.
Um cliente (browser) envia requisições e um servidor as responde.
Qualquer servidor Web implementa pelo menos o básico do HTTP.
3. HTTP: GET E POST
Passos ao acessar uma página:
1) Resolução de endereço por DNS
2) Envio do HTTP Request (GET ou POST)
3) Servidor vai interpretar a requisição (HTTP Request)
4) Servidor envia uma resposta (HTTP Response)
5) Browser interpreta a resposta e renderiza o resultado
4. HTTP: GET E POST
Essas requisições podem ser: GET, POST, PUT, DELETE, etc.
GET: é usado para requisitar dados sobre um recurso no servidor.
8. WEB ESTÁTICA
É possível construir páginas estáticas somente com HTML.
Não há processamento de dados e, portanto, não há interatividade com o usuário.
Qualquer atualização nas páginas teria que ser feita na mão.
Há algum tempo já é possível ter maior dinamismo na Web, várias tecnologias
permitem que o usuário tenha maior interatividade com o lado servidor.
9. WEB DINÂMICA COM SERVLETS E JSP
Duas dessas tecnologias são JSP e Servlets.
A cada requisição, JSPs e Servlets são interpretados/compilados e/ou executados.
JSP: linguagem de script com código Java; Servlet: classes Java
Repassa requisição para engine
responsável.
Converte para Servlet.
Executa Servlet e constrói
a resposta com HTML.
10. SERVLETS
Surgiram como uma resposta ao CGI (Common Gateway Interface).
Possuem esse nome por desempenharem funções semelhantes a um servidor
Web simples (GET, POST, etc.).
Consiste em uma classe Java que herda da classe HttpServlet.
Roda dentro de um chamado container Servlet, que recebe requisições
do servidor e as repassa para as instâncias de Servlets.
Nos Servlets implementa-se os métodos correspondentes ao tipo de requisição
que se quer tratar:
GET : doGet
POST: doPost
PUT doPut
Etc.
11. SERVLETS
Herda de HttpServlet.
Exemplo de implementação
do doGet.
Parâmetros e atributos da
requisição.
Parâmetros e atributos a serem
passados para resposta.
Métodos prints do PrinterWriter vão ser
usados para construir o corpo da resposta.
12. SERVLETS: EXEMPLO
Como construir uma página HTML com Servlets ?
É necessário definir o tipo da saída, definindo
o cabeçalho Content-type.
Todo o HTML vai ser passado
como String nas funções print do
PrintWriter.
13. SERVLETS: CICLO DE VIDA
Servlets são instanciados uma vez por JVM
(no geral).
init: Chamado assim que o Servlet é instanciado.
Utilizado para alocação de recursos.
service: Chamado para tratar cada requisição.
destroy: Chamado quando a instância do servlet vai ser
destruída. Deve ser utilizado para desalocação
de recursos.
service não é thread-safe (não garante execução segura p/várias threads), então é
necessário ter cuidado com o uso concorrente dos recursos.
14. SERVLET: COMO ACESSAR?
Nas versões mais antigas da API dos Servlets
era necessário editar o arquivo web.xml para
mapear os endereços dos Servlets.
Nas versões mais recentes, basta utilizar anota-
ções.
Anotações permitem a configuração dos objetos
ou classes ainda no código, em vez de criar um
XML à parte. São trechos de códigos pré-
processados.
17. HTML: FORMULÁRIOS
Formulários são elementos bem utilizados em páginas em HTML.
Permitem a interação com o lado servidor.
Duas tags importantes: <form> e <input>.
Type pode ter os seguintes valores:
• radio
• checkbox
• text
• submit
• Etc.
18. HTML: FORMULÁRIOS
<form> possuem dois atributos:
Action: define o destino dos dados colocados no formulário;
Method: define a forma como os dados vão ser enviados, por GET ou POST.
19. SERVLET E FORMULÁRIOS: EXEMPLO 02
Com Servlets pode-se processar dados provenientes de formulários HTML.
Para isso, utiliza-se getParameter do HTTPServletRequest.
Exemplo: ExampleServletForm
20. JSP
Criar páginas em HTML com Servlets é um processo laborioso.
Além disso, mistura-se parte estática das páginas com a parte dinâmica.
Haveria código de lógica de negócio, com apresentação, com a parte de controle,
etc.
JSP facilita enormente o processo de desenvolvimento e organização do projeto.
Permite embutir código Java em meio ao HTML, e não o contrário.
Cada JSP é convertido para um Servlet pelo servidor.
21. JSP
O código JSP é dividido nos seguintes elementos: diretivas, declarações, scriptlets e
expressões.
Scriptlets são trechos de códigos Java cercados por <% e %>.
22. JSP
Elementos de expressão imprimem o resultado da avaliação de uma expressão Java.
São cercados por <%= e %>
Elemento de diretiva
25. SERVLETS E JSP
Qual usar ? JSP ou Servlet ? Ambos...
Delega-se toda a parte de visão e interface para o JSP, enquanto para o Servlet
põe-se tarefas mais complexas, como controle e interface com a parte de
negócios/modelo.
Os Servlets podem fazer o processamento inicial dos parâmetros de requisições e
enviar os resultados para exibição para o JSP.
Isso é realizado com o RequestDispatcher no Servlet:
26. SERVLETS E JSP
Como passar dados do Servlet p/JSP ?
Usa-se setAttribute do HttpServletRequest no Servlet;
E para pegar os dados no JSP usa-se getAttribute do objeto request.
28. SERVLETS E JSP: MVC
Com Servlet e JSP é possível
implementar o padrão MVC:
Controller: Servlet
Interpreta as requisições
Atualiza os modelos/dados e os recupera
para apresentação
View: JSP
Responsável por renderização dos dados
Model: parte de negócios, acesso aos dados