Your SlideShare is downloading. ×
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apresentação Java Web Si Ufc Quixadá

2,873

Published on

Apresentação para um curso sobre Java voltada para web!

Apresentação para um curso sobre Java voltada para web!

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,873
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
67
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JAVAWEB Introdução a Java volta para web! Zarathon Maia – zarathon@ufc.br
  • 2. CRIANDO O BANCO E A TABELA A SEREM UTILIZADA NO PROGRAMA
    • Criando o Banco de Dados:
    • No prompt do MySQL:
    • CREATE DATABASE nomedobanco <enter>
    • g <enter>
    • Criando a tabela com os campos:
    • create table contatos (<enter>
    • id BIGINT NOT NULL AUTO_INCREMENT, <enter>
    • nome VARCHAR(255), <enter>
    • email VARCHAR(255), <enter>
    • endereco VARCHAR(255), <enter>
    • primary key (id) <enter>
    • ); <enter>
  • 3. CONECTOR Classe criada para guardar as informações da conexão com o banco de dados. package br.com.biloto.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Conector { public static Connection getConnection() throws SQLException { try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;); String url = &quot;jdbc:mysql:// servidor:porta/bancodedados &quot;; return DriverManager.getConnection(url, &quot;root&quot;, “ senha &quot;); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } } }
  • 4. TESTE DO CONECTOR import br.com.biloto.jdbc.Conector; import com.mysql.jdbc.Connection; import java.sql.SQLException; public class Main { public static void main (String[] args) throws SQLException{ try { Connection con = (Connection) Conector.getConnection(); System.out.println(&quot;Você está conectado!&quot;); } catch (SQLException sQLException) { System.out.println(&quot;Ocorreu um erro!&quot;); } } }
  • 5. JAVABEANS (CONTATO) Nada mais é do que uma classe, com um construtor vazio, seus métodos e seus respectivos get’s e set’s. package br.com.biloto.jdbc.modelo; public class Contato { private Long id; private String nome; private String email; private String endereco; public String getNome() { return this.nome; } public void setNome(String novo) { this.nome = novo; } public String getEmail() { return this.email; } public void setEmail(String novo) { this.email = novo; } public String getEndereco() { return this.endereco; } public void setEndereco(String novo) { this.endereco = novo; } public Long getId() { return this.id; } public void setId(Long novo) { this.id = novo; } }
  • 6. INSERINDO O NOSSO PRIMEIRO CONTATO public class JDBCInsere { public static void main(String[] args) { try { // conectando Connection con = Conector.getConnection(); // cria um preparedStatement PreparedStatement stmt = con.prepareStatement(&quot;insert into contatos ( nome,email,endereco) values (?,?,?)&quot;); // preenche os valores stmt.setString(1, “Raimundinho”); stmt.setString(2, “contato@raimundinho.com.br”); stmt.setString(3, “R. Vergueiro 3185 cj57”); // executa stmt.execute(); stmt.close(); System.out.println(&quot;Gravado!&quot;); con.close(); } catch (SQLException e) { e.printStackTrace(); } } }
  • 7. DAO – DATA ACCESS OBJECT Esta idéia, inocente a primeira vista, é capaz de isolar todo o acesso a banco em classes bem simples, cuja instância é um objeto responsável por acessar os dados. Da responsabilidade deste objeto surgiu o nome de Data Access Object ou simplesmente DAO, um dos mais famosos padrões de desenvolvimento. public class ContatoDAO { // a conexão com o banco de dados private Connection connection; public ContatoDAO() throws SQLException { this.connection = ConnectionFactory.getConnection(); } public void adiciona(Contato contato) throws SQLException { // prepared statement para inserção PreparedStatement stmt = this.connection.prepareStatement(&quot;insert into contatos (nome,email,endereco) values (?, ?, ?)&quot;); // seta os valores stmt.setString(1,contato.getNome()); stmt.setString(2,contato.getEmail()); stmt.setString(3,contato.getEndereco()); // executa stmt.execute(); stmt.close(); } }
  • 8. JSP – JAVA SERVER PAGES
    • SCRIPTLET : Para escrever código java na sua página basta escrevê-lo entre as tags <% e %>.Esse código é chamado de scriptlet.
      • COMENTÁRIOS: <%--comentário em jsp --%>
      • LISTANDO CONTATOS:
    • <%
    • ContatoDAO dao = new ContatoDAO();
    • List contatos = dao.getLista();
    • for (int i = 0; i < contatos.size(); i++ ) {
    • Contato contato = (Contato) contatos.get(i);
    • %>
    • <li><%=contato.getNome()%>, <%=contato.getEmail()%>:
    • <%=contato.getEndereco()%></li>
    • <%
    • }
    • %>
  • 9. EU NÃO QUERO CÓDIGO JAVA NO MEU JSP!
    • É complicado ficar escrevendo Java em seu arquivo jsp, não é?
    • Primeiro fica tudo mal escrito e difícil de ler. O Java passa a atrapalhar o código html em vez de ajudar.
    • Depois, quando o responsável pelo design gráfico da página quiser alterar algo terá que conhecer Java para entender o que está escrito lá dentro... hmm... não parece uma boa solução.
  • 10. JSP – JAVA SERVER PAGES
    • EXPRESSION LANGUAGE: Para remover um pouco do código java que fica na página jsp a Sun desenvolveu uma linguagem chamada Expression Language que é interpretada pelo servlet contêiner.
    • Na Expression Language ${contado.nome} chamará a função getNome por padrão. Para que isso sempre funcione devemos colocar o parâmetro em letra minúscula ou seja ${contato.Nome} não funciona.
    • Ex.: ${param.nomedoparametro}
    • JSP:USEBEANS: Uma nova forma alternativa para criar objetos sem a necessidade de Scriptlet.
    • < jsp:useBean id=&quot;contato“ class=&quot;br.com.caelum.jdbc.modelo.Contato&quot; / >
  • 11. JSTL - BIBLIOTECA DE TAGS A JSTL é a api que encapsulou em tags simples toda a funcionalidade que diversas páginas web precisam, como controle de laços (fors), controle de fluxo do tipo if else,manipulação de dados xml e a internacionalização de sua aplicação. A JSTL foi a forma encontrada de padronizar o trabalho de milhares de programadores de páginas JSP. <%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/core&quot; prefix=&quot;c&quot; %>
  • 12. JSTL - BIBLIOTECA DE TAGS C:OUT A partir deste momento, temos a variável dao no chamado escopo de página, esse é o escopo chamado pageContext, onde os beans ficam armazenados. Podemos mostrar o nome do primeiro contato usando a JSTL core. Para isso usaremos o prefixo configurado no cabeçalho: c. <c:out value=&quot;${dao.lista[0].nome}&quot;/> C:FOREACH A JSTL core disponibiliza uma tag chamada c:forEach capaz de iterar por uma coleção, exatamente o que precisamos. O exemplo a seguir mostra o uso de expression language de uma maneira muito mais elegante. <c:forEach var=&quot;contato&quot; items=&quot;${dao.lista}&quot;> <li>${contato.nome}, ${contato.email}: ${contato.endereco}</li> </c:forEach> “ Mais elegante que o código que foi apresentado usando scriptletss, não?” C:SET A tag c:set permite armazenar o resultado da expressão contida no atributo value em outravariável, para algum tipo de manipulação futura. <c:set var=&quot;nome&quot; value=&quot;${contato.nome}&quot;/>
  • 13. JSTL - BIBLIOTECA DE TAGS Como você pode perceber é muito simples aprender a utilizar uma taglib, basta ler o que ela faz, passar os argumentos corretos e pronto. Sugero a leitura completa da especificação da JSTL no site da sun: http://java.sun.com/products/jsp/jstl/ http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html Não precisa decorar tudo, basta ler por cima e saber o que existe e o que não existe. Quando surgir a necessidade do uso de uma dessas tags você terá ela disponível em suas mãos.
  • 14. JSTL - BIBLIOTECA DE TAGS A lista completa das tags da versão 1.1 da JSTL core pode ser facilmente compreendida: c:catch bloco do tipo try/catch c:choose bloco do tipo switch c:forEach for c:forTokens for em tokens (ex: “a,b,c” separados por vírgula) c:if if c:import import c:otherwise default do switch c:out saída c:param parâmetro c:redirect redirecionamento c:remove remoção de variável c:set criação de variável c:url link para outra pagina c:when teste para o switch
  • 15. JSTL - BIBLIOTECA DE TAGS C:IMPORT Uma pergunta que sempre aparece na vida dos programadores é a de como executar o código de outro arquivo jsp dentro de um primeiro arquivo jsp, isto é, você quer colocar um cabeçalho? Um rodapé? <c:import url=&quot;outrapagina.jsp&quot;/> C:URL As vezes não é simples trabalhar com links pois temos que pensar na url que o cliente acessa ao visualizar a nossa página. <c:url value=“sucesso-cadastro.html”/>
  • 16. SERVLETS
    • Uma servlet funciona como um pequeno servidor (servidorzinho em inglês) que recebe chamadas de diversos clientes.
    • Colocar todo HTML dentro de uma Servlet realmente não parece a melhor idéia. O que acontece quando precisamos mudar o design da página? O seu designer não vai ter tempo de editar sua Servlet, recompilá-la e colocá-la no servidor.
    • Uma idéia mais interessante é usar o que é bom de cada um dos dois.
    • O JSP foi feito apenas para apresentar o resultado, e ele não deveria fazer acessos a bancos e outros. Isso deveria estar na Servlet.
    • O ideal então é que a Servlet faça o trabalho sujo e árduo, e o JSP apenas apresente esses resultados. A Servlet possui a lógica de negócios (ou regras de negócio)e o JSP tem a lógica de apresentação.
  • 17. SERVLETS REQUEST DISPATCHER Poderíamos melhorar a nossa aplicação se trabalhássemos com o código java na servlet e depois o código html em uma página jsp. A api da servlet nos permite fazer tal redirecionamento. Basta conhecermos a url que queremos acessar e podemos usar o que fora chamado de RequestDispatcher para acessar outro recurso web, seja esse recurso uma página jsp ou uma servlet: RequestDispatcher rd = request.getRequestDispatcher(“/contatoadicionado.jsp”); rd.forward(request,response); return; Agora podemos facilmente executar a lógica de nossa aplicação web em uma servlet e então redirecionar para uma página jsp, onde você possui seu código html.
  • 18. BIBLIOGRAFIA www.caelum.com.br – apostila FJ21 www.guj.com.br www.javafree.org
  • 19. LINK PARA O PROJETO SISTEMA DE CONTATOS 1.0 (NETBEANS) Abaixo estou disponibilizando o meu código-fonte do Projeto Sistema de Contatos 1.0, desenvolvido na IDE Netbeans 6.1. http://rapidshare.com/files/118954003/SistemaDeContatos.rar.html Enjoy!

×