Your SlideShare is downloading. ×
Java Web Components
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Java Web Components

1,835
views

Published on

Módulo 1 - Revisão dos conceitos básicos do desenvolvimento de componentes web em Java.

Módulo 1 - Revisão dos conceitos básicos do desenvolvimento de componentes web em Java.

Published in: Technology, News & Politics

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Lato Sensu em Sistemas Orientados a Objetos Módulo 1 Desenvolvimento de Componentes Java Web (revisão) Saturday, August 15, 2009
  • 2. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Saturday, August 15, 2009
  • 3. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 (re)Visão Geral Saturday, August 15, 2009
  • 4. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 WWW • É uma rede de redes de computadores. • Baseada numa arquitetura Cliente-Servidor. • Comunicação via HTTP. Saturday, August 15, 2009
  • 5. Saturday, August 15, 2009
  • 6. Saturday, August 15, 2009
  • 7. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 HTTP Saturday, August 15, 2009
  • 8. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 HTTP • Clientes: - Fazem as requisições GET, POST, HEAD e outras. - Processam as respostas. • Servidores: - Interpretam as requisições e - Enviam as respostas ao cliente. Saturday, August 15, 2009
  • 9. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Web Site conteúdo estático http://www.servidor.com.br/relatorio/relatoriodiario.html Saturday, August 15, 2009
  • 10. http://asp3wiki.wrox.com/wiki/1-1-1-static-pages-vs-dynamic-pages Saturday, August 15, 2009
  • 11. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Aplicações Web conteúdo dinâmico - CGI (Common Gateway Interface). - ASP (Active Server Pages). - Servlets. - JSP (Java Server Pages). Saturday, August 15, 2009
  • 12. http://asp3wiki.wrox.com/wiki/1-1-1-static-pages-vs-dynamic-pages Saturday, August 15, 2009
  • 13. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 CGI Saturday, August 15, 2009
  • 14. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 CGI 1 requisição, 1 processo Saturday, August 15, 2009
  • 15. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 CGI N requisições, N processos Saturday, August 15, 2009
  • 16. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 CGI • Vantagens: - Podem ser escritos em várias linguagens. Mais populares são C e Perl. • Desvantagens: - Cada shell é um processo. - Não é escalável. - A linguaguem utilizada: Nem sempre é robusta ou orientada a objetos. Nem sempre é independente de plataforma. Saturday, August 15, 2009
  • 17. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Servlets Saturday, August 15, 2009
  • 18. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Servets Saturday, August 15, 2009
  • 19. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Servets Saturday, August 15, 2009
  • 20. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Servlets • Vantagens: - Performance Threads são mais rápidas que processos. - Escalabilidade - Linguagem Java é robusta e orientada a objetos. - Indenpendente de plataforma. • Desvantagens: - O processamento da lógica de negócio é realizado em conjunto com a geração HTML. Saturday, August 15, 2009
  • 21. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Servlets e CGI problemas • Para a geração de páginas dinâmicas, é preciso embutir o HTML ou XML dentro de instruções de uma linguagem de programação. Em Java Servlets seria o seguinte: out.print(“<html>”); out.print(“<head>”); ... out.print(“</head>”); out.print(“<table border='1' cellspacing='0' cellpadding='5'>”); out.print(“<tr><th>Número</th><th>Número^2</th></tr>”); for (int i=0; i<10; i++)‫{ ‏‬ out.print(“<tr><td>” + i + “</td><td>” + (i*i) + “</td></tr>”); } out.print(“</table>”); out.print(“</html>”); Saturday, August 15, 2009
  • 22. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Servlets e CGI problemas • Maior parte da informação da página é estática, no entanto, precisa ser embutida no código. • Afasta o Web designer do processo de criação de aplicações Web. • O programador fica sendo o responsável pela parte do HTML. Saturday, August 15, 2009
  • 23. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Saturday, August 15, 2009
  • 24. a Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Java <html> <html/> Java Java </html> Servlets JSP Saturday, August 15, 2009
  • 25. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 JSP • Coloca código de programação em páginas HTML <html> <head> ... </head> <table border='1' cellspacing='0' cellpadding='5'> <tr><th>Número</th><th>Número^2</th></tr> <% for (int i=0; i<10; i++)‫‏‬ { %> <tr><td> <%= i %> </td><td> <%= i*i %> </td></tr> <% } %> </table> </html> Saturday, August 15, 2009
  • 26. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 JSP • Vantagens: - Todas as vantagens do uso de Servlets; - Uso de linguagem Java como a “linguagem de script”. • Desvantagens: - Se usada só, o código de script terá de realizar lógica de controle e de negócio, tornando as páginas JSP muito complexas de se manter. Saturday, August 15, 2009
  • 27. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 WebApp estrutura Saturday, August 15, 2009
  • 28. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Web Application Archive WAR Saturday, August 15, 2009
  • 29. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Tomcat • Servidor de aplicações Web. • Gratuito. • Código Livre. - http://jakarta.apache.org/tomcat/index.html • Muito simples de se utilizar. Saturday, August 15, 2009
  • 30. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Diretórios do Tomcat • bin - Arquivos para a iniciar e parar o Tomcat. • conf - Arquivos de configuração. • logs - Arquivos de logs do Tomcat. • webapps - Onde as aplicações Web devem ser implantadas. Saturday, August 15, 2009
  • 31. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Deploy Implantando uma aplicação Web no Tomcat Saturday, August 15, 2009
  • 32. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 ? Saturday, August 15, 2009
  • 33. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Servlets Saturday, August 15, 2009
  • 34. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Servlet É um componente que fica do lado do servidor, capaz de processar dinamicamente requisições e gerar respostas. Saturday, August 15, 2009
  • 35. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Classes Saturday, August 15, 2009
  • 36. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Ciclo de vida Saturday, August 15, 2009
  • 37. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 package capitulo02; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.*; public class MyServlet extends GenericServlet { public void init(ServletConfig config) throws ServletException { super.init(config); Date thisDate = new Date(); log("MyServlet inicializada em:" + thisDate); } ... Saturday, August 15, 2009
  • 38. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 public void service(ServletRequest request, ServletResponse response)‫‏‬ throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println(" <head>"); out.println(" <title>Servlet Simples</title>"); out.println(" </head>"); out.println(" <body>"); out.println(" <h2>" + getServletName() + "</h2>"); out.println("Este é um exemplo de Servlet Simples.<br>"); out.println("<hr>"); out.println(" </body>"); out.println("</html>"); out.close(); } public void destroy() { Date thisDate = new Date(); log("MyServlet destruida em:" + thisDate); } } Saturday, August 15, 2009
  • 39. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Web.xml <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>capitulo02.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping> </web-app> Saturday, August 15, 2009
  • 40. package capitulo02; ... public class HttpServletHeaders extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)‫‏‬ throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body bgcolor="white">"); out.println("<head>"); out.println("<title>Here are the headers</title>"); out.println("</head>"); out.println("<body>"); out.println("<h3>Headers</h3>"); out.println("<table border=0>"); Enumeration e = request.getHeaderNames(); while (e.hasMoreElements())‫{ ‏‬ String headerName = (String) e.nextElement(); String headerValue = request.getHeader(headerName); out.println("<tr><td>"); out.println(headerName); out.println("</td><td>"); out.println(headerValue); out.println("</td></tr>"); } out.println("</table>"); } Saturday, August 15, 2009
  • 41. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 ? Saturday, August 15, 2009
  • 42. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 JSP Saturday, August 15, 2009
  • 43. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 JSP – Java Server Pages • É outra forma de desenvolver aplicações Web com Java. • É uma extensão de Servlets. • Tudo que funciona para Servlets funciona para JSP. - Na verdade, JSP é uma Servlet quando está executando. • Trabalha com HTTP requests e responses. Saturday, August 15, 2009
  • 44. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 O que há de errado com Servlets? public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD><TITLE>Usando Servlets</TITLE></HEAD>"); out.println("<BODY BGCOLOR=#123123>"); //Obtém os nomes dos parâmetros Enumeration parameters = request.getParameterNames(); String param = null; while (parameters.hasMoreElements())‫‏‬ { param = (String) parameters.nextElement(); out.println(param + ": " + request.getParameter(param) + "<BR>"); } out.println("</BODY>"); out.println("</HTML>"); out.close(); } Saturday, August 15, 2009
  • 45. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 JSP vantagens <%@ page import="java.util.Enumeration" %> <HTML> <HEAD><TITLE>Usando JSP</TITLE></HEAD> <BODY BGCOLOR=#DADADA> <% //Obtém os nomes dos parâmetros Enumeration parameters = request.getParameterNames(); String param = null; while (parameters.hasMoreElements())‫‏‬ { param = (String) parameters.nextElement(); out.println(param + ":" + request.getParameter(param) + "<BR>"); } out.close(); %> </BODY> </HTML> Saturday, August 15, 2009
  • 46. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 <%@ page import="capitulo04.NumberGuessBean" %> diretivas <jsp:useBean id="numguess" class="capitulo04.NumberGuessBean" scope="session"/> <jsp:setProperty name="numguess" property="*"/> beans <html> <head><title>Acerte o Número</title></head> <body bgcolor="white"> <font size=4> <% if (numguess.getSuccess()) { scriptlets numguess.reset(); %> Parabéns!Você acertou depois de <%= numguess.getNumGuesses() %> tentativas.<p> <a href="acerteNumero.jsp">Tentar novamente?</a> <% } else if (numguess.getNumGuesses() == 0) { %> Bem Vindo ao jogo para acertar o número.<p> ações <jsp:include page="input.html" flush="true"/> <% } else { %> Tente <b><%= numguess.getHint() %></b>.<br> Já foram feitas <%= numguess.getNumGuesses() %> tentativas.<p> expressões <jsp:include page="input.html" flush="true"/> <% } %> </font> </body> </html> Saturday, August 15, 2009
  • 47. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Elementos de uma página JSP <html> <body> Acerte o número de 1 a 100.<p> <form method=get> Qual o seu palpite? <input type=text name=guess> <input type=submit value="Submit"> </form> </body> </html> input.html Saturday, August 15, 2009
  • 48. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Sintaxe dos elementos de uma JSP • Sempre interpretados no servidor. • Nunca chegam ao clinte. - Cliente só vê HTML! • Scriptlets: <% ... %> • Expressões: <%= ... %> • Declarações: <%! ... %> • Comentários: <%-- ... --%> • Diretivas: <%@ ... %> • Ações: <jsp:ação ... /> • Custom tags: <prefixo:elemento ... /> Saturday, August 15, 2009
  • 49. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Objetos implícitos Saturday, August 15, 2009
  • 50. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 Ciclo de vida de uma JSP Saturday, August 15, 2009
  • 51. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 1°/2009 ? Saturday, August 15, 2009
  • 52. Lato Sensu em Sistemas Orientados a Objetos Q&A MSc. Alexandre Gomes alegomes@gmail.com Saturday, August 15, 2009