Programação Java – JSP – Páginas para implementação utilizando Facade

Hoje veremos como integrar as classes da aula anterior com as páginas.

Atenção a codificação, o banco de dados deve estar pronto e o projeto sem nenhum problema.

1- Código do formulário de entrada de dados para um teste de autenticação.

<body>

<div align=”center”>

<h2><strong>Teste de Autentica&ccedil;&atilde;o em um Banco
de Dados usando

JavaBeans</strong></h2>

<form name=”form1″ method=”post” action=”autentica2.jsp“>

<strong>Login</strong>

<input name=”login” type=”text” id=”login”>

<br>

<br>

<strong>Senha</strong>

<input name=”senha” type=”password” id=”senha”>

<br>

<input type=”submit” name=”Submit” value=”Enviar”>

<input type=”reset” name=”Reset” value=”Cancelar”>

</form>

</div></body>

</html>

2-Página de resposta utilizando a classe Fachada.

<%@ page import=”java.sql.*,aula.*”%>
<%
//Nada será gravado no cache do cliente
response.setDateHeader(“Expires”, 0);
response.setHeader(“Pragma”, “no-cache”);
if (request.getProtocol().equals( “HTTP/1.1” )) {
response.setHeader(“Cache-Control”,”no-cache”);
}
%>

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
<title>Teste de Autentica&ccedil;&atilde;o com JavaBeans</title>

<style type=”text/css”>
<!–
.style4 {color: #FF0000}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
.style5 {
color: #0000FF;
font-weight: bold;
}
body {
background-image: url(../../imagens/class.jpg);
}
–>
</style>
</head>
<body>
<jsp:useBean id=”fachada” class=”aula.Fachada”/>
<jsp:useBean id=”usuario” class=”aula.Usuario”/>

<%
String login = request.getParameter(“login”);
String senha = request.getParameter(“senha”);

usuario.setLogin(login);
usuario.setSenha(senha);

if(fachada.autenticaUsuario(usuario)){
%>

<h2 align=”center” class=”style1″> Ol&aacute; seja bem vindo ao sistema </h2>
<%
}else{
%>

<h2 align=”center” class=”style4″>O usu&aacute;rio <strong><%=login%> </strong>n&atilde;o est&aacute; cadastrado no sistema. </h2>
<%
}
%>
<div align=”center”>
<p><strong><em><a href=”autenticaCodigo2.html”>Visualizar c&oacute;digo fonte</a> </em></strong></p>
<p><a href=”login.html”>voltar</a></p>
</div>
</body>
</html>

3-Construa um formulário de cadastro para alimentar a tabela usuário, utilizando o Fachada.

<div align=“center”>
<h3><strong>Teste de Cadastro utilizando JavaBeans</strong></h3>
<form name=“form1” method=“post” action=“”>

<p><strong>Nome</strong>
<input name=“nome” type=“text” id=“nome”>
</p>
<p><strong>Login</strong>
<input name=“login” type=“text” id=“login”>
</p>
<p><strong>Senha</strong>
<input name=“senha” type=“password” id=“senha”>

</p>
<p>
<input type=“submit” name=“Submit” value=“Enviar”>
<input type=“reset” name=“Reset” value=“Limpar”>
</p>
</form>
<p><strong></strong>1- Construa este formul&aacute;rio<br>
2-Construa o c&oacute;digo de resposta para a implementa&ccedil;&atilde;o abaixo.
</p>

<hr>
</div>

4-Exemplo de cadastro com Fachada.

<%@page contentType=”text/html; charset=iso-8859-1″ language=”java” import=”java.sql.*,aula.*” errorPage=””%>
<%
//Nada será gravado no cache do cliente
response.setDateHeader(“Expires”, 0);
response.setHeader(“Pragma”, “no-cache”);
if (request.getProtocol().equals( “HTTP/1.1” )) {
response.setHeader(“Cache-Control”,”no-cache”);
}

%>
<html>
<head>
<title>Resposta do teste de Cadastro</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
<style type=”text/css”>
<!–
.style1 {color: #0000FF}
.style2 {
color: #FF0000;
font-weight: bold;
}
–>
</style>
</head>
<body>
<jsp:useBean id=”fachada” class=”aula.Fachada“/>
<jsp:useBean id=”usuario” class=”aula.Usuario“/>

<%
String nome = request.getParameter(“nome“);
String login = request.getParameter(“login“);
String senha = request.getParameter(“senha“);

usuario.setNome(nome);
usuario.setLogin(login);
usuario.setSenha(senha);

if(fachada.setUsuario(‘I‘,usuario)){
%>
<h3 align=”center” class=”style1″>O usu&aacute;rio foi adicionado ao sistema</h3>
<%
}else{
%>
<h3 align=”center” class=”style2″>N&atilde;o foi poss&iacute;vel cadastrar o usu&aacute;rio </h3>
<p>
<%
}
%>
</p>
<p>&nbsp;</p>
</body>
</html>

Anúncios

Programação Java – JSP – Classes para implementação utilizando Facade

Abaixo estão os códigos de implementação do projeto utilizando Facade.

Exemplo de implementação de uma classe de conexão com o Banco de dados MySQL.

package aula;

import java.sql.*;

import java.util.*;

/** Classe que realiza conexão com o banco
de dados

Neste exemplo é mostrado para um conexão com o Banco de Dados
MySQL.

Pode-se passar o nome ou o IP para identificar o servidor.

*/

public class Conexao{

String jdbc=”jdbc:mysql://localhost/bdaula“;

private String usuario = “root”;

private String senha = “123”;

Statement st;

Connection conexao;

private String msg=””;

private String sql=null;

ResultSet rs=null;

/** Construtor default */

public Conexao() {

try{

Class.forName(“com.mysql.jdbc.Driver“);

this.conexao = DriverManager.getConnection(jdbc,usuario,senha);

this.st = this.conexao.createStatement();

this.msg=”Conexão estabelecida com exito !\n”;

}

catch(ClassNotFoundException e) {

this.msg=”Driver JDBC-ODBC não encontrado!.Verifique a classe do
Driver”;

getmsg();

}

catch(SQLException e) {

this.msg=”Problemas na conexao com a fonte de dados,verifique o SQL passado.”;

getmsg();

}

}

/** Método para imprimir no console */

public void getmsg(){

System.out.println(this.msg);

}

/**Método para retornar a variável
de menagem*/

public String getMsg(){

return this.msg;

}

public void fecharConexao()throws SQLException{

try{

this.st.close();

this.conexao.close();

}catch(SQLException e){

this.msg=”Não foi possível fechar a conexao”;

getmsg();

e.printStackTrace();

}

}

public Connection getConexao() {

return conexao;

}

}

1- Desenvolva uma página em JSP que utilize esta classe de conexão com o banco de dados, e ao final apresente o valor da variável de mensagem da classe de conexão.

2- Crie um banco de dados no MySQL chamado bdaula, contendo apenas uma tabela chamada usuário. Esta tabela devera conter os campos: login, senha e nome.
usuario(login,senha,nome)
create table usuario(
login varchar(12) not null,
senha varchar(12) not null,
nome varchar(12) not null,
primary key(login)
)

3-Alimente esta tabela com cinco registros.

4- Crie uma classe usuário em java, com os mesmo atributos definidos para a tabela usuário.
package aula;
public class Usuario {
private String nome;
private String login;
private String senha;

public Usuario() {
}

public Usuario(String nome,String login,String senha) {
this.nome = nome;
this.login = login;
this.senha = senha;
}

public String getLogin() {
return this.login;
}

public String getNome() {
return this.nome;
}

public String getSenha() {
return this.senha;
}

public void setLogin(String login) {
this.login = login;
}

public void setNome(String nome) {
this.nome = nome;
}

public void setSenha(String senha) {
this.senha = senha;
}
}

5- Para a classe usuário,crie uma classe com o mesmo nome e sufixo BD, onde deverão ficar as instruções e SQL.

package aula;
import java.sql.*;
import java.util.*;

public class UsuarioBD {
private String sql=null;
private String msg=null;
private Conexao conexao;
private Usuario usuario;
private Vector vetUsuario;

/** Método construtor sem parametros */

public UsuarioBD() {
this.conexao=new Conexao();
}

public void msg(){
this.msg=this.msg+this.conexao.getMsg();
System.out.println(this.msg);
}

public String getMsg(){
this.msg=this.msg+this.conexao.getMsg();
return this.msg;
}

public boolean autenticaUsuario(Usuario usuario)throws
SQLException{

this.sql=“select * from usuario where login='” + usuario.getLogin() + “‘ and senha='” + usuario.getSenha() +”‘”;
try{
this.conexao.rs=this.conexao.st.executeQuery(this.sql);

if(this.conexao.rs.next())
return true;
else
return false;
}catch(SQLException e){
this.msg=”Nao foi possivel inserir o usuário ” + usuario.getLogin()
+ “.\nErro:” + e.getMessage();
return false;
}finally{
this.conexao.fecharConexao();
}

}

public Usuario getUsuario(Usuario
usuario
)throws SQLException{

this.sql =“select * from usuario where login='” + usuario.getLogin()
+”‘”;

try{
this.conexao.rs=this.conexao.st.executeQuery(this.sql);
if(this.conexao.rs.next()){
this.usuario = new Usuario(this.conexao.rs.getString(“nome“),this.conexao.rs.getString(“login“),this.conexao.rs.getString(“senha“));

return this.usuario;

}

}catch(SQLException e){

this.msg=”Nao foi possivel recuperar o usuário ” + usuario.getLogin()
+ “.\nErro:”+e.getMessage();

}

return this.usuario=null;

}

public Vector getUsuario()throws
SQLException
{

this.sql=“select * from usuario order by login”;

this.vetUsuario=new Vector();

try{

this.conexao.rs=this.conexao.st.executeQuery(this.sql);

while(this.conexao.rs.next()){

this.usuario = new Usuario(this.conexao.rs.getString(“nome”),this.conexao.rs.getString(“login”),this.conexao.rs.getString(“senha”));

this.vetUsuario.addElement(this.usuario);

}

}catch(SQLException e){

this.msg=”Nao foi possivel realizar a consulta.\nErro:”+e.getMessage();

getMsg();

}finally{

this.conexao.fecharConexao();

}

return this.vetUsuario;

}

public Vector getUsuarioINI(Usuario usuario)throws SQLException{

this.sql=”select * from usuario where nome like ‘” + usuario.getNome() + “%’“;

this.vetUsuario=new Vector();

try{

this.conexao.rs=this.conexao.st.executeQuery(this.sql);

while(this.conexao.rs.next()){

this.usuario = new Usuario(this.conexao.rs.getString(“NOME”),this.conexao.rs.getString(“LOGIN”),this.conexao.rs.getString(“SENHA”));

vetUsuario.add(this.usuario);

}

}catch(SQLException e){

this.msg=”Nao foi possivel realizar a consulta.\n Erro:”+e.getMessage()+”\n”;

getMsg();

}

return this.vetUsuario;

}

public boolean setUsuario(char operacao,Usuario
usuario
)throws SQLException{

String login = usuario.getLogin();

String senha = usuario.getSenha();

String nome = usuario.getNome();

switch(operacao){

case ‘I‘:

this.sql=”insert into usuario(nome,login,senha)values(‘”+nome+”‘,'”+login+”‘,'”+senha+”‘)”;

break;

case ‘U‘:

this.sql=“update usuario set senha='”+senha+”‘,nome='”+nome+”‘
where login='”+login+”‘”;

break;

case ‘D‘:

this.sql=“delete from usuario where login='”+login+”‘”;

break;

default:this.sql=””;

}

try {

this.conexao.st.executeUpdate(this.sql);

return true;

} catch (SQLException e) {

e.printStackTrace();

this.msg=”Erro=”+e.getMessage();

return false;

}

}

//Exemplo de uma chama de Stored Procedure

public boolean setUsuario(String
operacao
,Usuario usuario)throws
SQLException
{

String login = usuario.getLogin();

String senha = usuario.getSenha();

String nome = usuario.getNome();

this.sql=”execute procedure sp_usuario(‘”+ operacao +”‘,'”+
login +”‘,'”+ senha +”‘,'” + nome + “‘);”;

try{

this.conexao.st.executeUpdate(this.sql);

this.msg=”O usuario “+login+” foi incluido no sistema.”;

return true;

}catch(Exception e){

this.msg=”Não foi possível inserir o usuario ” + login;

return false;

}finally{

this.conexao.fecharConexao();

}

}

}

8- Construa a classe Fachada de acordo com o código abaixo.

package aula;

import java.sql.*;
import java.util.Vector;

public class Fachada {
private String msg=null;
private UsuarioBD ubd;

/** Construtor padrao default*/
public Fachada() {
}

public void getmsg(){
System.out.print(this.msg);
}

public String getMsg(){return this.msg;}

//****************operação com os objetos Usuario***************************
public boolean autenticaUsuario(Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
if(ubd.autenticaUsuario(usuario))
return true;
else
return false;
}

public boolean setUsuario(char operacao,Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
if(ubd.setUsuario(operacao,usuario))
return true;
else
return false;
}

/**Retorna um usuario que tenho o login correpindente.
* @param login
* @return Usuario u
*/

public Usuario getUsuario(Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
return this.ubd.getUsuario(usuario);
}

/**Retorna o conjunto total de usuario cadastrado na base de dados.
*Para recurar qualquer valor bastautilizar os metodos get e set da classe
*básica.
* @param Sem parametro de entrada
* @return Um vetor de objetos de Usuario.
*/

public Vector getUsuario()throws SQLException
{
this.ubd= new UsuarioBD();
return this.ubd.getUsuario();
}

public Vector getUsuarioINI(Usuario usuario)throws SQLException{
this.ubd= new UsuarioBD();
return this.ubd.getUsuarioINI(usuario);
}
}

7- Desenvolva uma página de autenticação utilizando as classes mostadas, de acordo com o mostrado no padrão.

Programação Java – JSP – Exercícios

Hoje faremos uma atividade em sala para relembrar os conceitos inicias, e depois daremos inicio a nossa primeira classe de nosso projeto, a classe Conexao.java

1 – Desenvolva uma classe que resolva a equação do 2º grau, após crie duas páginas em JSP em que o usuário possa entrar com dados e outra de resposta, recuperando as propriedades da classe.

2- Desenvolva uma classe de conexão com banco de dados,chamada de Conexao.java, e faça a chamada por uma página JSP.

Programação em Java – Exercícios Iniciais

Lista de exercícios: Estrutura de Dados em Java
Esta é uma atividade avaliativa, resolva os exercícios propostos e preserve os seus arquivos para a correção do professor.

1. Desenvolva uma classe que leia um nome a idade o sexo do usuário e mostre em uma única frase.

2. Faça uma classe que leia a temperatura em ºF e mostre em ºC (Obs.: C= 5*( (F-32)/9 )

3. Usando switch faça uma classe que a partir de um valor numérico digitado mostre qual o mês correspondente.

4. Faça um programa que mostre todos o números inteiro até um limite definido pelo usuário.

5.Gerar 100 números aleatórios e calcular sua média(Obs.: int num = (int)(Math.random()*10);

6.Sejam P(x1, y1) e Q(x2, y2) dois pontos quaisquer do plano. À sua distância é dada por:
Escreva então um programa que leia cada um dos pares de pontos e mostre a distância entre eles.

7. Faça um programa que calcule o delta e as raízes de uma equação do 2º grau.

8. Lembre-se de algum programa em que você trabalhou, cite que tipos de classes seriam criadas se esse programa fosse escrito em Java, que atributos e que métodos estariam associados a esses objetos?
Exemplo: Um programa de contas a pagar e contas a receber. Se fosse escrito em Java definiria a classe conta_bancaria. Os atributos seriam: saldo, taxa_de_juros, limite_de_saque, etc.

9. Observe os seguintes arquivos.
/** ponto.java
*Classe que possui as variáveis de um ponto */

class ponto{
int x,y;
}
/** doispontos.java
Classe que implementa a criação de dois novos pontos */

class doispontos{
public static void main(String args[ ]){
ponto p1= new ponto();
ponto p2= new ponto();
p1.x=10;
p1.y=20;
p2.x=42;
p2.y=99;
System.out.println(“x=” + p1.x +” y=” + p1.y);
System.out.println(“x=” + p2.x +” y=” + p2.y);
}
}
Crie um método de atribuição de valores na classe ponto.
Ex.: void atribuivalor(int a,int b){
x=a;
y=b;
}

10. Crie uma classe chamada contador(contador.java) contendo dois métodos incremento e decremento. A partir de outra classe crie um novo objeto de contador que realize a operação de incremento.

11. Crie uma classe que defini o raio de um circulo e um método de calculo para a área, e outra classe que cria um objeto circulo e chama o método de calculo para um valor pré fixado.

12. Modifique o exemplo anterior para calcular a área apenas para valores de raio entre 1 a 50, o valor do raio deve ser inserido pelo usuário.

Programação para ambiente de redes – Aula 3 – Exercícios Complementares de Shell

1- De acordo com cada questão, execute os comandos para entender o que acontece no prompt.

Em caso de dúvida pesquise nos links externos cada uma das funcionalidade.

  • Experimente o comando pwd para
    ver aonde está neste momento.
  • Para obter ajuda sobre os comandos da linha de comandos utilize o comando man.
    Experimente o seguinte:

    1. man ls
    2. man cp
    3. man rm
    4. man man
  • Experimente os seguintes comandos para saber mais sobre os utilizadores
    do sistema:

    1. who
    2. whoami
    3. finger
  • O que faz cada um dos seguintes comandos?
    1. ls *
    2. ls *.c
    3. ls ?.c
    4. ls [a-c]*
    5. ls [a-z]*
    6. ls ??[c]*
    7. ls ?[e]
    8. ls [A-Za-z]*
    9. ls dir*/*.c
  • Qual a diferença entre utilizar o comando ls -l e ls -la?
  • Crie um diretório chamado RedesComputadores.
    Entre nesse diretório e crie outro chamado exercicios. Mostre o conteúdo do diretório RedesComputadores.
    Remova o diretório exercicios e crie um novo chamado exerc. Mude o nome do directório exerc para exercicios.
  • Pesquise a finalidade do comando rm -rf RedesComputadores
  • Redirecione o “output” do comando man para um ficheiro. Por exemplo, man ls > ls.man. Verifique o resultado usando o comando cat ou o comando more.
  • Experimente os seguintes comandos:

    echo ‘um’ > ficheiro.tmp

    echo ‘dois’ > ficheiro.tmp

    Qual é o conteúdo
    de ficheiro.tmp? Se usar alternativamente os seguintes comandos:

    echo ‘um’ > ficheiro.tmp

    echo ‘dois’ >> ficheiro.tmp

    Qual é o conteúdo
    de ficheiro.tmp? Porquê?

    Desenvolva um script simule uma agenda telefonica, onde os dados de Nome, telefone, email, deverão ser infomados durante a sua execução, e ao final atualizados no arquivo de agenda.

  • Consulte a página do manual do comando grep. Supondo que tem um ficheiro com um programa em linguagem C chamado teste.c, explique o que faz cada uma das instruções seguintes:
    1. grep -n main teste.c
    2. grep main *
    3. grep -v main teste.c
    4. grep -c main teste.c
    5. grep -cv main teste.c
  • Consulte a página do manual do comando find. O que faz cada uma das linhas seguintes?
    1. find /home -name ‘trabalho.c’
    2. find . -name ‘*.c’ -ls
    3. find ~ -name ‘core’ -exec rm {} \
  • Uma boa ferramenta para fazer cópia(s) de segurança do seu trabalho é o tar. Consulte a página de manual do tar e diga o que faz cada uma das seguintes linhas:
    1. tar cvf backup.tar .
    2. tar tvf backup.tar
    3. tar -zxvf backup.tar

    Como é que pode compactar um ficheiro tar?

  • Consulte a página do manual referente ao comando ps. Experimente visualizar os processos existentes no seu sistema. Pode experimentar ps e ps
    -aux
    .
  • Consulte a página de manual para o comando kill.
  • Experimente iniciar um processo que não faça nada durante
    5 minutos: sleep 5mSe agora tentar introduzir algum comando o que acontece? Para acabar um processo que corre em “foreground” faça CTRL-C. Acabe com o processo sleep 5m. O que acontece se introduzir comandos agora?
  • Inicie outro processo, desta vez em “background”: sleep 5m &Tente introduzir outros comandos. O que acontece?
  • Utilize o comando jobs. O que vê?
  • Inicie mais dois processos em background:sleep 10m & sleep 15m &

    Utilize novamente o comando jobs e analise o resultado.

  • Traga o segundo processo para “foreground” com fg %2. O que aconteceu?
  • Suspenda o processo com CTRL-Z. Experimente novamente o jobs.
    O que vê?
  • Coloque o processo novamente em “background” com bg %2.
  • Use o comando kill %2 e em seguida o jobs. O que vê?
  • Use o comando ps para ver os processos que correm e acabe com os sleeps recorrendo
    ao seu PID. Execute novamente o comando ps para verificar o
    que aconteceu.

2- Desenvolva um Script Shell que ao ser executado informe a seguinte
frase “Eu estou logado como usuário …., e meu diretório é o …..” .

3- Coloque o respectivo script para funcionar, em caso de falha procure
pelos erros e realize as correções.

#!/bin/bash

# Exemplo de Script com várias opção de seleção

Principal() {

   echo "Exemplo Final sobre o uso de scripts shell"

   echo "------------------------------------------"

   echo "Opções:"

   echo

   echo "1. Trasformar nomes de arquivos"

   echo "2. Adicionar um usuário no sistema"

   echo "3. Deletar um usuário no sistema"

   echo "4. Fazer backup dos arquivos do /etc"

   echo "5. Sair do exemplo"

   echo

   echo -n "Qual a opção desejada? "

   read opcao

   case $opcao in

      1) Transformar ;;

      2) Adicionar ;;

      3) Deletar ;;

      4) Backup ;;

      5) exit ;;

      *) "Opção desconhecida." ; echo ; Principal ;;

   esac

}

Transformar() {

   echo -n "Para Maiúsculo ou minúsculo? [M/m] "

   read var

   if [ $var = "M" ]; then

      echo -n "Que diretório? "

      read dir

      for x in `/bin/ls` $dir; do

         y=`echo $x | tr '[:lower:]' '[:upper:]'`

         if [ ! -e $y ]; then

            mv $x $y

         fi

      done

   elif [ $var = "m" ]; then

      echo -n "Que diretório? "

      read dir

      for x in `/bin/ls` $dir; do

         y=`echo $x | tr '[:upper:]' '[:lower:]'`

         if [ ! -e $y ]; then

            mv $x $y

         fi

      done

   fi

}

Adicionar() {

   clear

   echo -n "Qual o nome do usuário a se adicionar? "

   read nome

   adduser nome

   Principal

}

Deletar() {

   clear

   echo -n "Qual o nome do usuário a deletar? "

   read nome

   userdel nome

   Principal

}

Backup() {

   for x in `/bin/ls` /etc; do

      cp -R /etc/$x /etc/$x.bck

      mv /etc/$x.bck /usr/backup

   done

}

Principal