Anda di halaman 1dari 25

Aplicao em JSP e Javabeans utilizando Banco de Dados

Publicado por Flavio R. Bianchi em 02/10/2011 - 312.997 visualizaes

comentrios: 39 Para saber os conceitos bsicos de JSP, recomendamos esta leitura antes de ler este tutorial. Tutorial: Aplicao em JSP e Javabeans utilizando Bando de Dados. Autor: Rodrigo Afonso Perenha. Bom, vamos desenvolver um aplicao com JSP e Javabeans utilizando o Bando de Dados MySQL, com as opes de cadastrar, alterar, consultar, excluir e listar passo a passo. Mas antes vamos passar por alguns conceitos bsicos e importantes.

1.Escolhendo e configurando o Bando de Dados Primeiramente voc precisa escolher o banco de dados e como exemplo vamos utilizar o MySQL. Caso voc no o tenha, faa o download no site http://dev.mysql.com/downloads, muito simples de instalar e de usar. Aps instalado, para executar o MySQL utilize o executvel WinMySQLAdmin.exe localizado na pasta C:\mysql\bin, em seguida aparecer o icone de semaforo na barra de tarefas prximo ao relgio. Aps instalado e funcionando necessrio configura-lo, para isso, digite para Host Name ?localhost?e para User Name e Password ?root?, para rodar na mquina local. Em seguida necessrio criar a base de dados e a tabela, voc pode utilizar qualquer programa de manipulao, vamos utilizar o MySQL Control Center, disponvel tambm no site do Mysql http://dev.mysql.com/downloads/other/mysqlcc.html. Como exemplo crie uma base de dados com o nome ?teste? e em seguida vamos criar uma tabela chamada pessoa com as colunas nome, idade e sexo. Agora estamos prontos pra utilizar nossa base de dados.

2.Configurando o servidor para rodar o JSP JSP (Java Server Pages) so cdigos que quando combinados com tags HTML produzem pginas dinmicas, que so processadas pelo servidor. Como servidor, podemos utilizar o Jakarta-Tomcat que pode ser encontrado no site http://jakarta.apache.org/tomcat/ ou o Jboss com Tomcat encontrado no site http://www.jboss.org/downloads/index . Caso no tiver, basta instal-lo. Ento, o primero passo configurar o servidor para podermos executar essas pginas dinmicas. Caso tenha escolhido o Tomcat, necessrio inicia-lo executando o arquivo C:\Tomcat 5.0\bin\startup.bat, onde abrir uma janela mostrando a inicializao, demora um pouco, mas depois voc j pode executar seus arquivos JSP, para isso grave seus arquivos JSP dentro do caminho C:\Tomcat 5.0\webapps\ROOT\ , e execute os mesmos atravs do browser digitando o caminho http://localhost:8080/ , por exemplo, caso crie um arquivo teste.jsp, o mesmo seria gravado no

caminho C:\Tomcat 5.0\webapps\ROOT\teste.jsp e depois seria executado no browser atravs do endereo http://localhost:8080/teste.jsp, e quando quiser encerrar o Tomcat execute o arquivo C:\Tomcat 5.0\bin\shutdown.bat. Caso tenha escolhido o Jboss, bem parecido com o Tomcat, pois o Jboss tem o Tomcat integrado e da mesma forma necessrio inicializar o servidor atravs do arquivo C:\jboss-3.0.8_tomcat4.1.24\bin\run.bat, ento cria uma pasta dentro do caminho C:\jboss-3.0.8_tomcat4.1.24\server\default\deploy\ com a extenso .war. Por exemplo, caso queira criar uma pasta teste, ficaria da seguinte forma, C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war e aqui dentro ficaro nossos arquivos JSP. Vamos utilizar o Jboss para nossa implementao e vamos fazer um exemplo simples para testar o servidor, crie a pasta teste.war e em seguida crie uma pgina simples e salve dentro da pasta teste.war.

1. <%@ page contentType="text/html"%> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. <html> 4. 5. <head> 6. <title>Teste JSP</title> 7. </head> 8. 9. <body> 10. <%out.println("Teste efetuado com sucesso");%> 11. </body> 12. </html>
<%@ page contentType="text/html"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <html> <head> <title>Teste JSP</title> </head> <body> <%out.println("Teste efetuado com sucesso");%> </body> </html>

Ento inicie o servidor e em seguida digite o endereo http://localhost:8080/teste/teste.jsp no browser. Aqui a pasta teste no precisa vir acompanhado da extenso .war. Note que os cdigos JSP esto entre , e se tudo der certo voc ver a mensagem do cdigo JSP na tela.

Para encerrar o Jboss execute o C:\jboss-3.0.8_tomcat-4.1.24\bin\shutdown.bat Caso voc esteja tendo algum problema tente encerrar o jboss ou tomcat e inicializa-lo novamente.

3. Acessando o MySQL atravs do JSP utilizando o servidor Jboss com Tomcat integrado. Agora vamos testar a conexo com o Banco MySQL atravs do JSP. Inicialmente precisamos baixar o driver do MySQL, que um arquivo .jar disponvel no site http://dev.mysql.com/downloads/ e copia-lo na pasta C:\jboss-3.0.8_tomcat4.1.24\server\default\lib. Vamos desenvolver uma pgina pra testar a conexo com o banco MySQL e salvar com o nome testeConexao.jsp na pasta C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war criada anteriormente.

1. <%@ page contentType="text/html" language="java" import="java.sql.*"%> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. 4. <head> 5. <title>Teste de Conexo</title> 6. </head> 7. 8. <body> 9. 10. <% 11. &nbsp; &nbsp;&nbsp; &nbsp;Connection con; 12. &nbsp; &nbsp;Statement stm; 13. &nbsp; &nbsp; 14. &nbsp; &nbsp;try { 15. 16. &nbsp; &nbsp;&nbsp; &nbsp;Class.forName("org.gjt.mm.mysql.Driver"); 17. &nbsp; &nbsp;&nbsp; &nbsp;con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","root"); 18. &nbsp; &nbsp;&nbsp; &nbsp;stm = con.createStatement(); 19. &nbsp; &nbsp;&nbsp; &nbsp;out.println("Conexo efetuada com sucesso"); 20. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 21. &nbsp; &nbsp;} catch (Exception e) { 22. &nbsp; &nbsp;&nbsp; &nbsp;out.println("No foi possvel conectar ao banco" + e.getMessage()); 23. &nbsp; &nbsp;} 24. %> 25. 26. </body>

<%@ page contentType="text/html" language="java" import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <head> <title>Teste de Conexo</title> </head> <body> <% Connection con; Statement stm; try {

Ento inicia o MySQL, em seguida inicia o servidor Jboss e executa no browser o endereo http://localhost:8080/teste/testeConexao.jsp. Caso funcione aparecer na tela a mensagem ?Conexo efetuada com sucesso?. Caso queira utilizar outro banco, como Postgres, SQLServer, Oracle ou FireBird, consulte o tutorial Mini-tutorial sobre conexo com BD.

4. Utilizando JSP para acessar Javabeans Javabeans nada mais do que arquivos Java acessados atravs de pginas dinmicas, ou seja, atravs do JSP. Nosso propsito ser acessar um Javabeans para fazer toda a manipulao do banco, mas antes vamos testar um exemplo simples. Inicialmente vamos fazer uma aplicao em java seguindo algumas convenes, ?get? para obter dados e ?set? para atribuir dados. Para isso podemos utilizar qualquer editor, inclusive o bloco de notas.

1. package testeBean; 2. 3. public class TesteBean { 4. 5. String txt = ""; 6. 7. public void setTexto(String texto){ 8. txt = texto; 9. } 10. 11. public String getTexto(){ 12. return txt; 13. } 14. }

package testeBean; public class TesteBean { String txt = ""; public void setTexto(String texto){ txt = texto; } public String getTexto(){ return txt; } }

Ento dentro da pasta teste.war criamos uma pasta chamada WEB-INF, que onde sero procurados todos os JavaBenas e dentro da pasta WEB-INF ser criada a pasta classes e a pasta lib. Na pasta classes poderemos gravar os arquivos com extenso .class e na pasta lib podemos gravar os arquivos com extenso .jar. Sempre salve os Javabeans dentro de pacotes para evitar transtornos. Vamos criar um arquivo .jar desse exemplo e salva-la como testeBean.jar na pasta lib, ficando da seguitne maneira C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war\WEBINF\lib\testeBean.jar ou caso preferir pode gravar o pacote testeBean todo dentro da pasta classes C:\jboss-3.0.8_tomcat-4.1.24\server\default\deploy\teste.war\WEBINF\classes\testeBean\TesteBean.class. Agora dentro da pasta teste.war iremos criar o arquivo JSP que ir chamar o Javabeans. Salve o mesmo como testeBean.jsp.

1. <jsp:useBean id="testeObj" class="testeBean.TesteBean"> 2. <jsp:setProperty name="testeObj" property="texto" value="Testando..."/> 3. </jsp:useBean> 4. 5. <html> 6. <head> 7. <title>Teste Jsp</title> 8. </head> 9. 10. <body> 11. <h1>Teste JSP</h1> 12. <p>A mensagem teste : 13. <jsp:getProperty name="testeObj" property="texto"/> 14. </p> 15. </body> 16. </html> 17.

<jsp:useBean id="testeObj" class="testeBean.TesteBean"> <jsp:setProperty name="testeObj" property="texto" value="Testando..."/> </jsp:useBean> <html> <head> <title>Teste Jsp</title> </head> <body> <h1>Teste JSP</h1> <p>A mensagem teste : <jsp:getProperty name="testeObj" property="texto"/> </p> </body>

O comando cria um objeto ?testeObj? da classe TesteBean. O comando atravs do objeto ?testeObj? utiliza o setProperty para chamar o mtodo setTexto, que associa o property=?texto? ao setProperty e chama o mtodo setTexto do Javabeans passando como parametro o valor ?Testando...?. O mesmo ocorre para o comando que chama o mtodo getTexto, imprimindo a varivel ?txt? do Javabeans na tela. Voc tambm pode utilizar o objeto criado para chamar os mtodos do Javabeans sem utilizar getProperty, colocando o cdigo JSP entre , por exemplo poderiamos chamar o mtodo getTexto da seguinte forma , utilizando o sinal de = para imprimir na tela, ou mandar imprimir utilizando o cdigo , j que o mtodo getTexto() retorna uma string. Ento inicia o servidor Jboss e executa no browser o endereo http://localhost:8080/teste/testeBean.jsp. Caso imprimir a mensagem ?Testando...? na tela, a chamada ao Javabeans ocorreu corretametne.

5. Utilizando JSP e Javabeans para acessar o MySQL Agora vamos aperfeioar nosso exemplo de conexo com banco de dados, fazendo com que o Javabeans faa a conexo e o JSP acesse o resultado atravs do mesmo. Primeiramente vamos criar um JavaBeans para fazer a conexo, bem parecido com o JSP que fizemos anteriormente.

1. package conexao; 2. 3. import java.sql.*; 4. 5. public class Conexao { 6. 7. public Connection con; 8. public Statement stm; 9. private String sit = ""; 10. 11. public Conexao() { 12.

13. try { 14. 15. Class.forName("org.gjt.mm.mysql.Driver"); 16. con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","root"); 17. stm = con.createStatement(); 18. 19. sit = "Conexo efetuada com sucesso"; 20. 21. 22. } catch (Exception e) { 23. sit = "no foi possvel conectar ao banco" + e.getMessage(); 24. } 25. } 26. 27. public String getSituacao(){ 28. return sit; 29. } 30. }
package conexao; import java.sql.*; public class Conexao { public Connection con; public Statement stm; private String sit = ""; public Conexao() { try { Class.forName("org.gjt.mm.mysql.Driver");

Ento da mesma forma mostrada anteriormente salve o Javabeans como Conexao.jar dentro da pasta teste.war\WEB-INF\lib e crie um arquivo JSP e salve como conexao.jsp dentro da pasta teste.war.

1. <%@page contentType="text/html"%> 2. <jsp:useBean id="con" class="conexao.Conexao"/> 3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4. 5. <html> 6. <head> 7. <title>Teste Conexo</title> 8. </head> 9. 10. <body>

11. <h1>Teste Conexo</h1> 12. <p>A situao do banco : 13. <jsp:getProperty name="con" property="situacao"/> 14. </p> 15. </body> 16. </html>
<%@page contentType="text/html"%> <jsp:useBean id="con" class="conexao.Conexao"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <html> <head> <title>Teste Conexo</title> </head> <body> <h1>Teste Conexo</h1> <p>A situao do banco : <jsp:getProperty name="con" property="situacao"/> </p> </body>

Ento inicia o Jboss e executa no browser o endereo http://localhost:8080/teste/conexao.jsp. Caso funcione, estamos prontos para comear desenvolver a aplicao em si.

6. Desenvolvimento da aplicao

Agora voc poder implementar os cdigos seguintes. Vamos fazer uma breve explicao sobre cada um, cabendo a voc analisar o cdigo para entender suas funes.

Conexao.java Vamos aperfeioar ainda mais o Javabeans anterior fazendo com que ele seja responsvel por toda manipulao no banco de dados e salva-lo como Conexao.jar na pasta lib.

1. package conexao; 2. 3. import java.sql.*; 4. 5. public class Conexao { 6. 7. public Connection con; 8. public Statement stm; 9. public ResultSet res = null; 10. private String nome = null;

11. private int idade = 0; 12. private String sexo = null; 13. 14. public Conexao() { 15. 16. try { 17. 18. Class.forName("org.gjt.mm.mysql.Driver"); 19. con = 20. DriverManager.getConnection( 21. "jdbc:mysql://localhost:3306/teste", 22. "root", 23. "root"); 24. stm = con.createStatement(); 25. 26. } catch (Exception e) { 27. System.out.println("no foi possvel conectar ao banco" + e.getMessage()); 28. } 29. } 30. 31. public void setNome(String nome){ 32. this.nome = nome; 33. } 34. 35. public void setIdade(int idade){ 36. this.idade = idade; 37. } 38. 39. public void setSexo(String sexo){ 40. this.sexo = sexo; 41. } 42. 43. public String getNome(){ 44. return nome; 45. } 46. 47. public int getIdade(){ 48. return idade; 49. } 50. 51. public String getSexo(){ 52. return sexo; 53. } 54. 55. public void inserirDados(){ 56. 57. try { 58. String query = "insert into pessoa(nome,idade,sexo) values(\""+nome+"\","+idade+",\""+sexo+"\")"; 59. stm.executeUpdate(query);

60. 61. }catch (SQLException e){System.out.println("Erro na insero:" + e.getMessage());} 62. 63. } 64. 65. public boolean alterarDados(){ 66. 67. boolean testa = false; 68. 69. try { 70. String query = "update pessoa "+ 71. "set idade = " + idade + ", "+ 72. "sexo = \"" + sexo + "\" " + 73. "where nome = \"" + nome + "\""; 74. 75. int linhas = stm.executeUpdate(query); 76. 77. if (linhas > 0) 78. testa = true; 79. else 80. testa = false; 81. 82. }catch (SQLException e){System.out.println("Erro na insero:" + e.getMessage());} 83. 84. return testa; 85. } 86. 87. public boolean excluirDados(){ 88. 89. boolean testa = false; 90. 91. try { 92. String query = "delete from pessoa where nome='" + nome+"'"; 93. int linhas = stm.executeUpdate(query); 94. 95. if (linhas > 0) 96. testa = true; 97. else 98. testa = false; 99. 100. }catch (SQLException e){System.out.println("Erro na excluso:" + e.getMessage());} 101. 102. return testa; 103. } 104. 105. public boolean consultarDados(){ 106. 107. boolean testa = false; 108.

109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135.

try { String query = "select * from pessoa where nome='" + nome+"'"; res = stm.executeQuery(query); if (res.next()){testa = true;} else{testa = false;} }catch (SQLException e){System.out.println("Erro na insero:" + e.getMessage());} return testa; } public void setConsulta() { try { res = stm.executeQuery("select * from pessoa"); } catch (SQLException e){ e.printStackTrace(); } } public ResultSet getResultado() { return res; } }

package conexao; import java.sql.*; public class Conexao { public Connection con; public Statement stm; public ResultSet res = null; private String nome = null; private int idade = 0; private String sexo = null; public Conexao() {

Onde o mtodo construtor ser responsvel pela conexo ao banco, ou seja, toda vez que for instanciado um objeto dessa classe, o construtor ser chamado primeiro e o banco ser conectado. Foram criadas trs variveis privadas nome, idade e sexo, que sero acessadas atravs dos mtodos get e set. O mtodo inserirDados() responsvel pela insero no banco, onde ser passado como valores as trs variveis privadas. O mtodo alterarDados() responsvel por atualizar os dados levando em considerao a varivel

nome, testando se foi encontrado algum registro, retornando assim true ou false. O mtodo excluirDados(), da mesma forma que o alterarDados(), exclui os dados levando em considerao a varivel nome, testando se encontrou algum registro. O mtodo consultaDados() apenas consulta os dados do banco, tambm testando se encontrou algum registro. O mtodo setConsulta() executa uma consulta comum. E o mtodo getResultado() retorna o objeto ResultSet contendo todos os registros do banco.

pessoa.jsp Agora criaremos um arquivo JSP principal, contendo os campos e botes para insero, consulta, alterao e excluso. Chamaremos de pessoa.jsp.

1. <%@ page contentType="text/html"%> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. 4. <html> 5. <head> 6. <title>Tabela Pessoa</title> 7. 8. 9. <script> 10. 11. function enviar(par){ 12. 13. if (par == 'cadastrar'){ 14. 15. if (document.cadastro.nomeField.value == ''){ 16. document.cadastro.statusField.value = 'Preencha o campo nome'; 17. }else if (document.cadastro.idadeField.value == ''){ 18. document.cadastro.statusField.value = 'Preencha o campo idade'; 19. }else if (document.cadastro.sexoField.value == ''){ 20. document.cadastro.statusField.value = 'Escolha o sexo da pessoa'; 21. }else { 22. document.cadastro.action='cadastrar.jsp'; 23. document.cadastro.submit(); 24. } 25. 26. } else if (par == 'consultar'){ 27. 28. if (document.cadastro.nomeField.value == ''){ 29. document.cadastro.statusField.value = 'Preencha o campo nome'; 30. }else { 31. document.cadastro.action='consultar.jsp'; 32. document.cadastro.submit(); 33. }

34. 35. } else if (par == 'alterar'){ 36. 37. if (document.cadastro.nomeField.value == ''){ 38. document.cadastro.statusField.value = 'Preencha o campo nome'; 39. }else if (document.cadastro.idadeField.value == ''){ 40. document.cadastro.statusField.value = 'Preencha o campo idade'; 41. }else if (document.cadastro.sexoField.value == ''){ 42. document.cadastro.statusField.value = 'Escolha o sexo da pessoa'; 43. }else { 44. document.cadastro.action='alterar.jsp'; 45. document.cadastro.submit(); 46. } 47. } else if (par == 'excluir'){ 48. 49. if (document.cadastro.nomeField.value == ''){ 50. document.cadastro.statusField.value = 'Preencha o campo nome'; 51. }else { 52. document.cadastro.action='excluir.jsp'; 53. document.cadastro.submit(); 54. } 55. } else if (par == 'listar'){ 56. document.cadastro.action='listar.jsp'; 57. document.cadastro.submit(); 58. } 59. } 60. 61. </script> 62. 63. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 64. <style type="text/css"> 65. <!-66. .style3 {&nbsp; &nbsp;font-size: 28px; 67. &nbsp; &nbsp;font-weight: bold; 68. } 69. --> 70. </style> 71. </head> 72. 73. <% 74. String nome = request.getParameter("nome"); 75. String idade = request.getParameter("idade"); 76. String sexo = request.getParameter("sexo"); 77. String status = request.getParameter("status"); 78. %> 79. 80. <body> 81. <form name="cadastro" method="get"> 82. 83. <table width="472" border="0">

84. <tr> 85. <td width="458" height="70" bgcolor="#6699FF"><p align="left" class="style3"> Cadastro pessoa </p> 86. </td> 87. </tr> 88. <tr> 89. <td height="177" bgcolor="#6699FF"><p> <strong>Nome :</strong> 90. <input name="nomeField" type="text" id="nomeField" size="46" value="<%=(nome==null)?"":nome%>"> </p> 91. <p> <strong>Idade :</strong> 92. <input name="idadeField" type="text" id="idadeField" size="10" value="<%=(idade==null)?"":idade%>"> 93. <strong>Sexo:</strong> 94. 95. <input name="sexoField" type="text" id="sexoField" size="6" value="<%=(sexo==null)?"":sexo%>"> 96. 97. 98. </p> 99. </td> 100. </tr> 101. <tr> 102. <td height="101" bgcolor="#6699FF"><p> 103. <input type="button" onClick="enviar('cadastrar')" name="bt1" value="cadastrar"> 104. <input type="button" onClick="enviar('consultar')" name="bt2" value="consultar"> 105. <input type="button" onClick="enviar('alterar')" name="bt3" value="alterar"> 106. <input type="button" onClick="enviar('excluir')" name="bt4" value="excluir"> 107. <input type="button" onClick="enviar('listar')" name="bt5" value="listar"> 108. </p> 109. <p> <strong>Status: 110. <input name="statusField" disabled type="text" id="statusField" size="46" value="<%=(status==null)?"":status%>"> 111. </strong></p> 112. </td> 113. </tr> 114. </table> 115. </form> 116. </body> 117. </html>

<%@ page contentType="text/html"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <html> <head> <title>Tabela Pessoa</title>

<script> function enviar(par){ if (par == 'cadastrar'){ if (document.cadastro.nomeField.value == ''){

Essa pgina uma tela simples com alguns textFields e botes. Os botes utilizam o mtodo onclick para chamar a funo enviar(par) escrita em javascript, onde de acordo com cada boto pressionado, chamado uma pgina diferente, e aproveitamos tambm para testar se o campos esto vazios de acordo com cada solicitao. Note que h um trecho JSP , que ser usado para recuperar os parametros de outras pginas, onde sero melhor visiveis mais a frente.

cadastrar.jsp

Quando pressionamos o boto cadastrar, necessrio que todos os campos em pessoa.jsp estejam preenchidos, ento chamado a pgina cadastrar.jsp.

1. <%@ page contentType="text/html" language="java" import="java.sql.*"%> 2. <jsp:useBean id="con" class="conexao2.Conexao"/> 3. 4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5. <html> 6. <head> 7. <title>Cadastrar</title> 8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 9. </head> 10. 11. <body> 12. <form name="form1" method="post" action="pessoa.jsp"> 13. 14. <p><strong>Tabela Pessoa </strong></p> 15. <table border=1 cellspacing=0 cellpadding=0 > 16. 17. <tr>

18. <td width=200><strong> 19. Nome 20. </strong></td> 21. <td width=50><strong> 22. Idade 23. </strong></td> 24. <td width=30><strong> 25. Sexo 26. </strong></td> 27. </tr> 28. 29. 30. <% &nbsp; &nbsp; 31. &nbsp; &nbsp;try { 32. 33. &nbsp; &nbsp;&nbsp; &nbsp;con.setNome(request.getParameter("nomeField")); 34. &nbsp; &nbsp;&nbsp; &nbsp;con.setIdade(Integer.parseInt(request.getParameter("idadeField"))); 35. &nbsp; &nbsp;&nbsp; &nbsp;con.setSexo(request.getParameter("sexoField")); 36. &nbsp; &nbsp;&nbsp; &nbsp;con.inserirDados(); 37. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 38. &nbsp; &nbsp;&nbsp; &nbsp;con.setConsulta(); 39. &nbsp; &nbsp;&nbsp; &nbsp;ResultSet temp = con.getResultado(); 40. &nbsp; &nbsp;&nbsp; &nbsp;temp.next(); 41. &nbsp; &nbsp;&nbsp; &nbsp; 42. &nbsp; &nbsp;&nbsp; &nbsp;if(request.getParameter("nomeField").equals(temp.getString("nome"))) 43. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;response.sendRedirect("http://localhost:8080/teste/pessoa.jsp?status=Registro j existente"); 44. &nbsp; &nbsp;&nbsp; &nbsp; 45. &nbsp; &nbsp;&nbsp; &nbsp;do{ 46. &nbsp; &nbsp;&nbsp; &nbsp;%> 47. <tr> 48. <td width=200> 49. <%out.print(temp.getString("nome"));%> 50. </td> 51. <td width=50> 52. <%out.print(temp.getString("idade"));%> 53. </td> 54. <td width=30> 55. <%out.print(temp.getString("sexo"));%> 56. </td> 57. </tr> 58. <%}while (temp.next()); 59. &nbsp; &nbsp; 60. &nbsp; &nbsp;}catch (Exception e) { 61. &nbsp; &nbsp;&nbsp; &nbsp;e.printStackTrace(); 62. &nbsp; &nbsp;} 63. &nbsp; &nbsp;

64. %> 65. </table> 66. <p> </p> 67. <p> 68. <input type="submit" name="Submit" value="voltar"> 69. </p> 70. <p><strong>Status: 71. <input name="statusField" disabled type="text" id="statusField" size="36" value="<%=request.getParameter("nomeField")%> foi cadastrado com sucesso"> 72. </strong></p> 73. </form> 74. </body> 75. </html>
<%@ page contentType="text/html" language="java" import="java.sql.*"%> <jsp:useBean id="con" class="conexao2.Conexao"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <html> <head> <title>Cadastrar</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" method="post" action="pessoa.jsp"> <p><strong>Tabela Pessoa </strong></p> <table border=1 cellspacing=0 cellpadding=0 >

Aqui ser recuperado o conteudo dos campos de pessoa.jsp, j atribuindo esses valores s variveis do Javabeans e em seguida chamado o mtodo inserirDados(), que ser responsvel por fazer a insero no banco com as variveis atribuidas anteriormente. Depois feito um teste se a varivel nome igual a alguma no banco, caso sim retorna para a pgina pessoa.jsp junto com a varivel status que ser usada em pessoa.jsp para mostrar a mensagem ?Registro j existente? no campo statusField. Caso no seja igual a nenhuma, ento chama o mtodo getResultado() e atribui a variavel temp do tipo ResultSet, que conter todos os registros do banco e atravs do mtodo temp.getString() mostramos em uma tabela todos os registros do banco, sendo possvel visualizar o cadastro efetuado. Nesta pgina tambm h um boto para retornar pagina principal e um campo para mostrar o status do cadastro. Note que no inicio da pgina est esta sendo importando o pacote java.sql atravs do cdigo , pois o mesmo ser necessrio ao criar uma varivel do tipo ResultSet.

consultar.jsp A pgina consulta utilizada para retornar na tela de pessoa.jsp todos os dados de um registro para uma posterior alterao ou excluso.

Ento quando pressionamos o boto consultar, ser chamado a pgina consultar.jsp, onde ser necessrio que o campo nome esteja preenchido.

1. <title>Consulta</title> 2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 3. </head> 4. 5. <body> 6. <form method="get"> 7. <% 8. &nbsp; &nbsp;&nbsp; &nbsp;con.setNome(request.getParameter("nomeField")); 9. &nbsp; &nbsp;&nbsp; &nbsp;boolean testa = con.consultarDados(); 10. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 11. &nbsp; &nbsp;&nbsp; &nbsp;if (testa) 12. &nbsp; &nbsp;&nbsp; &nbsp;{&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 13. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;ResultSet temp = con.getResultado(); 14. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;response.sendRedirect("http://localhost:8080/teste/pessoa.jsp?status=Consulta efetuada com sucesso&nome="+ 15. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;temp.getString("nome")+"&idade="+temp.getString("idade")+"&sexo="+temp.getSt ring("sexo")); 16. &nbsp; &nbsp;&nbsp; &nbsp;}else{ 17. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;response.sendRedirect("http://localhost:8080/teste/pessoa.jsp?status=Registro no encontrado"); 18. &nbsp; &nbsp;&nbsp; &nbsp;} 19. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 20. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 21. %> 22. </form> 23. </body> 24. </html>
<title>Consulta</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form method="get"> <% con.setNome(request.getParameter("nomeField")); boolean testa = con.consultarDados(); if (testa) { ResultSet temp = con.getResultado(); response.sendRedirect("http://localhost:8080/teste/pessoa.jsp?status=Consulta efetuada com suc temp.getString("nome")+"&idade="+temp.getString("idade")+"&sexo="+temp.getString("sexo"));

Aqui ser recuperado o contedo do campo nome e atribuido varivel nome atravs do mtodo setNome() no Javabeans. Ento chamado o mtodo consultarDados(), que do tipo booleano, consultando o registro que contm o nome e verificando se o mesmo existe, retornando true ou false. Caso exista, ento chamado o mtodo getResultado() para recuperar as informaes do registro e passa-las como parametros para pessoa.jsp atravs das variveis nome, idade, sexo e status com a mensagem ?Consulta efetuada com sucesso?, atravs do response.sendRedirect, para serem mostradas na tela de pessoa.jsp. Caso no exista, ser passada apenas a varivel status com a mensagem ?Registro no encontrado?.

alterar.jsp A pgina alterar.jsp normalmente chamada aps efetuada a consulta de algum nome, onde todos os campos precisam estar preenchidos.

1. <%@ page contentType="text/html" language="java" import="java.sql.*"%> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. <jsp:useBean id="con" class="conexao2.Conexao"/> 4. <html> 5. <head> 6. <title>Alterar</title> 7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 8. </head> 9. 10. <body> 11. <form name="form1" method="post" action="pessoa.jsp"> 12. 13. <jsp:setProperty name="con" property="nome" value="<%=request.getParameter("nomeField")%>"/> 14. <jsp:setProperty name="con" property="idade" value="<%=Integer.parseInt(request.getParameter("idadeField"))%>"/> 15. <jsp:setProperty name="con" property="sexo" value="<%=request.getParameter("sexoField")%>"/> 16. <p><strong>Tabela Pessoa </strong></p> 17. <table border=1 cellspacing=0 cellpadding=0 > 18. 19. <tr> 20. <td width=200><strong> 21. Nome 22. </strong></td> 23. <td width=50><strong> 24. Idade 25. </strong></td> 26. <td width=30><strong> 27. Sexo 28. </strong></td>

29. </tr> 30. 31. 32. <% &nbsp; &nbsp; 33. &nbsp; &nbsp;try { 34. 35. &nbsp; &nbsp;&nbsp; &nbsp;boolean testa = con.alterarDados(); 36. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 37. &nbsp; &nbsp;&nbsp; &nbsp;if (con.alterarDados()) 38. &nbsp; &nbsp;&nbsp; &nbsp;{&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 39. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;con.setConsulta(); 40. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;ResultSet temp = con.getResultado(); 41. &nbsp; &nbsp;&nbsp; &nbsp; 42. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;while (temp.next()){ 43. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;%> 44. <tr> 45. <td width=200> 46. <%out.print(temp.getString("nome"));%> 47. </td> 48. <td width=50> 49. <%out.print(temp.getString("idade"));%> 50. </td> 51. <td width=30> 52. <%out.print(temp.getString("sexo"));%> 53. </td> 54. </tr> 55. <%} 56. &nbsp; &nbsp;&nbsp; &nbsp;}else{ 57. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;response.sendRedirect("http://localhost:8080/teste/pessoa.jsp?status=Registro no encontrado"); 58. &nbsp; &nbsp;&nbsp; &nbsp;}&nbsp; &nbsp; 59. &nbsp; &nbsp;}catch (Exception e) { 60. &nbsp; &nbsp;&nbsp; &nbsp;e.printStackTrace(); 61. &nbsp; &nbsp;} 62. &nbsp; &nbsp; 63. %> 64. </table> 65. <p> 66. <input type="submit" name="Submit" value="voltar"> 67. </p> 68. <p><strong>Status: 69. <input name="statusField" disabled type="text" id="statusField" size="36" value="<%=request.getParameter("nomeField")%> foi alterado com sucesso"> 70. </strong></p> 71. </form> 72. </body> 73. </html>

<%@ page contentType="text/html" language="java" import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <jsp:useBean id="con" class="conexao2.Conexao"/> <html> <head> <title>Alterar</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" method="post" action="pessoa.jsp"> <jsp:setProperty name="con" property="nome" value="<%=request.getParameter("nomeField")%>"/> <jsp:setProperty name="con" property="idade" value="<%=Integer.parseInt(request.getParameter("idade <jsp:setProperty name="con" property="sexo" value="<%=request.getParameter("sexoField")%>"/>

Da mesma forma que em cadastrar.jsp, aqui sero recuperados todos os campos de pessoa.jsp e atribuido seus valores s variveis do Javabeans e em seguida chamado o mtodo alterarDados(), que um mtodo booleano que faz a alterao no banco e retorna true ou false. Caso retorne true, a alterao foi efetuada com sucesso e ento mostrado em uma tabela todos os registros do banco, podendo visualizar o registro alterado. Caso retorne false, ser chamada a pgina pessoal.jsp passando a varivel status para mostrar no campo statusField de pessoa.jsp a mensagem ?Registro no encontrado?.

excluir.jsp Essa pgina tambm chamada aps uma consulta e ser necessrio que todos os campos estejam preenchidos.

1. <%@ page contentType="text/html" language="java" import="java.sql.*"%> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. <jsp:useBean id="con" class="conexao2.Conexao"/> 4. <html> 5. <head> 6. <title>Excluir</title> 7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 8. </head> 9. 10. <body> 11. <form name="form1" method="post" action="pessoa.jsp"> 12. 13. <p><strong>Tabela Pessoa </strong></p> 14. <table border=1 cellspacing=0 cellpadding=0 > 15. 16. <tr> 17. <td width=200><strong> 18. Nome

19. </strong></td> 20. <td width=50><strong> 21. Idade 22. </strong></td> 23. <td width=30><strong> 24. Sexo 25. </strong></td> 26. </tr> 27. 28. 29. <% &nbsp; &nbsp; 30. &nbsp; &nbsp;try { 31. 32. &nbsp; &nbsp;&nbsp; &nbsp;con.setNome(request.getParameter("nomeField")); 33. 34. &nbsp; &nbsp;&nbsp; &nbsp;if (con.excluirDados()) 35. &nbsp; &nbsp;&nbsp; &nbsp;{ 36. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;con.setConsulta(); 37. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;ResultSet temp = con.getResultado(); 38. &nbsp; &nbsp;&nbsp; &nbsp; 39. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;while (temp.next()){ 40. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;%> 41. <tr> 42. <td width=200> 43. <%out.print(temp.getString("nome"));%> 44. </td> 45. <td width=50> 46. <%out.print(temp.getString("idade"));%> 47. </td> 48. <td width=30> 49. <%out.print(temp.getString("sexo"));%> 50. </td> 51. </tr> 52. <%} 53. &nbsp; &nbsp;&nbsp; &nbsp;} 54. &nbsp; &nbsp;&nbsp; &nbsp;else{ 55. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;response.sendRedirect("http://localhost:8080/teste/pessoa.jsp?status=Registro no encontrado"); 56. &nbsp; &nbsp;&nbsp; &nbsp;}&nbsp; &nbsp; 57. &nbsp; &nbsp;}catch (Exception e) { 58. &nbsp; &nbsp;&nbsp; &nbsp;e.printStackTrace(); 59. &nbsp; &nbsp;} 60. 61. &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 62. %> 63. </table> 64. <p> </p> 65. <p> 66. <input type="submit" name="Submit" value="voltar">

67. </p> 68. <p><strong>Status: 69. <input name="statusField" disabled type="text" id="statusField" size="36" value="<%=request.getParameter("nomeField")%> foi excluido com sucesso"> 70. </strong></p> 71. </form> 72. </body> 73. </html>
<%@ page contentType="text/html" language="java" import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <jsp:useBean id="con" class="conexao2.Conexao"/> <html> <head> <title>Excluir</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" method="post" action="pessoa.jsp"> <p><strong>Tabela Pessoa </strong></p> <table border=1 cellspacing=0 cellpadding=0 >

A funcionalidade dessa pgina identica pgina alterar.jsp, mudando apenas que invocado o mtodo excluirDados() ao invs de alterarDados(). Caso a excluso seja efetuada com sucesso, da mesma forma os dados sero mostrados em uma tabela sendo possvel visualizar a ausncia do registro excluido. listar.jsp

Quando pressionamos o boto listar, chamado a pgina listar.jsp.

1. <%@ page contentType="text/html" language="java" import="java.sql.*"%> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. <jsp:useBean id="con" class="conexao2.Conexao"/> 4. <html> 5. <head> 6. <title>Untitled Document</title> 7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 8. </head> 9. 10. <body> 11. <form name="form1" method="post" action="pessoa.jsp"> 12.

13. <p><strong>Tabela Pessoa </strong></p> 14. <table border=1 cellspacing=0 cellpadding=0 > 15. 16. <tr> 17. <td width=200><strong> 18. Nome 19. </strong></td> 20. <td width=50><strong> 21. Idade 22. </strong></td> 23. <td width=30><strong> 24. Sexo 25. </strong></td> 26. </tr> 27. 28. 29. <% &nbsp; &nbsp; 30. &nbsp; &nbsp;try { 31. &nbsp; &nbsp;&nbsp; &nbsp;con.setConsulta(); 32. &nbsp; &nbsp;&nbsp; &nbsp;ResultSet temp = con.getResultado(); 33. &nbsp; &nbsp;&nbsp; &nbsp; 34. &nbsp; &nbsp;&nbsp; &nbsp;while (temp.next()){ 35. &nbsp; &nbsp;&nbsp; &nbsp;%> 36. <tr> 37. <td width=200> 38. <%out.print(temp.getString("nome"));%> 39. </td> 40. <td width=50> 41. <%out.print(temp.getString("idade"));%> 42. </td> 43. <td width=30> 44. <%out.print(temp.getString("sexo"));%> 45. </td> 46. </tr> 47. <%} 48. &nbsp; &nbsp; 49. &nbsp; &nbsp;}catch (Exception e) { 50. &nbsp; &nbsp;&nbsp; &nbsp;e.printStackTrace(); 51. &nbsp; &nbsp;} 52. &nbsp; &nbsp; 53. %> 54. </table> 55. <p> 56. <input type="submit" name="Submit" value="voltar"> 57. </p> 58. </form> 59. </body> 60. </html>

<%@ page contentType="text/html" language="java" import="java.sql.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w w w .w 3.org/TR/html4/loose. <jsp:useBean id="con" class="conexao2.Conexao"/> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" method="post" action="pessoa.jsp"> <p><strong>Tabela Pessoa </strong></p> <table border=1 cellspacing=0 cellpadding=0 >

Onde sua nica funcionalidadde mostrar em uma tabela todos registro do banco no momento, para uma possvel verificao dos dados.

Feito isso, nossa aplicao est encerrada e pronta para rodar, e voc est preparado para criar e praticar exemplos mais avanados. Em breve estarei disponibilizando a mesma aplicao utilizando hibernate... Por Rodrigo Perenha

Anda mungkin juga menyukai