Servlets e JSPIntroduçã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 esp...
Servlet Container•    O Servlet Container é um servidor que suporta algumas     funcionalidades como as Servlet, o JSP¹, J...
Servlets   A servlet is a Java programming language class used toextend the capabilities of servers that host applications...
Servlets   The javax.servlet and javax.servlet.http packages provideinterfaces and classes for writing servlets. All servl...
Servlets   Servlets são classes Java, desenvolvidas de acordo com umaestrutura bem definida que, quando instaladas e confi...
Servlets   Uma servlet é um componente no lado do servidor. Ela podeser usada para estender a funcionalidade de qualquer s...
Servlets•   O nome “servlet” vem da ideia de um pequeno servidor cujo    objetivo é receber chamadas HTTP, processá-las e ...
Servlets•   Diversas requisições podem ser feitas ao mesmo Servlet ao    mesmo tempo em um único servidor, por isso ela é ...
Servlets•   É importante perceber que sua Servlet será instanciada uma    única vez pelo container e esse objeto será usad...
Visão geral: Servlets•   Interface Servlet: define métodos que todos os servlets    devem implementar;•   Classe abstrata ...
Servlet - exemplopublic class Welcome extends HttpServlet {         protected void service( HttpServletRequest request,   ...
Servlets - ciclo de vidahttp://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 s...
Servlets - exemplopublic class Welcome extends HttpServlet {         public void init(ServletConfig config) throws Servlet...
Servlets - HTTP   O método service() aceita todos os métodos HTTP, portantotemos que especificar qual iremos utilizar atra...
Servlets - mapeamento  As servlets devem ser mapeadas no arquivo web.xml paraque sua aplicação saiba como localizá-la ... ...
Servlets - mapeamento   ... ou à partir da versão 3.0 da API de Servlets, lançadaem Dezembro de 2009 com o Java EE 6, não ...
JavaServer Pages   JavaServer Pages is a Sun Microsystems specification forcombining Java with HTML to provide dynamic con...
JavaServer Pages  Uma JSP é apenas outra servlet e, assim como as servletsHTTP, uma JSP é um componente web no lado do ser...
JavaServer Pages•   Criado para contornar limitações no desenvolvimento com    Servlets;•   Permite que a criação do HTML ...
JavaServer Pages•   Todo scriptlet (script + sufixo let, de pequeno) deve ser    escrito entre as tags <% %>;•   Para decl...
JavaServer Pages•   Além da variável out, existem outras que estão implícitas nas    nossas páginas JSP;•   Existe ainda o...
JavaServer Pages   No JSP existe um elemento chamado diretiva; as diretivas sãousadas para definir informações sobre sua p...
JavaServer Pages   Há também a diretiva page, ou seja, uma configuraçãoespecífica de uma página. Elas são usadas para defi...
JavaServer Pages   Outra e também muito importante é a diretiva taglib. Asbibliotecas de tags (taglibs) estendem ainda mai...
Taglibs•   As taglibs foram desenvolvidas pela Sun para estender as    funcionalidades da Expression Language;•   Basear n...
JavaServer Pages - funcionamento•   Arquivos JSP não são compilados nos editores;•   Arquivos JSP são transformados em uma...
JSP - ciclo de vidahttp://edn.embarcadero.com/article/26911
Referências•   http://www.inf.ufsc.br/~bosco/downloads/livro-jsp-servlets-j2ee.pdf•   http://www.devmedia.com.br/fundament...
Servlets e jsp
Upcoming SlideShare
Loading in...5
×

Servlets e jsp

1,905

Published on

Introdução e visão geral de algumas características.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,905
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
65
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Servlets e jsp

  1. 1. Servlets e JSPIntrodução e visão geral de algumas características
  2. 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. 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. 4. Servlets A servlet is a Java programming language class used toextend the capabilities of servers that host applicationsaccessed by means of a request-response programming model.Although servlets can respond to any type of request, they arecommonly used to extend the applications hosted by webservers. For such applications, Java Servlet technology definesHTTP-specific servlet classes. http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
  5. 5. Servlets The javax.servlet and javax.servlet.http packages provideinterfaces and classes for writing servlets. All servlets mustimplement the Servlet interface, which defines lifecyclemethods. When implementing a generic service, you can use orextend the GenericServlet class provided with the Java ServletAPI. The HttpServlet class provides methods, such as doGet anddoPost, for handling HTTP-specific services. http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
  6. 6. Servlets Servlets são classes Java, desenvolvidas de acordo com umaestrutura bem definida que, quando instaladas e configuradasem um servidor que implemente um Servlet Container, podemtratar requisições recebida de clientes web (browsers). JSP, Servlets e J2EE - Temple, André; Mello, Rodrigo; Calegari, Danival; Schiezaro, Maurício. (GNULicense)
  7. 7. Servlets Uma servlet é um componente no lado do servidor. Ela podeser usada para estender a funcionalidade de qualquer servidorcompatível com Java, mas normalmente as servlets são usadaspara escrever aplicativos Web em um servidor Web. [...]. Comfreqüência elas são usadas para criar páginas da Web que nãosã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. 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. 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. 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. 11. 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;
  12. 12. Servlet - exemplopublic 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>”) }}
  13. 13. Servlets - ciclo de vidahttp://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html
  14. 14. 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!!!
  15. 15. Servlets - exemplopublic 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 { ... }}
  16. 16. Servlets - HTTP O método service() aceita todos os métodos HTTP, portantotemos que especificar qual iremos utilizar através dos seguintesmé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
  17. 17. Servlets - mapeamento As servlets devem ser mapeadas no arquivo web.xml paraque 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>
  18. 18. Servlets - mapeamento ... ou à partir da versão 3.0 da API de Servlets, lançadaem Dezembro de 2009 com o Java EE 6, não é maisnecessário configurar as Servlets no web.xml, pode-seapenas usar a anotação @WebServlet: @WebServlet(name=“welcome”, urlPatterns={“/”, “/welcome”, “/oi”}) public class Welcome extends HttpServlet { ... }
  19. 19. JavaServer Pages JavaServer Pages is a Sun Microsystems specification forcombining Java with HTML to provide dynamic content for webpages. [...] JSP is more convenient to write than HTTP servletsbecause they allow you to embed Java code directly into yourHTML pages. JSP enables you to separate the dynamic content of a Webpage from its presentation. http://docs.oracle.com/cd/E13222_01/wls/docs70//jsp/intro.html
  20. 20. JavaServer Pages Uma JSP é apenas outra servlet e, assim como as servletsHTTP, uma JSP é um componente web no lado do servidor quepode 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.
  21. 21. 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);
  22. 22. 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 ); %>
  23. 23. 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 --%>
  24. 24. JavaServer Pages No JSP existe um elemento chamado diretiva; as diretivas sãousadas para definir informações sobre sua página para otradutor, elas não produzem saída HTML: <%@ diretiva [ atributo=“valor” ] %> Dentre as diretivas existentes uma delas é a include; você ausa para inserir o conteúdo de outro arquivo JSP. O arquivoincluído pode conter tags HTML e/ou JSP. <%@ include file=”header.jsp”%>
  25. 25. JavaServer Pages Há também a diretiva page, ou seja, uma configuraçãoespecífica de uma página. Elas são usadas para definirpropriedades dependentes da página: <%@ page import=“br.inpe.cptec.dao.”%> O atributo import permite que seja especificado qual opacote a ser importado. Para diversos pacotes basta separá-lospor vírgula. <%@ page import=“java.util.*, br.inpe.cptec.dao.*” %>
  26. 26. JavaServer Pages Outra e também muito importante é a diretiva taglib. Asbibliotecas de tags (taglibs) estendem ainda mais a filosofia dasJSPs, para que seja possível escrever a maioria das páginas Websem usar código Java: <%@taglib uri=“/demo” prefix=“demo” %>
  27. 27. 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.
  28. 28. 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.
  29. 29. JSP - ciclo de vidahttp://edn.embarcadero.com/article/26911
  30. 30. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×