58
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação de programa em Java com recursos para web, arquivo de texto, Threads e JSP(Java Server Page) Site : http://www1.univap.br/~wagner Prof. Responsável Wagner Santos C. de Jesus

Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Embed Size (px)

Citation preview

Page 1: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira Fernandes

Disciplina Programação Orientada a Objetos III

Material IV-Bimestre

Criação de programa em Java com recursos para web, arquivo de texto,

Threads e JSP(Java Server Page)Site : http://www1.univap.br/~wagner

Prof. Responsável

Wagner Santos C. de Jesus

Page 2: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Usando Thread :

Vem a ser um recurso de se tratar processos em concorrência ou seja várias aplicações podem ser executadas ao mesmo tempo.

Page 3: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Criação da classe básica de um Thread

implements Runnable - Cria a classe básica para um processamento concorrente.

Page 4: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Classe: Runnable

A interface Runnable deve ser implementada por qualquer classe cujas instâncias são destinados a ser executado por um Thread. A classe deve definir um método de chamada sem argumentos de execução.

Page 5: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Estrutura de uma classe básica para Thread.

public class <Nome-Classe> extends implements Runnable { ........... ..........}

Page 6: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Função do Thread

Processo1(Applet)

Thread

run()

Tarefas a serem executadas

Page 7: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Instanciando uma Thread.

Sintaxe :

Thread <Nome-Canal>;

<Nome-Canal> = new Thread(this);

Page 8: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Uma Thread pode ter quatro estados:Que são dados pelos métodos

start() : Dispara uma Thread

suspend() - Permite uma pausa na Thread.

resume() - Reinicia o processo thread.

stop() - Para definitivamente uma thread.

run() - Permite que executar continuamente um programa

para Appet.

Page 9: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Manipulação de Arquivo de dados (texto).

Em Java para manipularmos cadeias de dados streams

existem classes para podermos implementar aplicações com

esse recursos. E essas classes estão disponíveis em um pacote

denominado io.*.

Um stream vem a ser uma cadeia de caracteres.

Exemplo :

import java.io.*;

Page 10: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Para abrir um arquivo para leitura devemos usar a classe FileInputStream.

Exemplo :

FileInputStream f1;

f1 = new FileInputStream("arq.txt");

Obs : Referência o nome do arquivo.

Page 11: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Para acessar um arquivo de dados que já foi referenciado devemos usar a classe

DataInputStream.

Exemplo :

DataInputStream i1;

i1 = new DataInputStream(f1);

Após usamos os métodos DataInputStream,

FileInputStream e FileOutputStream poderemos gravar ou

ler os dados de um arquivo.

Page 12: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

PrintStream() - Abrindo um arquivo para gravação.

Exemplo :

f1 = new FileOutputStream("arq.txt");

PrintStream grava;

grava = new PrintStream(f1);

Page 13: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Para mover uma linha de dados para um arquivo de texto usamos o método prinln() ou print() com a

instância da classe PrintStream().

Exemplo :

PrintStream grava;

grava = new PrintStream(f1);

grava.println("String");

Page 14: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Para ler uma linha de dados de um arquivo de texto usamos o método readLine();

Exemplo : Fazendo a leitura de uma linha de um arquivo

texto.

FileInputStream f1;

DataInputStream i1;

f1 = new FileInputStream("arq.txt");

i1 = new DataInputStream(f1);

String str = i1.readLine();

Page 15: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo : Fazendo a gravação de uma linha de dados em um arquivo de texto.

FileOutputStream f1;

PrintStream grava;

f1 = new FileOutputStream("arq.txt");

grava = new PrintStream(f1);

grava.println("José da Couves");

Page 16: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo de um programa que faz a gravação de dados em um arquivo texto.

import java.io.*;

class grava {

public static void main(String args[]){

FileOutputStream f1;

PrintStream grava;

try {

f1 = new FileOutputStream("cadastro.txt");

grava = new PrintStream(f1);

grava.println("Mariana da Silva"); // Gravacao de dados...

grava.println("Joselina Pereira");

grava.println("Arquimede Silveira");

}

catch(Exception e) {

System.out.println("Erro no arquivo !!! ");

}

}

}

Page 17: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Armazenando dado no final do arquivo.

Page 18: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Classe FileWrite

FileWriter fw = new FileWriter(<ExpS>, <ExpB>);

<ExpS> => Nome do arquivo.

<ExpB> => Expressão booleana que determina se as informações irão para o final do arquivo.

Page 19: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

write()

Envia o dado para o arquivo de texto especificado.

objetoFilewrite.write(<ExpS>);

<ExpS> - Determina a string que será enviada para o arquivo de texto.

Page 20: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

close();

Fecha e armazena os dados do Buffer em disco.

objetoFilewrite.close();

Page 21: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo : Inserção em arquivo de texto.

import java.io.*;public class Addtexto {

public static void main(String arquivo[]) throws IOException {

FileWriter fw = new FileWriter(arquivo[0], true); fw.write(arquivo[1]+"\n"); fw.close();

}}

Page 22: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Leitura de um arquivo de texto.import java.io.*;class leitura { public static void main(String args[]){ FileInputStream f1; DataInputStream i1; try { f1 = new FileInputStream("teste.txt"); i1 = new DataInputStream(f1); String str = i1.readLine(); while( str != null ) { System.out.println(str); str = i1.readLine(); } } catch(Exception e) { System.out.println("Erro no arquivo !!! ");

} } }

Page 23: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

JSP (Java Server Page)

É uma especialização do servlet que permite que conteúdo dinâmico seja facilmente desenvolvido. Com essa tecnologia é possível o desenvolvimento de páginas dinâmicas usando recursos de alta qualidade com reaproveitamento total de códigos Java.

Page 24: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Arquitetura Cliente/Servidor

Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores. Cada instância de um cliente pode enviar requisições de dado para algum dos servidores conectados e esperar pela resposta. Por sua vez, algum dos servidores disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o cliente. Apesar do conceito ser aplicado em diversos usos e aplicações, a arquitetura é praticamente a mesma.

Page 25: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

B r

o w

s e

r servlet

JSP

awt

Swing

APPLET

JavaBeans

Banco Dados

Visão da Aplicação Java

JVM

Page 26: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Requisição e Serviço

Cliente/Servidor

Cliente Servidor

Page 27: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Realização da Tarefa

Para realizar essa tarefa devemos, montar um servidor de aplicação é uma plataforma sobre a qual roda a porção servidora de um aplicativo. Isto inclui hardware e software. mas o software pode ser dividido em dois grupos: funções do negócio, que são específicas para um domínio de problema; e serviços especializados, que são funções genéricas aplicáveis a diversas soluções.

Page 28: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

O Tomcat é um servidor de aplicação Java para web, mais especificamente, um container de servlets. Desenvolvido pela Apache Software Foundation, é distribuído como software livre dentro do conceituado projeto Apache Jakarta, sendo oficialmente endossado pela Sun como a implementação de referência para as tecnologias Java Servlet e Java Server Pages (JSP). Ele cobre parte da especificação J2EE (Java Edição Empresarial) com tecnologias como servlet e JSP, e tecnologias de apoio relacionadas a segurança, e JDBC DataSources.

Servidor de Aplicação

Page 29: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Porta de transmissão serviço HTTP para servidor TOMCAT (8084).

Alguns serviços (que fazem uso de protocolos específicos) são tipicamente acessíveis em portas fixas, conhecidas como portas bem conhecidas. São número de 1 a 1024

http://localhost:8084/teste/lixo.jsp

Exemplo :

Page 30: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Funcionamento JSP

Interface HTML

Requisição JSP

Converte em servlet

Compilador - JAVA

Gerar (.class)Página HTML

Cliente

Servidor

Envio

Page 31: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Todos programa confeccionado para arquitetura Java Server Page deve ter a extensão (JSP)

Exemplo de tags jsp.

@include – É utilizada para incorporar os códigos de um arquivo padrão (HTML,JSP,TXT)@page – Traz informações sobre página JSP como o tipo, as bibliotecas que serão importtadas, a linguagem da página.<%@ %> - Determina Instruções de cabeçalho. Referente as tags acima.<% %> - Determina o trecho de código que será escrito em Java.<%= %> - Usado para executar uma função em Java retornando apenas o trecho de código para a página HTML.<%- -%> - Usado para documentar trechos de código não sendo executadas.

Page 32: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Caminho Servidor local (Padrão)Configuração Apache.

Projetos

Servicos

build

web

META-INF WEB-INF

Arquivos JSP

Page 33: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Estrutura de um programa JSP

<%@page contentType="text/html"%><html><head><title>Pagina JSP </Title><%

String a = “Maria da Silva”; out.println("<h1>”+a+”</h1>");

%></html>

Page 34: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Simplesmente JSP

<%

String a = “Maria”;

out.println("<h1>”+a+”</h1>");

%>

Page 35: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo <Form>

<Form Name = "NomedoFormulario">

:

:

: <Objetos do Formulario>

:

:

</Form>

Page 36: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

<Input Type> - Cria objetos de entrada de dados.

Criando uma Caixa de Texto em um Browser.

<INPUT TYPE> - Tipo de entrada. (Caixa de texto, Caixa de Verificação ou botão de Rádio, Objeto Oculto ou Caixa de Texto para senha).

Page 37: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Formatação de <Input Type>

Text - Caixa de Texto Simples.

Hidden - Caixa de Texto Invisível.

Radio - Botão de Radio.

Checkbox - Caixa de Verificação.

Password - Caixa de Texto que esconde os dados com (*) asterisco

Button - Botão de Comandos

submit – Submete o formulário para protocolos de envio.

reset – Apaga os dados de um formulário

Page 38: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Cláusulas do Marcador <Input Type>

Name - nome dados para caixa de texto.

Value - Define a informação que irá aparecer na caixa de texto.

Size - Define o tamanho da caixa de texto.

MaxLength - Define o tamanho máximo de caracteres que podem ser escritos em uma caixa de texto.

Page 39: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo da Criação de uma caixa de texto.

Nome:<INPUT TYPE="text" NAME="teste" VALUE="" SIZE="30" MAXLENGTH=”20">

Senha:<INPUT TYPE="Password" NAME="teste">

Page 40: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo da Criação de Botão de Comandos

<INPUT TYPE="Button" NAME="btn2" VALUE="OK">

Page 41: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Usando Métodos de envio de dado via TCP/IP(protocolo HTTP)

O protocolo HTTP provê dois principais métodos para enviar informações para o servidor web, além da URL referente ao arquivo solicitado. Esses métodos são denominados GET e o POST.

GET – Envia os dados de forma aparente para o browser.POST – Envia os dados de forma não aparente para o browser.

Page 42: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Usando Get

http://servidor/prog.jsp?nome=Wagner&endereco=Rua+23

DB

Cliente

Servidor

JSP

Responde uma Página HTML

Mostra os dados que foram enviados para o servidor

Page 43: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo : Envio com GET<html> <head> <title> JSP - Aula </title> </head><body>

<FORM action=“exemplo1.jsp" method=“get">Nome : <Input type Name="nome"><br>Nome : <Input type Name="endereco"><br><Input type="submit" value = "Enviar">

</Form>

</body></html>

Page 44: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Usando Post

http://servidor/prog.jsp

DB

Cliente

Servidor

JSP

Responde uma Página HTML

Envia todo o formulário HTML sem mostrar as informações

Page 45: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo : Envio com GET<html> <head> <title> JSP - Aula </title> </head><body>

<FORM action=“exemplo1.jsp" method=“post">Nome : <Input type Name="nome"><br>Nome : <Input type Name="endereco"><br><Input type="submit" value = "Enviar">

</Form>

</body></html>

Page 46: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Objeto (request)

Permite capturar dados enviados pelo formulário por intermédio do método getParameter() no servidor.

Cliente

Servidor

Request

getParameter()

Captura DadosRetorna Página HTML

Envia os dados

Page 47: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo Prático de captura de dados

<%

String vw_nome = request.getParameter("nome");

out.println("<h1>"+vw_nome + "</h1>");

%>

Page 48: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo da Criação de Botão de Rádio.

Masculino:<INPUT TYPE="radio" NAME="br" VALUE="1" >Feminino: <INPUT TYPE="radio" NAME="br" VALUE="2" Checked>

Page 49: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo da Criação de Caixa de Verificação.

Curso <br>

Java : <INPUT TYPE="Checkbox" NAME="ch" VALUE="1">

HTML :<INPUT TYPE="Checkbox" NAME="ch" VALUE="2">

Page 50: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Objetos de Lista(Caixa de Combinação e Caixa de Lista)

Para se criar um Objeto de lista em HTML usa-se o marcador <Select>.

Page 51: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo da Criação de uma Caixa de Combinação.

<Select Name ="cargo"><Option>Programador Junior<Option selected>Programador Senior<Option>Programador Pleno</Select>

Page 52: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Exemplo da Criação de uma Caixa de Lista.

<Select Name ="cargo" size=3><Option>Programador Junior<Option selected>Programador Senior<Option>Programador Pleno<Option>Programador Estagiário<Option>Programador Web<Option>Projetista VB</Select>

Page 53: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Usando recursos de JavaScript com JSP

<%

String str1 = "Marta";

if(str1.equals("Marta")) out.println("<Script>alert('Nome "+str1 +" Correto !!!')</Script>");

elseout.println("<Script>alert('Nome Incorreto !!!')</Script>");

%>

Page 54: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Links – Acionando JSP

<body>

<a href=“nomearq.jsp"> Exemplo Link </a>

</body>

Page 55: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

<Textarea> - Criação de uma área de edição de texto.

Cria uma caixa de texto com um número pré estabelecido de linhas e colunas para edição do usuário.

Exemplo : <BODY>

<Textarea rows=5 cols=30 Name=dados></textarea>

</BODY>

</HTML>

Page 56: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

Criação da conexão Bancoacesso.jspf

<%@page import="java.sql.*"%>

<%

Connection con; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:Banco","","");

Statement st=con.createStatement();

%>

Page 57: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

JSPF - Criação

Todo arquivo jspf deve ser criado em um diretório que deve ter um nome padrão que a aplicação irá referenciar no momento que encontre seu cabeçalho.

<%@include file="WEB-INF/jspf/acesso.jspf"%>

Page 58: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a Objetos III Material IV-Bimestre Criação

<%@include file=“WEB-INF/jspf/acesso.jspf”%>

<%

ResultSet res = st.executeQuery("Select * from tabela1");

while(res.next()) {

out.println("Nome : "+res.getString("nome")+"<br>");

}

%>