Servlets e jsp

2.596 visualizações

Publicada em

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

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.596
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
105
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×