SERVLET, JSP E TOMCAT 8.0 Max Rosan
<max.rosan@ymail.com>
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.
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
HTTP: GET E POST
Essas requisições podem ser: GET, POST, PUT, DELETE, etc.
GET: é usado para requisitar dados sobre um recurso no servidor.
HTTP: GET E POST
HTTP: GET E POST
POST: é geralmente usado para enviar dados a serem processados no servidor.
HTTP: GET E POST
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.
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.
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.
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.
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.
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.
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.
SERVLET: DEPLOYMENT
Vai ser utilizado aqui o Tomcat 8.0.
SERVLET: EXEMPLO 01
Projeto: ExampleServlet02
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.
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.
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
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.
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 %>.
JSP
Elementos de expressão imprimem o resultado da avaliação de uma expressão Java.
São cercados por <%= e %>
Elemento de diretiva
JSP
Outro elemento importante é do tipo diretiva:
JSP
Projeto: JSPExample01
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:
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.
SERVLETS E JSP: EXEMPLO
Projeto: DispatcherExample
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
SERVLETS, JSP E MVC: EXEMPLO
Projeto: ExampleMVC
TOMCAT, JSP E SERVLET
Dúvidas ?

Servlet jsp tomcat 8

  • 1.
    SERVLET, JSP ETOMCAT 8.0 Max Rosan <max.rosan@ymail.com>
  • 2.
    HTTP: GET EPOST 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 EPOST 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 EPOST Essas requisições podem ser: GET, POST, PUT, DELETE, etc. GET: é usado para requisitar dados sobre um recurso no servidor.
  • 5.
  • 6.
    HTTP: GET EPOST POST: é geralmente usado para enviar dados a serem processados no servidor.
  • 7.
  • 8.
    WEB ESTÁTICA É possívelconstruir 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 COMSERVLETS 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 umaresposta 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. Exemplode 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 construiruma 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 DEVIDA 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? Nasversõ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.
  • 15.
    SERVLET: DEPLOYMENT Vai serutilizado aqui o Tomcat 8.0.
  • 16.
  • 17.
    HTML: FORMULÁRIOS Formulários sãoelementos 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> possuemdois 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 emHTML 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ãoimprimem o resultado da avaliação de uma expressão Java. São cercados por <%= e %> Elemento de diretiva
  • 23.
    JSP Outro elemento importanteé do tipo diretiva:
  • 24.
  • 25.
    SERVLETS E JSP Qualusar ? 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 Comopassar 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.
  • 27.
    SERVLETS E JSP:EXEMPLO Projeto: DispatcherExample
  • 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
  • 29.
    SERVLETS, JSP EMVC: EXEMPLO Projeto: ExampleMVC
  • 30.
    TOMCAT, JSP ESERVLET Dúvidas ?