desenvolvimento de sistemas web - luiz...

89
DESENVOLVIMENTO DE SISTEMAS WEB Luiz Leão – [email protected] http://www.luizleao.com UNIDADE I – Criação de Aplicativos Web

Upload: dangquynh

Post on 11-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

DESENVOLVIMENTO DE SISTEMAS WEB

Luiz Leão – [email protected] http://www.luizleao.com

UNIDADE I – Criação de Aplicativos Web

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Conteúdo Programático

• Revisão da Sintaxe Java • Visão Geral do Ambiente Servidor

– Tomcat – GlassFish

• Uso do NetBeans para criação de aplicativos Web • Tecnologia Servlet • Tecnologia JSP

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Introdução

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Java Standard Edition: Ambiente mais utilizado. Seu uso é voltado para PCs e servidores.

• Java Entreprise Edition: Plataforma voltada para redes, Internet, Intranet e afins. Contém uma série de especificações, cada uma com funcionalidades diferentes: – JDBC (Java Database Connectivity): Para acesso a BD; – JSP (Java Server Pages): Para programação front end (páginas web) e – Servlets: pPara o desenvolvimento de aplicações web (programação

back end).

Introdução

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Java Micro Edition: Ambiente de desenvolvimento para dispositivos móveis ou portáteis.

Introdução

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Tipos de Variáveis • Arrays • Estrutura Condicional • Estrutura de Repetição • Palavras Reservadas

Revisão da Sintaxe Java

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Tipos de Dados

Tipo Valores Literaisint inteiros com sinal 32 bits 0, -7, 12345

long inteiros com sinal 64 bits -12345Lfloat vírgula-flutuante simples 1.234f, -10.5e6f

double vírgula-flutuante dupla -0.25, 1.234dboolean valores lógicos true, false

char carateres Unicode 'A', '\u2764'

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Hello Worldclass Hello { public static void main(String args[]) { System.out.println("Hello world!"); } }

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Variáveisint i;

int i=10;

Float total, preco;

byte mascara;

double valormedio; Valormedio = 1.5;

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Arraysint[] aLista; // declaração aLista = new int[10]; // inicialização (zeros)

// inicialização com constantes int[] aLista = {100, 200, 300, 400, 500, 600};

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Arrays• Os índices começam em zero (como em C/C++) • arrays em Java têm associado um atributo length (Tamanho)

int[] aLista = { 2, 3, 5, 7, 11, 13 }; for(int i=0; i< aLista.length; i++) { System.out.println(aLista[i]); }

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Arrays• Não há arrays multi-dimensionais • Alternativa: arrays de arrays • Permite dimensões internas não homogéneas

String[][] names={{"Mr.","Mrs.","Ms."},{"Smith","Jones"}};

System.out.println(names[0][0] + names[1][0]); //Mr. Smith System.out.println(names[0][2] + names[1][1]); //Ms. Jones

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Cadeia de Caracteres• Cadeias são objetos da classe String.

String s1 = "Hello"; // declarar e inicializar String s2 = new String("Hello"); // alternativa

• Podemos obter o comprimento e concatenar

System.out.println(s1.length()); // output: 5 // NB: length() é um método

System.out.println(s1 + " world!"); // output: "Hello world!"

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Cadeia de Caracteres• não são arrays de carateres • mas podemos aceder aos carateres individuais usando

charAt()

String frase = "Leão Azul. Melhor do Norte"; int tam = frase.length(); for (int i = 0; i < tam; i++) { System.out.println(frase.charAt(i)); }

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Cadeia de Caracteres• Não podemos modificar o comprimento ou os carateres duma

cadeia (é um objeto imutável)

• Mas podemos construir novas cadeias por concatenação

• Alternativa: classe StringBuilder (mais tarde)

String s1 = "Hello " + "world"; String s2 = "He" + "llo world"; // s1 == s2 dá false

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Palavras Reservadas

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Palavras Não Reservadas

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Operadores Aritméticos

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Operadores Relacionais

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Operadores Lógicos

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Estruturas Condicionais

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Estruturas de Repetição

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Exemplo if

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Exemplo switch

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Exemplo for

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Exemplo While

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Exemplo do while

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Tomcat

• GlassFish

Visão Geral do Ambiente Servidor

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• É servidor web Java, mais especificamente, um container de servlets.

• O Tomcat implementa, dentre outras de menor relevância, as tecnologias Java Servlet e JavaServer Pages (JSP)

• Não é um container EJB.

Tomcat

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• EJB (Enterprise JavaBeans): É uma especificação que faz parte da Java EE. É um componente executado em um servidor de aplicação, que simplifica o desenvolvimento de componentes distribuídos, transacionais e seguros.

• Os conteiners EJB implementam especificações JEE tais como: JDBC, RMI, JavaMail, JMS, JMX etc.

• Exemplo de servidores: – Jboss AS – Glassfish

Conteiners EJB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• É um servidor de aplicação open source liderado pela Sun Microsystems para a plataforma Java EE.

• É um conteiner EJB

• Possui versão proprietária é chamada Sun GlassFish Enterprise Server.

• Além de suportar todas as especificações da API Java EE, ele também define como coordená-las.

Glassfish

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Suporta também servlets, portlets, JSF e diversas tecnologias de web service.

• Permite que desenvolvedores criem aplicações corporativas portáveis, escaláveis e fáceis de integrar com código legado.

Glassfish

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• São a primeira forma que veremos de criar páginas dinâmicas com Java.

• Usaremos a própria linguagem Java para isso, criando uma classe que terá capacidade de gerar conteúdo HTML.

• O nome "servlet" vem da ideia de um pequeno servidor (servidorzinho, em inglês) cujo objetivo é receber chamadas HTTP, processá-las e devolver uma resposta ao cliente.

Servlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• O comportamento das servlets foi definido na classe HttpServlet do pacote javax.servlet.

Servlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

public class HelloWorld extends HttpServlet { protected void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter();

// escreve o texto out.println("<html>"); out.println("<body>"); out.println(“Hello World!!”); out.println("</body>"); out.println("</html>"); } }

Servlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Para escrevermos uma servlet, criamos uma classe Java que estenda HttpServlet e sobrescreva um método chamado service.

• Esse método será o responsável por atender requisições e gerar as respostas adequadas.

Servlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... }

Servlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Repare que o método recebe dois objetos que representam, respectivamente, a requisição feita pelo usuário e a resposta que será exibida no final.

• Veremos que podemos usar esses objetos para obter informações sobre a requisição e para construir a resposta final para o usuário.

Servlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Acabamos de definir uma Servlet, mas como vamos acessá-la pelo navegador?

• Qual o endereço podemos acessar para fazermos com que ela execute?

• O container não tem como saber essas informações, a não ser que digamos isso para ele.

• Para isso, vamos fazer um mapeamento de uma URL específica para uma servlet através do arquivo web.xml, que fica dentro do WEB-INF.

Mapeando uma Servlet no web.xml

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Uma vez que chamar a servlet pelo pacote e nome da classe acabaria criando URLs estranhas e complexas, é comum mapear, por exemplo, uma servlet como no exemplo, chamada OiMundo para o nome primeiraServlet:

• Começamos com a definição da servlet em si, dentro da tag <servlet>:

Mapeando uma Servlet no web.xml

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

<servlet>

<servlet-name>primeiraServlet</servlet-name>

<servlet-class>br.com.caelum.servlet.OiMundo</servlet-class> </servlet>

Mapeando uma Servlet no web.xml

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Em seguida, mapeie nossa servlet para a URL /oi.

• Perceba que isso acontece dentro da tag <servlet-mapping> (mapeamento de servlets) e que você tem que indicar que está falando daquela servlet que definimos logo acima: passamos o mesmo servlet-name para o mapeamento.

Mapeando uma Servlet no web.xml

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

<servlet-mapping>

<servlet-name>primeiraServlet</servlet-name>

<url-pattern>/oi</url-pattern> </servlet-mapping>

Mapeando uma Servlet no web.xml

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Portanto, são necessários dois passos para mapear uma servlet para uma URL:

• Definir o nome e classe da servlet; • Usando o nome da servlet, definir a URL. • A servlet pode ser acessada através da seguinte

URL:

• http://localhost:8080/aulajsp/oi

Mapeando uma Servlet no web.xml

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• JavaServer Pages

• Tecnologia baseada em Servlet utilizada na camada WEB

• Apresenta conteúdos estáticos e dinâmicos

• Baseada em texto

• Contêm em sua maior parte template texto HTML misturado com tags especificando conteúdo dinâmico

TECNOLOGIA JSP

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• São documentos textuais muito parecidas com HTML • Código mais fácil de manter • Familiares para desenvolvedores com conhecimentos em

HTML • Dedicação dos desenvolvedores para a criação de templates

HTML • Possui suporte built-in para o uso de componentes de software

reutilizáveis (JavaBeans) • Parte da solução Java para o desenvolvimento de aplicações

WEB • Não necessita de uma compilação explícita pelo

desenvolvedor

TECNOLOGIA JSP

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

● JSP podem ser vistas como documentos HTML ou XML com scripts JSP encaixados

● Elementos de script JSP permitem inserir código Java na Servlet gerada

● A maneira mais simples de tornar a JSP dinâmica é pelo encaixe direto de elementos script no modelo de dados

● Elementos script JSP: – Scriptlets – Expressões – Declarações

Sintaxe e Semântica JSP

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

● Inserir diretamente código Java:

<% Java code; %>

– Qualquer código Java que poderia ser utilizado dentro de um método

● Útil para encaixar códigos simples

● Nenhum limite específico a respeito da complexidade de códigos

Scriptlets

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

● Fornece um meio de inserir valores Java diretamente na saída:

<%= Java Expression %>

● Note que o ponto-e-vírgula ( ; ) não aparece no final do código dentro da tag

● Desde que elas são avaliadas em tempo de execução, as expressões têm acesso completo a informação sobre a requisição

● É mais simples que escrever: out.println(Java Expression);

Expressões

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

● Objetos pré-definidos, chamados objetos implícitos, se tornam disponíveis para os desenvolvedores JSP de modo a simplificar as expressões

● Exemplos: – request: objeto da classe HttpServletRequest; – response: objeto da classe HttpServletResponse; – session: objeto da classe HttpSession associada ao request (se houver) – out: objeto da classe PrintWriter, utilizada para enviar a saída para o cliente. Exemplo: Hostname: <%= request.getRemoteHost() %>

Expressões

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

● Permite a definição de métodos ou variáveis

<%! Java Code %>

● Utilizada para encaixar código como as scriptlets ● São inseridas no corpo principal da classe servlet, fora do método _jspService() processando o request

– Vantagem: O código em uma declaração pode ser usado para declarar novos métodos e variáveis globais de classe

– Desvantagem: O código em declarações não é protegido

Declarações

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

● Lembretes ao utilizar a tag de declaração:

– Iniciado por <%! e finalizado por %>

– As instruções devem seguir a sintaxe Java padrão

– Declarações não geram saída

● Desde que as declarações não geram nenhuma saída, elas normalmente são utilizadas em conjunto com expressões JSP ou scriptlets

Declarações

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• O Exemplo é dividido em duas partes. A primeira cria a classe Pessoa e na segunda o objeto p é criado e sua manipulação se inicia passando nome e idade que posteriormente são impressos.

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Condicional if

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

While

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

Looping For

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• O que é um bean?

• Um componente JavaBeans, ou simplesmente bean, é uma classe Java que, quando chamada em um JSP ou Servlet, segue certas regras .

• Os beans são acionados em JSP por elementos chamados action element, executandos quando um JSP é requisitado.

• Veja a sintaxe:

<jsp:useBean id = “id_do_Bean” class = “pacote.classe_do_bean” scope = “tipo_de_escopo”>

• Temos que usar um identificador, o nome da classe e um escopo de vida do bean.

• Para definir o escopo, há quatro extensões disponíveis: page, request, session e application.

JavaBeans: Programação baseada em componentes

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Um bean de escopo de página (page) só está disponível dentro da página de JSP e é destruído quando a página termina de gerar sua resposta à requisição.

• Um bean de escopo de requisição (request) é destruído quando a resposta é enviada.

• Um bean de sessão (session) é destruído quando a sessão associada a ele é destruída.

• Um bean de escopo de aplicação (application) é destruído quando a aplicação web é destruída.

JavaBeans: Programação baseada em componentes

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

UNIDADE I – Criação de Aplicativos Web

DESENVOLVIMENTO DE SISTEMAS WEB

• Sintaxe Java • Servidores • Servlet • JSP • JavaBeans

Resumindo