1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste...

63
1

Transcript of 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste...

Page 1: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

1

Page 2: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

2

Modelo Cliente-ServidorModelo Cliente-Servidor

O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas em dois grupos. Esta divisão implica na criação de dois sistemas. O sistema servidor e o sistema cliente.A característica principal do modelo sliente-servidor é que a comunicação, via algum protocolo, entre os sistemas por iniciativa do cliente. O objetivo do sistema servidor é atender as requisições no sistema cliente.

Page 3: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

3

NetBeansNetBeans

NetBeans IDE é um conjunto de bibliotecas, módulos e APIs. formando um ambiente integrado de desenvolvimento visual possibilitando ao desenvolvedor complilar, debugar, efetuar deploying de suas aplicações .

É um produto open source, 100% Java e possui vários módulos de expansão (modules), que podem ser baixados do próprio site

http://www.netbeans.org

Page 4: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

4

NetBeansNetBeans• Interface com o usuário – Os menus, barras de

ferramentas e outros componentes UI-interfaces de apresentação são fornecidos por esta plataforma.

• Editor - Rico em recursos para aplicações visuais Swing ou AWT, para aplicações WEB (Servlets e JSP, JSTL, EJBs) , XML com suporte a DTDs e XML Schemas e etc.

• Gerenciamento – As views gerenciam a estrutura do seu projeto localmente ou remotamente, podendo também utilizar Projects. CVS, FTP ou base de dados remota.

• Cross-Plataform – Totalmente escrito em 100% Java, portanto multi-plataforma .

• Wizards - ferramentas de gerenciamento de código, criação de templates, etc.

Page 5: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

5

NetBeansNetBeans

SamplesExemplos

TutorialsTutorial

WorkbenchÁrea de trabalho

Page 6: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

6

Área de trabalhoÁrea de trabalho

Projeto

Área de Desenvolvimento

Navegador

Saida

Page 7: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

7

Criando ProjetoCriando Projeto

Aplicação Web Site

Page 8: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

8

Criando ProjetoCriando Projeto

Page 9: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

9

Line NumberLine Number

Page 10: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

10

FerramentasFerramentas

Page 11: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

11

Alterar o NavegadorAlterar o Navegador

Page 12: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

12

Configuração: Fonte etcConfiguração: Fonte etc

Page 13: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

13

Java 2 Platform Enterprise EditionJava 2 Platform Enterprise Edition

Page 14: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

14

Java 2 Platform Enterprise EditionJava 2 Platform Enterprise Edition

Page 15: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

15

Arquitetura

Java 2 Platform Enterprise EditionJava 2 Platform Enterprise Edition

Page 16: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

16

J2EE: Programação Java para WebJ2EE: Programação Java para Web

A tecnologia Java nos permite escrever aplicações robustas e seguras para rodar no ambiente internet. Isto é possível através da tecnologia de Java Servlets e JavaServer Pages (JSP).

Servlets são classes Java que atendem às requisições HTTP.

JSP são documentos HTML com código Java embutido. Eles são usados, principalmente, como interface visual com o cliente web.A arquitetura das aplicações web seguem, geralmente, o modelo de 3 camadas, como abaixo:

Page 17: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

17

Java Server Pages (JSP)Java Server Pages (JSP)

JavaServer Pages é uma tecnologia para geração dinâmica de conteúdo HTML. Principal tecnologia Java para a camada de interface Web.

Um JSP é um arquivo texto contento conteúdo HTML e código Java. O conteúdo dinâmico é gerado a partir da execução do código Java.

Quando o usuário solicita a execução de um JSP ao servidor web, este repassa a solicitação ao Container Web, o qual irá executar o JSP e retornar para o servidor web o conteúdo HTML resultante da execução do JSP.

Page 18: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

18

Java Server Pages (JSP)Java Server Pages (JSP)

Os elementos do JSP são definidos através de tags. "<%" e "%>"

O arquivo JSP é lido pelo Container Web e convertido em código fonte Servlet, para em seguida ser compilado e executado. A conversão em código fonte Servlet e a compilação são realizadas apenas na primeira solicitação para o JSP ou quando o JSP é alterado.

Page 19: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

19

Criando um Projeto Web Criando um Projeto Web ApplicationApplication

Page 20: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

20

Application: index.jspApplication: index.jsp

Page 21: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

21

O TomcatO Tomcat

O Tomcat tem suas origens no início da tecnologia Servlet. A Sun Microsystems criou o primeiro contêiner servlet, o Java Web Server, para demonstrar a tecnologia. Ao mesmo tempo, o Apache Software Foundation (ASF) criou JServ, um servlet engine que integrava com o servidor Web Apache. EM 1999, a Sum Microsystems doou o código do java Web Server para o ASF, e os dois projetos se fundiram para criar o Tomcat. A versão 3.x. Em 2001, o ASF liberou a versão 4.0 do Tomcat.

Page 22: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

22

Páginas Dinâmicas JSPPáginas Dinâmicas JSP

JavaServer Pages (JSP) são páginas Java embebidas em HTML. A página dinâmica é gerada pelo código JSP. A primeira vez que uma página JSP é carregada pelo container JSP, o código Java é compilado gerando um Servlet que é excutado.

O netBeans, por padrão, ao criar um projeto Web, cria uma página JSP chamada de index.jsp.

Escrever código Java em sua página JSP é bem simples, basta adicionar as tags <% %>. A isto chamamos de scriptlet.

Page 23: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

23

Java Server Pages (JSP)Java Server Pages (JSP)

3. ScripletsOs Scriplets possuem objetos Java implícitos.

Objeto Descriçãorequest Objeto request HTTP

response Objeto response HTTP

session Sessão HTTP

out Stream para o resultado do JSP

exception Exceção na página de erro.

Page 24: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

24

Java ServerJava Server Pages (JSP)Pages (JSP)

3. ScripletsOs principais métodos dos objetos implícitos são.

Objeto/Método

request.getParameter(nome)

response.sendRedirect(url)

session.setAttribute(nome, Objeto)

session.getAttribute(nome)

Page 25: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

25

Objetos ImplícitosObjetos Implícitos

Com a intenção de dar produtividade no desenvolvimento de aplicações Web usando linguagem Java, foi criado um conjunto de objetos que pode ser usado dentro de uma página JSP sem precisar de declaração.

REQUEST: O objeto request provê acesso a todas as informações disponíveis requisitadas pelo usuário.

OUT: O objeto out (do tipo JspWriter) é usada para imprimir caracteres, através do método write(), print() ou println().

Page 26: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

26

Estrutura de JavaServer Estrutura de JavaServer PagesPages

Tags de abertura e fechamento código jsp<% %>

Comentários:<%-- --%>/* */

Declaração de atributo ou métodos: <%! %>

Expressão de um resultado: <%= %>

Tags Personalizadas: <%@taglib %>

Page 27: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

27

Estrutura de JavaServer Estrutura de JavaServer Pages(JSP)Pages(JSP)

Page 28: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

28

Estrutura de JavaServer Estrutura de JavaServer Pages(JSP)Pages(JSP)

Page 29: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

29

Página: index.jspPágina: index.jsp

Page 30: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

30

Página: pagina2.jspPágina: pagina2.jsp

Page 31: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

31

Página: index.jspPágina: index.jsp

Page 32: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

32

Página: arquivo.jspPágina: arquivo.jsp

Page 33: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

33

Página: arquivo.jspPágina: arquivo.jsp

Page 34: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

34

Página: arquivo.jspPágina: arquivo.jsp

Page 35: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

35

Página: arranjo.jspPágina: arranjo.jsp

Page 36: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

36

Página: arranjo.jspPágina: arranjo.jsp

Page 37: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

37

API ServletAPI Servlet

A API Servlet é composta por um conjunto de interfaces e Classes. O componente mais básico da API é interface Servlet. Ela define o comportamento básico de um Servlet.

public interface Servlet{ public void init (ServletConfig config) throws Servlet Exception; public ServletConfig getServletConfig(); public void service(ServletRequest req, ServletResponse res) throws ServletEsception, IOException; public String getServletInfo(); public void destroy();}

Page 38: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

38

API ServletAPI Servlet

Page 39: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

39

API ServletAPI Servlet

Page 40: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

40

API ServletAPI Servlet

Page 41: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

41

API ServletAPI Servlet

Page 42: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

42

API ServletAPI Servlet

Page 43: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

43

API ServletAPI Servlet

Page 44: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

44

API ServletAPI Servlet

Page 45: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

45

API ServletAPI Servlet

Page 46: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

46

API ServletAPI Servlet

A classe HttpServlet foi projetada para lidar com o protocolo HTTP.

public abstract class HttlServlet extends GenericServlet implements java.io.Serializable

Page 47: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

47

API ServletAPI Servlet

• O método doGet() trata as requisições GET. Este tipo de requisição pode ser enviadas várias vezes.

• O método doPost() trata as requisições POST que permitem que o cliente envie dados de tamanho ilimitado para o servidor Web uma única vez.

• O método doPut() trata as requisições PUT. Este tipo de requisição permite que o cliente envie um arquivo para o servidor à semelhança de como é feito via FTP.

• O método doDelete() trata as requisições DELETE, permitindo que o cliente remova um documento ou uma página do servidor.

Todos esses métodos são invocados pelo servidor por meio do método service().

Page 48: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

48

API ServletAPI Servlet

Page 49: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

49

API ServletAPI Servlet

Page 50: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

50

API ServletAPI Servlet

Page 51: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

51

API ServletAPI Servlet

Page 52: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

52

API ServletAPI Servlet

Page 53: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

53

No arquivo index.jsp, você irá adicionar um formulário HTML. Para fazer isso, você possui duas formas: digitando ou utilizando a janela Palette como auxiliar.

index.jsp & Servletindex.jsp & Servlet

Page 54: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

54

Application: Servlet.javaApplication: Servlet.java

Page 55: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

55

Application: Servlet.javaApplication: Servlet.javaO Servlet possui a extensão .java. Portanto, Servlets são classes Java, desenvolvidas de acordo com uma estrutura bem definida.Servlet Container (Servidor de Aplicações Java)doGet() e doPost(). Ambos chamam processRequest().Estes métodos possuem a habilidade de resgatar informações enviadas pelo usuário tanto pelo método GET.O Servlet estende a classe javax.servlet.http.HttpServlet, uma classe abstrata que estende a javax.servlet e javax.servlet.html, que pertencem a API Servlet do Java EE.A saída de informações, para serem impressas no HTML de retorno ao usuário, é feito pelo método println, de java.io.PrintWriter.

Page 56: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

56

JDBCJDBC

JDBC é a definição de uma API para acesso a banco de dados através da linguagem Java. A implementação dessa API é denominada de Driver JDBC. O Driver JDBC será o responsável pela efetiva comunicação com o SGBD. Desta forma um programa Java será independente do SGBD, bastando apenas utilizar o Driver JDBC adequado ao SGBD a ser acessado. O programa é implementado utilizando a API JDBC e no momento da sua execução as classes do Driver JDBC são utilizadas.

Page 57: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

57

JDBCJDBC

A API foi definida no pacote java.sqlAs principais classes da API JDBC são:

•DriverManager;•Connection;•Statement;•PreparedStatement;•CallableStatement;•ResultSet;•ResultSetMetaData;•DatabaseMetaData;•SQLException.

Page 58: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

58

JDBC

Utilizando a API JDBC

A utilização da API requer as seguintes operações:

1. Carga do Driver JDBC (Class.forName());

2. Solicitação da conexão com o Banco de Dados (DriverManager e Connection);

3. Obtenção de objetos, a partir da conexão, para executar comandos SQL (Statement, PreparedStatement e CallableStatement);

4. Navegação no resultado dos comando SQL (ResultSet)

5. Tratamento das exceções que ocorrerem (SQLException). O objeto SQLException possui o método getErroCode(), o qual retorna o código de erro específico do SGBD.

Page 59: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

59

Criando um Projeto Web Criando um Projeto Web Application: DBApplication: DB

Page 60: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

60

Definindo Driver JDBCDefinindo Driver JDBC

Page 61: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

61

index.jspindex.jsp<%@ page contentType="text/html" language="java" import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html> <head> <title>Teste de Conexão</title> </head> <body> <% Connection con; Statement stm; try { Class.forName("org.gjt.mm.mysql.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbjava","root",""); stm = con.createStatement(); out.println("Conexão efetuada com sucesso "); } catch (Exception e) { out.println(“ERRO banco " + e.getMessage()); } %> </body> </html>

Page 62: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

62

index.jspindex.jsp

<%@ page contentType="text/html" language="java" import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html> <head> <title>JSP Page</title> </head> <body><% Connection conn = null; Statement st = null; ResultSet rs = null; try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbjava","root","");

out.println("OK:: Conexao com sucesso!"); st = conn.createStatement(); rs = st.executeQuery("select * from tbagenda");

Page 63: 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste modelo, as tarefas que o software deve realizar são divididas.

63

index.jspindex.jsp

while (rs.next() ){ out.println(rs.getString("nome")); out.println(rs.getString("cidade")+"<br>"); } }catch (Exception ex){ ex.printStackTrace(); }finally { rs.close(); st.close(); conn.close(); } %> </body> </html>