SlideShare uma empresa Scribd logo
1 de 31
Servlets e JSP

Introdução e visão geral de
  algumas características
Servidor de aplicação
•   Um servidor de aplicação implementa todas as especificações
    do Java EE (grande conjunto de especificações) e tem o papel
    de servir sua aplicação para auxilia-la com serviços de
    infraestrutura;
•   JBoss;
•   Glassfish.
Servlet Container

•    O Servlet Container é um servidor que suporta algumas
     funcionalidades como as Servlet, o JSP¹, JSTL² e JSF³ e não
     a implementação do Java EE por completo;
•    Apache Tomcat;
•    Jetty (usado no Google App Engine)




    1 - JavaServer Pages;
    2 - JavaServer Pages Standard Tag Library;
    3 - JavaServer Faces
Servlets
   A servlet is a Java programming language class used to
extend the capabilities of servers that host applications
accessed by means of a request-response programming model.
Although servlets can respond to any type of request, they are
commonly used to extend the applications hosted by web
servers. For such applications, Java Servlet technology defines
HTTP-specific servlet classes.

  http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
Servlets
   The javax.servlet and javax.servlet.http packages provide
interfaces and classes for writing servlets. All servlets must
implement the Servlet interface, which defines lifecycle
methods. When implementing a generic service, you can use or
extend the GenericServlet class provided with the Java Servlet
API. The HttpServlet class provides methods, such as doGet and
doPost, for handling HTTP-specific services.

  http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
Servlets
   Servlets são classes Java, desenvolvidas de acordo com uma
estrutura bem definida que, quando instaladas e configuradas
em um servidor que implemente um Servlet Container, podem
tratar requisições recebida de clientes web (browsers).

     JSP, Servlets e J2EE - Temple, André; Mello, Rodrigo; Calegari, Danival; Schiezaro, Maurício. (GNU
License)
Servlets
   Uma servlet é um componente no lado do servidor. Ela pode
ser usada para estender a funcionalidade de qualquer servidor
compatível com Java, mas normalmente as servlets são usadas
para escrever aplicativos Web em um servidor Web. [...]. Com
freqüência elas são usadas para criar páginas da Web que não
são estáticas.

    Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law,
Debbie, Longshaw, Andy; Roxburgh, Peter. Pearson Education, São Paulo, 2003.
Servlets
•   O nome “servlet” vem da ideia de um pequeno servidor cujo
    objetivo é receber chamadas HTTP, processá-las e devolver
    uma resposta ao cliente;
•   Ao receber uma requisição, um Servlet pode capturar os
    parâmetros    dessa    requisição,   efetuar    qualquer
    processamento inerente a uma classe Java e devolver uma
    página HTML;
•   Os servlets normalmente utilizam o protocolo HTTP, apesar
    de não serem restritos a ele;
Servlets
•   Diversas requisições podem ser feitas ao mesmo Servlet ao
    mesmo tempo em um único servidor, por isso ela é mais
    rápida que um programa CGI, que não permitia isso;
•   Servlets ficam na memória entre requisições, não precisa ser
    reinstanciada;
•   em CGI, cada cliente é representado por um processo; com
    servlets, cada cliente é representado por uma linha de
    execução.
Servlets
•   É importante perceber que sua Servlet será instanciada uma
    única vez pelo container e esse objeto será usado para
    atender todas requisições de todos os clientes em threads
    separadas; é isso que traz melhorias em relação aos CGI, que
    disparavam diversos processos;
Visão geral: Servlets
•   Interface Servlet: define métodos que todos os servlets
    devem implementar;
•   Classe abstrata GenericServlet: Define um servlet genérico,
    independe de protocolo específico;
•   Classe abstrata HttpServlet: Provê uma classe abstrata a ser
    implementada para criar um servlet HTTP, adequado para um
    Web site;
Servlet - exemplo

public class Welcome extends HttpServlet {

         protected void service( HttpServletRequest request,
                  HttpServletResponse response )
                  throws IOException, ServletException {

                   PrintWriter out = response.getWriter();
                   String name = request.getParameter(“name”);

                   out.println(“<html>”);
                   out.println(“body”);
                   out.println(“Welcome ” + name + “!!!”);
                   out.println(“</body>”);
                   out.println(“</html>”)

         }
}
Servlets - ciclo de vida




http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html
Servlets - ciclo de vida
•   Os métodos init() e destroy(), quando reescritos, são
    obrigados a chamar o super.init() e super.destroy();
•   Supondo que um desses métodos execute alguma tarefa
    fundamental em sua classe pai, esquecer de chamar o super
    pode lhe causar problemas!!!
Servlets - exemplo

public class Welcome extends HttpServlet {

         public void init(ServletConfig config) throws ServletException {
                    super.init(config);
                    log(“Beginning the Servlet ...”);
         }

         public void destroy() {
                    super.destroy();
                    log(“... finishing the Servlet.”)
         }

          protected void service( HttpServletRequest request,
                   HttpServletResponse response )
                   throws IOException, ServletException {

                    ...
         }
}
Servlets - HTTP
   O método service() aceita todos os métodos HTTP, portanto
temos que especificar qual iremos utilizar através dos seguintes
métodos:


    void doGet( HttpServletRequest request, HttpServletResponse response );
    void doPost( HttpServletRequest request, HttpServletResponse response );


   Além de GET e POST o protocolo HTTP possui ainda mais 6 métodos: PUT, DELETE, HEAD, TRACE,
CONNECT e OPTIONS;
    Os mais conhecidos são o GET e POST pois são os únicos que HTML 4 suporta.


    http://docs.oracle.com/javaee/1.4/api/javax/servlet/http/HttpServlet.html
Servlets - mapeamento

  As servlets devem ser mapeadas no arquivo web.xml para
que sua aplicação saiba como localizá-la ...



     <servlet>
        <servlet-name>welcome</servlet-name>
        <servlet-class>br.inpe.cptec.servlet.Welcome</servlet-class>
     </servlet>

     <servlet-mapping>
        <servlet-name>welcome</servlet-name>
        <url-pattern>/</utl-pattern>
     </servlet-mapping>
Servlets - mapeamento

   ... ou à partir da versão 3.0 da API de Servlets, lançada
em Dezembro de 2009 com o Java EE 6, não é mais
necessário configurar as Servlets no web.xml, pode-se
apenas usar a anotação @WebServlet:



   @WebServlet(name=“welcome”, urlPatterns={“/”, “/welcome”, “/oi”})
   public class Welcome extends HttpServlet {

            ...

   }
JavaServer Pages
   JavaServer Pages is a Sun Microsystems specification for
combining Java with HTML to provide dynamic content for web
pages. [...] JSP is more convenient to write than HTTP servlets
because they allow you to embed Java code directly into your
HTML pages.
   JSP enables you to separate the dynamic content of a Web
page from its presentation.


   http://docs.oracle.com/cd/E13222_01/wls/docs70//jsp/intro.html
JavaServer Pages
  Uma JSP é apenas outra servlet e, assim como as servlets
HTTP, uma JSP é um componente web no lado do servidor que
pode ser usado para gerar páginas da Web dinâmica.
    A diferença fundamental entre servlets e JSPs é:
    •As servlets geram código HTML de código Java;
    •As JSPs incorporam código Java em código HTML estático.

    Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law,
Debbie, Longshaw, Andy; Roxburgh, Peter. Pearson Education, São Paulo, 2003.
JavaServer Pages
•   Criado para contornar limitações no desenvolvimento com
    Servlets;
•   Permite que a criação do HTML dinâmico não se misture com
    a lógica da aplicação em si;
•   Estrutura do arquivo jsp é baseada no HTML;
•   Permite que se escreva código Java no arquivo, para que
    possamos adicionar comportamento dinâmico em nossa
    página, como condicionais (if), loops (while);
JavaServer Pages
•   Todo scriptlet (script + sufixo let, de pequeno) deve ser
    escrito entre as tags <% %>;
•   Para declarar uma variável é simples, basta fazer:


    <% String message = “Welcome!”; %>



•   Todo arquivo JSP possui uma variável chamada out, do tipo
    JspWriter, que permite imprimir para o response através do
    método println():

•   <% out.println( message ); %>
JavaServer Pages
•   Além da variável out, existem outras que estão implícitas nas
    nossas páginas JSP;
•   Existe ainda outra possibilidade para imprimir o conteúdo da
    nossa variável através do seguinte atalho:


    <% =message %>



•   Comentários em páginas JSP devem ser feitos da seguinte
    maneira:

•   <%-- Comentário em JSP --%>
JavaServer Pages
   No JSP existe um elemento chamado diretiva; as diretivas são
usadas para definir informações sobre sua página para o
tradutor, elas não produzem saída HTML:


   <%@ diretiva [ atributo=“valor” ] %>



   Dentre as diretivas existentes uma delas é a include; você a
usa para inserir o conteúdo de outro arquivo JSP. O arquivo
incluído pode conter tags HTML e/ou JSP.


   <%@ include file=”header.jsp”%>
JavaServer Pages
   Há também a diretiva page, ou seja, uma configuração
específica de uma página. Elas são usadas para definir
propriedades dependentes da página:


  <%@ page import=“br.inpe.cptec.dao.”%>



   O atributo import permite que seja especificado qual o
pacote a ser importado. Para diversos pacotes basta separá-los
por vírgula.


  <%@ page import=“java.util.*, br.inpe.cptec.dao.*” %>
JavaServer Pages
   Outra e também muito importante é a diretiva taglib. As
bibliotecas de tags (taglibs) estendem ainda mais a filosofia das
JSPs, para que seja possível escrever a maioria das páginas Web
sem usar código Java:


   <%@taglib uri=“/demo” prefix=“demo” %>
Taglibs
•   As taglibs foram desenvolvidas pela Sun para estender as
    funcionalidades da Expression Language;
•   Basear nosso código na EL e taglibs permite que tenhamos
    um código complexo porém limpo, pois não temos código
    Java no arquivo JSP e o resultado é similar à um HTML;
•   A maioria das publicações dedica um capitulo à parte para
    esse assunto;
•   É importante também se estudar sobre JavaBeans, para se
    aprofundar o entendimento de como a Expression Language
    funciona.
JavaServer Pages - funcionamento
•   Arquivos JSP não são compilados nos editores;
•   Arquivos JSP são transformados em uma Servlet por um
    compilador JSP (o Tomcat contém um compilador embutido);
•   Esse compilador pode gerar um código Java que então é
    compilado para gerar bytecode diretamente para a Servlet;
•   Então, somente durante a execução de uma página JSP,
    quando ele é transformado em uma servlet, que seu código
    Java é compilado e necessita de classes do driver que são
    procuradas no diretório lib.
JSP - ciclo de vida




http://edn.embarcadero.com/article/26911
Referências
•   http://www.inf.ufsc.br/~bosco/downloads/livro-jsp-servlets-j2ee.pdf
•   http://www.devmedia.com.br/fundamentos-de-servlets/3573
•   http://www.cse.iitb.ac.in/dbms/Data/Courses/DBIS/Software/servlets/servlet_tutorial.html
•   http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
•   http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzamy
    %2F50%2Fprogram%2Fservlife.htm
•   http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html
•   http://edn.embarcadero.com/article/26911
•   Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan;
    Law, Debbie; Longshw, Andy; Roxburgh, Peter. Editora Pearson Education, 2003.
•   FJ-21 Java para desenvolvimento web. Caelum. http://www.caelum.com.br/download/caelum-
    java-web-fj21.pdf

Mais conteúdo relacionado

Mais procurados

Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Eduardo Mendes
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...Professor Samuel Ribeiro
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoEduardo Mendes
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Helder da Rocha
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTMario Sergio
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Eduardo Mendes
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves PagesAmanda Luz
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoGuilhermePetrosky
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...Professor Samuel Ribeiro
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8maxrosan
 

Mais procurados (20)

Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
 
Tutorial +login+mvc
Tutorial +login+mvcTutorial +login+mvc
Tutorial +login+mvc
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
 
JSPs Etiquetas
JSPs EtiquetasJSPs Etiquetas
JSPs Etiquetas
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 

Destaque

Tutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMITutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMISimão Neto
 
Uso de Aplicações em Camadas no segmento Varejo
Uso de Aplicações em Camadas no segmento VarejoUso de Aplicações em Camadas no segmento Varejo
Uso de Aplicações em Camadas no segmento VarejoMatheus Nani
 
4. Liferay JSP Portlets
4. Liferay JSP Portlets4. Liferay JSP Portlets
4. Liferay JSP PortletsSEA Tecnologia
 

Destaque (6)

Tutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMITutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMI
 
Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
JSP: Etiquetas
JSP: EtiquetasJSP: Etiquetas
JSP: Etiquetas
 
JSP: Introdução Parte 1
JSP: Introdução Parte 1JSP: Introdução Parte 1
JSP: Introdução Parte 1
 
Uso de Aplicações em Camadas no segmento Varejo
Uso de Aplicações em Camadas no segmento VarejoUso de Aplicações em Camadas no segmento Varejo
Uso de Aplicações em Camadas no segmento Varejo
 
4. Liferay JSP Portlets
4. Liferay JSP Portlets4. Liferay JSP Portlets
4. Liferay JSP Portlets
 

Semelhante a Servlets e jsp (20)

servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
 
Servlets
ServletsServlets
Servlets
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Aplicações web parte 2
Aplicações web parte 2Aplicações web parte 2
Aplicações web parte 2
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Revisao Geral
Revisao GeralRevisao Geral
Revisao Geral
 
Servlets E Applet
Servlets E AppletServlets E Applet
Servlets E Applet
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6
 
Jsf
JsfJsf
Jsf
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
Palestra
PalestraPalestra
Palestra
 
Java wsdp
Java wsdpJava wsdp
Java wsdp
 

Último

Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...LuizHenriquedeAlmeid6
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAlexandreFrana33
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino FundamentalCartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamentalgeone480617
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfNoções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfdottoor
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfangelicass1
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdfDemetrio Ccesa Rayme
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASEdinardo Aguiar
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyasminlarissa371
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 

Último (20)

Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptx
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino FundamentalCartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfNoções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdf
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 

Servlets e jsp

  • 1. Servlets e JSP Introdução e visão geral de algumas características
  • 2. Servidor de aplicação • Um servidor de aplicação implementa todas as especificações do Java EE (grande conjunto de especificações) e tem o papel de servir sua aplicação para auxilia-la com serviços de infraestrutura; • JBoss; • Glassfish.
  • 3. Servlet Container • O Servlet Container é um servidor que suporta algumas funcionalidades como as Servlet, o JSP¹, JSTL² e JSF³ e não a implementação do Java EE por completo; • Apache Tomcat; • Jetty (usado no Google App Engine) 1 - JavaServer Pages; 2 - JavaServer Pages Standard Tag Library; 3 - JavaServer Faces
  • 4. Servlets A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by web servers. For such applications, Java Servlet technology defines HTTP-specific servlet classes. http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
  • 5. Servlets The javax.servlet and javax.servlet.http packages provide interfaces and classes for writing servlets. All servlets must implement the Servlet interface, which defines lifecycle methods. When implementing a generic service, you can use or extend the GenericServlet class provided with the Java Servlet API. The HttpServlet class provides methods, such as doGet and doPost, for handling HTTP-specific services. http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
  • 6. Servlets Servlets são classes Java, desenvolvidas de acordo com uma estrutura bem definida que, quando instaladas e configuradas em um servidor que implemente um Servlet Container, podem tratar requisições recebida de clientes web (browsers). JSP, Servlets e J2EE - Temple, André; Mello, Rodrigo; Calegari, Danival; Schiezaro, Maurício. (GNU License)
  • 7. Servlets Uma servlet é um componente no lado do servidor. Ela pode ser usada para estender a funcionalidade de qualquer servidor compatível com Java, mas normalmente as servlets são usadas para escrever aplicativos Web em um servidor Web. [...]. Com freqüência elas são usadas para criar páginas da Web que não são estáticas. Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law, Debbie, Longshaw, Andy; Roxburgh, Peter. Pearson Education, São Paulo, 2003.
  • 8. Servlets • O nome “servlet” vem da ideia de um pequeno servidor cujo objetivo é receber chamadas HTTP, processá-las e devolver uma resposta ao cliente; • Ao receber uma requisição, um Servlet pode capturar os parâmetros dessa requisição, efetuar qualquer processamento inerente a uma classe Java e devolver uma página HTML; • Os servlets normalmente utilizam o protocolo HTTP, apesar de não serem restritos a ele;
  • 9. Servlets • Diversas requisições podem ser feitas ao mesmo Servlet ao mesmo tempo em um único servidor, por isso ela é mais rápida que um programa CGI, que não permitia isso; • Servlets ficam na memória entre requisições, não precisa ser reinstanciada; • em CGI, cada cliente é representado por um processo; com servlets, cada cliente é representado por uma linha de execução.
  • 10. Servlets • É importante perceber que sua Servlet será instanciada uma única vez pelo container e esse objeto será usado para atender todas requisições de todos os clientes em threads separadas; é isso que traz melhorias em relação aos CGI, que disparavam diversos processos;
  • 11.
  • 12. Visão geral: Servlets • Interface Servlet: define métodos que todos os servlets devem implementar; • Classe abstrata GenericServlet: Define um servlet genérico, independe de protocolo específico; • Classe abstrata HttpServlet: Provê uma classe abstrata a ser implementada para criar um servlet HTTP, adequado para um Web site;
  • 13. Servlet - exemplo public class Welcome extends HttpServlet { protected void service( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { PrintWriter out = response.getWriter(); String name = request.getParameter(“name”); out.println(“<html>”); out.println(“body”); out.println(“Welcome ” + name + “!!!”); out.println(“</body>”); out.println(“</html>”) } }
  • 14. Servlets - ciclo de vida http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html
  • 15. Servlets - ciclo de vida • Os métodos init() e destroy(), quando reescritos, são obrigados a chamar o super.init() e super.destroy(); • Supondo que um desses métodos execute alguma tarefa fundamental em sua classe pai, esquecer de chamar o super pode lhe causar problemas!!!
  • 16. Servlets - exemplo public class Welcome extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); log(“Beginning the Servlet ...”); } public void destroy() { super.destroy(); log(“... finishing the Servlet.”) } protected void service( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { ... } }
  • 17. Servlets - HTTP O método service() aceita todos os métodos HTTP, portanto temos que especificar qual iremos utilizar através dos seguintes métodos: void doGet( HttpServletRequest request, HttpServletResponse response ); void doPost( HttpServletRequest request, HttpServletResponse response ); Além de GET e POST o protocolo HTTP possui ainda mais 6 métodos: PUT, DELETE, HEAD, TRACE, CONNECT e OPTIONS; Os mais conhecidos são o GET e POST pois são os únicos que HTML 4 suporta. http://docs.oracle.com/javaee/1.4/api/javax/servlet/http/HttpServlet.html
  • 18. Servlets - mapeamento As servlets devem ser mapeadas no arquivo web.xml para que sua aplicação saiba como localizá-la ... <servlet> <servlet-name>welcome</servlet-name> <servlet-class>br.inpe.cptec.servlet.Welcome</servlet-class> </servlet> <servlet-mapping> <servlet-name>welcome</servlet-name> <url-pattern>/</utl-pattern> </servlet-mapping>
  • 19. Servlets - mapeamento ... ou à partir da versão 3.0 da API de Servlets, lançada em Dezembro de 2009 com o Java EE 6, não é mais necessário configurar as Servlets no web.xml, pode-se apenas usar a anotação @WebServlet: @WebServlet(name=“welcome”, urlPatterns={“/”, “/welcome”, “/oi”}) public class Welcome extends HttpServlet { ... }
  • 20. JavaServer Pages JavaServer Pages is a Sun Microsystems specification for combining Java with HTML to provide dynamic content for web pages. [...] JSP is more convenient to write than HTTP servlets because they allow you to embed Java code directly into your HTML pages. JSP enables you to separate the dynamic content of a Web page from its presentation. http://docs.oracle.com/cd/E13222_01/wls/docs70//jsp/intro.html
  • 21. JavaServer Pages Uma JSP é apenas outra servlet e, assim como as servlets HTTP, uma JSP é um componente web no lado do servidor que pode ser usado para gerar páginas da Web dinâmica. A diferença fundamental entre servlets e JSPs é: •As servlets geram código HTML de código Java; •As JSPs incorporam código Java em código HTML estático. Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law, Debbie, Longshaw, Andy; Roxburgh, Peter. Pearson Education, São Paulo, 2003.
  • 22. JavaServer Pages • Criado para contornar limitações no desenvolvimento com Servlets; • Permite que a criação do HTML dinâmico não se misture com a lógica da aplicação em si; • Estrutura do arquivo jsp é baseada no HTML; • Permite que se escreva código Java no arquivo, para que possamos adicionar comportamento dinâmico em nossa página, como condicionais (if), loops (while);
  • 23. JavaServer Pages • Todo scriptlet (script + sufixo let, de pequeno) deve ser escrito entre as tags <% %>; • Para declarar uma variável é simples, basta fazer: <% String message = “Welcome!”; %> • Todo arquivo JSP possui uma variável chamada out, do tipo JspWriter, que permite imprimir para o response através do método println(): • <% out.println( message ); %>
  • 24. JavaServer Pages • Além da variável out, existem outras que estão implícitas nas nossas páginas JSP; • Existe ainda outra possibilidade para imprimir o conteúdo da nossa variável através do seguinte atalho: <% =message %> • Comentários em páginas JSP devem ser feitos da seguinte maneira: • <%-- Comentário em JSP --%>
  • 25. JavaServer Pages No JSP existe um elemento chamado diretiva; as diretivas são usadas para definir informações sobre sua página para o tradutor, elas não produzem saída HTML: <%@ diretiva [ atributo=“valor” ] %> Dentre as diretivas existentes uma delas é a include; você a usa para inserir o conteúdo de outro arquivo JSP. O arquivo incluído pode conter tags HTML e/ou JSP. <%@ include file=”header.jsp”%>
  • 26. JavaServer Pages Há também a diretiva page, ou seja, uma configuração específica de uma página. Elas são usadas para definir propriedades dependentes da página: <%@ page import=“br.inpe.cptec.dao.”%> O atributo import permite que seja especificado qual o pacote a ser importado. Para diversos pacotes basta separá-los por vírgula. <%@ page import=“java.util.*, br.inpe.cptec.dao.*” %>
  • 27. JavaServer Pages Outra e também muito importante é a diretiva taglib. As bibliotecas de tags (taglibs) estendem ainda mais a filosofia das JSPs, para que seja possível escrever a maioria das páginas Web sem usar código Java: <%@taglib uri=“/demo” prefix=“demo” %>
  • 28. Taglibs • As taglibs foram desenvolvidas pela Sun para estender as funcionalidades da Expression Language; • Basear nosso código na EL e taglibs permite que tenhamos um código complexo porém limpo, pois não temos código Java no arquivo JSP e o resultado é similar à um HTML; • A maioria das publicações dedica um capitulo à parte para esse assunto; • É importante também se estudar sobre JavaBeans, para se aprofundar o entendimento de como a Expression Language funciona.
  • 29. JavaServer Pages - funcionamento • Arquivos JSP não são compilados nos editores; • Arquivos JSP são transformados em uma Servlet por um compilador JSP (o Tomcat contém um compilador embutido); • Esse compilador pode gerar um código Java que então é compilado para gerar bytecode diretamente para a Servlet; • Então, somente durante a execução de uma página JSP, quando ele é transformado em uma servlet, que seu código Java é compilado e necessita de classes do driver que são procuradas no diretório lib.
  • 30. JSP - ciclo de vida http://edn.embarcadero.com/article/26911
  • 31. Referências • http://www.inf.ufsc.br/~bosco/downloads/livro-jsp-servlets-j2ee.pdf • http://www.devmedia.com.br/fundamentos-de-servlets/3573 • http://www.cse.iitb.ac.in/dbms/Data/Courses/DBIS/Software/servlets/servlet_tutorial.html • http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html • http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzamy %2F50%2Fprogram%2Fservlife.htm • http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html • http://edn.embarcadero.com/article/26911 • Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law, Debbie; Longshw, Andy; Roxburgh, Peter. Editora Pearson Education, 2003. • FJ-21 Java para desenvolvimento web. Caelum. http://www.caelum.com.br/download/caelum- java-web-fj21.pdf