Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina...

Preview:

Citation preview

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

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.

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

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

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.

Estrutura de uma classe básica para Thread.

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

Função do Thread

Processo1(Applet)

Thread

run()

Tarefas a serem executadas

Instanciando uma Thread.

Sintaxe :

Thread <Nome-Canal>;

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

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.

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.*;

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.

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.

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

Exemplo :

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

PrintStream grava;

grava = new PrintStream(f1);

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");

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();

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");

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 !!! ");

}

}

}

Armazenando dado no final do arquivo.

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.

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.

close();

Fecha e armazena os dados do Buffer em disco.

objetoFilewrite.close();

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();

}}

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 !!! ");

} } }

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.

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.

B r

o w

s e

r servlet

JSP

awt

Swing

APPLET

JavaBeans

Banco Dados

Visão da Aplicação Java

JVM

Requisição e Serviço

Cliente/Servidor

Cliente Servidor

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.

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

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 :

Funcionamento JSP

Interface HTML

Requisição JSP

Converte em servlet

Compilador - JAVA

Gerar (.class)Página HTML

Cliente

Servidor

Envio

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.

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

Projetos

Servicos

build

web

META-INF WEB-INF

Arquivos JSP

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>

Simplesmente JSP

<%

String a = “Maria”;

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

%>

Exemplo <Form>

<Form Name = "NomedoFormulario">

:

:

: <Objetos do Formulario>

:

:

</Form>

<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).

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

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.

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">

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

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

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.

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

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>

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

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>

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

Exemplo Prático de captura de dados

<%

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

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

%>

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>

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">

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>.

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

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

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>

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>");

%>

Links – Acionando JSP

<body>

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

</body>

<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>

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();

%>

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"%>

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

<%

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

while(res.next()) {

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

}

%>

Recommended