1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste...
Transcript of 1. 2 Modelo Cliente-Servidor O modelo cliente-servidor é um tipo de sistema distribuído. Neste...
1
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.
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
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.
5
NetBeansNetBeans
SamplesExemplos
TutorialsTutorial
WorkbenchÁrea de trabalho
6
Área de trabalhoÁrea de trabalho
Projeto
Área de Desenvolvimento
Navegador
Saida
7
Criando ProjetoCriando Projeto
Aplicação Web Site
8
Criando ProjetoCriando Projeto
9
Line NumberLine Number
10
FerramentasFerramentas
11
Alterar o NavegadorAlterar o Navegador
12
Configuração: Fonte etcConfiguração: Fonte etc
13
Java 2 Platform Enterprise EditionJava 2 Platform Enterprise Edition
14
Java 2 Platform Enterprise EditionJava 2 Platform Enterprise Edition
15
Arquitetura
Java 2 Platform Enterprise EditionJava 2 Platform Enterprise Edition
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:
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.
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.
19
Criando um Projeto Web Criando um Projeto Web ApplicationApplication
20
Application: index.jspApplication: index.jsp
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.
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.
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.
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)
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().
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 %>
27
Estrutura de JavaServer Estrutura de JavaServer Pages(JSP)Pages(JSP)
28
Estrutura de JavaServer Estrutura de JavaServer Pages(JSP)Pages(JSP)
29
Página: index.jspPágina: index.jsp
30
Página: pagina2.jspPágina: pagina2.jsp
31
Página: index.jspPágina: index.jsp
32
Página: arquivo.jspPágina: arquivo.jsp
33
Página: arquivo.jspPágina: arquivo.jsp
34
Página: arquivo.jspPágina: arquivo.jsp
35
Página: arranjo.jspPágina: arranjo.jsp
36
Página: arranjo.jspPágina: arranjo.jsp
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();}
38
API ServletAPI Servlet
39
API ServletAPI Servlet
40
API ServletAPI Servlet
41
API ServletAPI Servlet
42
API ServletAPI Servlet
43
API ServletAPI Servlet
44
API ServletAPI Servlet
45
API ServletAPI Servlet
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
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().
48
API ServletAPI Servlet
49
API ServletAPI Servlet
50
API ServletAPI Servlet
51
API ServletAPI Servlet
52
API ServletAPI Servlet
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
54
Application: Servlet.javaApplication: Servlet.java
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.
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.
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.
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.
59
Criando um Projeto Web Criando um Projeto Web Application: DBApplication: DB
60
Definindo Driver JDBCDefinindo Driver JDBC
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>
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");
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>