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
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
Thread
Processo1(Applet)
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.
Browser
Visão da Aplicação Java
servlet
JSP
awt
Swing
JVM
JavaBeans
APPLET
Banco
Dados
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.
Servidor de Aplicaçã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.
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
Exemplo :
http://localhost:8084/teste/lixo.jsp
Funcionamento JSP
Requisição JSP
Servidor
Cliente
Interface HTML
Converte em servlet
Compilador - JAVA
Envio
Gerar (.class)
Página HTML
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
Arquivos JSP
Servicos
build
web
META-INF
WEB-INF
Estrutura de um programa JSP
<[email protected] 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
Servidor
http://servidor/prog.jsp?nome=Wagner&endereco=Rua+23
Responde uma Página HTML
Cliente
JSP
Mostra os dados que foram enviados para o servidor
DB
Exemplo : Envio com GET
<html>
<head>
<title> JSP - Aula
</head>
<body>
</title>
<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
Servidor
http://servidor/prog.jsp
Responde uma Página HTML
Cliente
JSP
Envia todo o formulário HTML sem mostrar as informações
DB
Exemplo : Envio com GET
<html>
<head>
<title> JSP - Aula
</head>
<body>
</title>
<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.
Servidor
Envia os dados
Cliente
Request
Retorna Página HTML
Captura Dados
getParameter()
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>");
else
out.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 Banco
acesso.jspf
<[email protected] 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.
<[email protected] file="WEB-INF/jspf/acesso.jspf"%>
<[email protected] file=“WEB-INF/jspf/acesso.jspf”%>
<%
ResultSet res = st.executeQuery("Select * from tabela1");
while(res.next()) {
out.println("Nome : "+res.getString("nome")+"<br>");
}
%>
Download

Exemplo - Univap