SlideShare uma empresa Scribd logo
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;
Servlets e jsp
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

PPTX
Aula 1 - curso java web - JSP Java Server Page
PDF
Servlets e JSP
PDF
Curso de JSP
PDF
Introdução ao Desenvolvimento de aplicações WEB com JSP
PDF
Java Web 1 Introducao
ODP
Servlets e JSP
PPTX
JSPs Introdução Parte 1
Aula 1 - curso java web - JSP Java Server Page
Servlets e JSP
Curso de JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
Java Web 1 Introducao
Servlets e JSP
JSPs Introdução Parte 1

Mais procurados (20)

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

Destaque (6)

PDF
Tutorial passo a passo sobre RMI
PPTX
Apresentação JSF
PPTX
JSP: Etiquetas
PPTX
JSP: Introdução Parte 1
PPTX
Uso de Aplicações em Camadas no segmento Varejo
PDF
4. Liferay JSP Portlets
Tutorial passo a passo sobre RMI
Apresentação JSF
JSP: Etiquetas
JSP: Introdução Parte 1
Uso de Aplicações em Camadas no segmento Varejo
4. Liferay JSP Portlets
Anúncio

Semelhante a Servlets e jsp (20)

PPTX
Trabalho ProgramaçãO Comercial Ii
PDF
ODP
servlet-introducao
PPTX
Introdução aos Servlets e JSPs
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Aplicações web parte 2
PPTX
PDF
Curso de Servlets
PDF
Apostilava Java EE 5 - 2007
PDF
02 - Fundamentos de Servlets
PPT
Servlets 2.5
PDF
Jsp servlets j2_ee
PPT
Te servelts
PDF
Java Server Pages
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
Uma abordagem ao Java EE 6
PPT
apache+ssl+Jserv
PDF
Daw slide 06
PPT
Te aula2
Trabalho ProgramaçãO Comercial Ii
servlet-introducao
Introdução aos Servlets e JSPs
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Aplicações web parte 2
Curso de Servlets
Apostilava Java EE 5 - 2007
02 - Fundamentos de Servlets
Servlets 2.5
Jsp servlets j2_ee
Te servelts
Java Server Pages
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Uma abordagem ao Java EE 6
apache+ssl+Jserv
Daw slide 06
Te aula2

Último (20)

PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PDF
CARTÕES DIA DOS ESTUDANTES MORANGO DO AMOR.pdf
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PDF
Células Introdução para as aulas de EJA.
PPTX
biossegurança e segurança no trabalho (6).pptx
PPTX
Noções de Saúde e Segurança do Trabalho.pptx
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
HISTÓRIA DO BRASIL - anos de Democracia.pptx
PPT
aula de envelecimento.ppt saúde do idoso
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PPTX
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
PPTX
ELEMENTOS E FUNÇÕES DE LINGUAGEM (EMOTIVA, REFERENCIAL, CONATIVA, POÉTICA, FÁ...
PDF
A provisão de jojuador (ramadã) islamismo
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PPT
sistema reprodutor para turmas do oitavo ano
PPTX
Trabalho Cidades sustentáveis ou Utopia.pptx
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PDF
Formação politica brasil_2017.pptx.pdf
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
CARTÕES DIA DOS ESTUDANTES MORANGO DO AMOR.pdf
Filosofia Ocidental Antiga 2025 - versão atualizada
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
Aula 13 - Tópico Frasal - Argumentação.pptx
Células Introdução para as aulas de EJA.
biossegurança e segurança no trabalho (6).pptx
Noções de Saúde e Segurança do Trabalho.pptx
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
HISTÓRIA DO BRASIL - anos de Democracia.pptx
aula de envelecimento.ppt saúde do idoso
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
ELEMENTOS E FUNÇÕES DE LINGUAGEM (EMOTIVA, REFERENCIAL, CONATIVA, POÉTICA, FÁ...
A provisão de jojuador (ramadã) islamismo
INDÚSTRIA_ Histórico da industrialização.pptx
sistema reprodutor para turmas do oitavo ano
Trabalho Cidades sustentáveis ou Utopia.pptx
Realismo e Naturalismo: Aluísio Azevedo.
Formação politica brasil_2017.pptx.pdf

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;
  • 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