====== IESP - Tecnologias Web 2009.1 ====== ===== Horário/Sala ===== Segundas: 18:20 - 20:10\\ Terças: 20:20 - 22:00\\ Sala: 306 Laboratório: 4 ===== Grupo de Discussão ===== email para: [[tecnologias-web-iesp@googlegroups.com]]\\ Para visualizar os emails já enviados, acesse: [[http://groups.google.com/group/tecnologias-web-iesp/]]\\
Google Groups Beta
Inscreva-se no grupo: Tecnologias Web - 2009.1. Toda informação e discussão deverá ser enviada para essa lista.
Email:
===== Ementa ===== Estudo de tecnologias web com enfoque na linguagem Java. HTML. Arquitetura MVC. Padrões de projeto. Java Server Faces para camada de visão. EJB para camada de negócio. JPA e Hibernate para camada de dados. Servidor de Aplicação e Servidor Web. Aplicações. ===== Objetivos Programáticos ===== Esta disciplina tem como principal objetivo dar continuidade no estuda da linguagem Java com enfoque em sistemas para a web. Programação Orientada a objetos e padrões de projeto. Introduzir conceitos de desenvolvimento de software para a web. Entender o funcionamento de um sistema na web. Arquitetura n camadas. Ao final da disciplina o aluno estará apto a implementar programas de complexidade avançada. ===== Programa ===== ^ UNIDADE ^ ASSUNTO ^ | 1 | Introdução e conceitos básicos | | 1.1 | Evolução da Internet | | 1.2 | Conceitos de Redes | | 1.3 | HTML | | 2 | Ambiente de Desenvolvimento | | 2.1 | IDE Red Hat Developer Studio | | 2.2 | Servidor de Aplicação JBoss | | 3 | Camada de Visão | | 3.1 | Servlet e JSP | | 3.2 | Padrão de Projeto MVC | | 3.3 | Java Server Faces(JSF) | | 4 | Camada de Negócio | | 4.1 | Enterprise Java Beans (EJB) | | 4.2 | Stateless | | 4.3 | EntityBean | | 5 | Camada de Dados | | 5.1 | Padrão de Projeto DAO | | 5.2 | Hibernate | | 5.3 | Java Persistence API (JPA) | ===== Plano de Aulas ===== ^ Data ^ Assunto ^ Material ^ Referências ^ Local ^ | 14/02 | Anunciar URL da disciplina;\\ Apresentação da disciplina;\\ Avisar para todos olharem as datas importantes;\\ Apresentar os objetivos da disciplina;\\ Apresentar o conteúdo da disciplina;\\ Apresentar o processo de avaliação da disciplina;\\ Apresentar a motivação para a disciplina; | {{tw:aula1-motivacao.pdf|Motivação}} | | Sala | | 15/02 | Arquitetura em camadas;\\ HTML; | {{tw:aula2-evolucao-arquiteturas.pdf|Arquitetura em camadas e HTML}} | | Sala | | 21/02 | Protocolo HTTP e linguagem HTML | {{tw:aula3-html-http.pdf| Protocolo HTTP e linguagem HTML}} | [[http://br.youtube.com/watch?v=NJsacDCsiPg|Vídeo sobre web 2.0]] | Lab | | 22/02 | Introducao a Servlet | {{tw:aula4-intro-servlet.pdf|Introducao a Servlet}} | {{tw:exemplo_servlet.zip|Exemplo Servlet}}\\ Ler capítulo 2 do livro Head First Servlets e JSP | Lab | | 28/02 | Aula 2 sobre Servlets | {{tw:enviapdf.zip|Servlet para enviar PDF}}\\ {{tw:carrinhocompras.zip|Servlets para lidar com carrinho de compras de uma loja virtual}} | | Lab | | 17/02 | Aula 3 sobre Servlets | {{tw:lojavirtual.zip|Loja Virtual Incompleta}} | Entregar após carnaval loja virtual completa com: 1 - Total da compra na listagem do carrinho; 2 - Botão sair na primeira página para encerrar a sessão; 3 - Não permitir duplicar o mesmo item no carrinho. Se usuário clicar mais de uma vez, deve-se ter uma coluna Quantidade no carrinho indicando a quantidade de produtos de um determinado livro; 4 - Botão excluir para cada item do Carrinho; | Lab | | 23/02 | 8-) Carnaval | | | Casa, estudando! | | 24/03 | 8-) Carnaval | | | Casa, estudando! | | | Aula 4 sobre Servlets - URL rewriting\\ Miniteste 1 | {{tw:aula5-cont-servlet.pdf|Explicacoes sobre servlet. Explicando carrinho de compras}} | | Lab | | | Aula 5 sobre Servlets - exercicio carrinho compras no lab. | | | Lab | | | JSP\\ Miniteste 2 | {{tw:aula6-jsp.pdf|Resumo JSP}} | Ler capítulos 7, 8 e 9 do livro Head First Servlets e JSP | Lab | | 20/03 | 8-) Feriado Semana Santa | | | Praia | | 01/03 | 8-) Feriado Semana Santa | | | Praia | | 27/03 | Continuacao JSP | {{tw:inscricaocebit.zip|Sistema em JSP de inscricao para a CEBIT}} | Ler capítulos 7, 8 e 9 do livro Head First Servlets e JSP\ Continuar projeto colocando JSP para listagem de inscritos | Lab | | 28/03 | Continuacao JSP | | | Lab | | 10/03 | Introducao a JSF | {{tw:aula7-introducao-jsf.pdf|Introducao JSF}} | {{tw:primeirojsf-netbeans.zip|Primeiro exemplo}} | Sala | | 16/03 | Lab de JSF | | {{tw:listagemlivros.zip|Sistema Listagem Livros}}\\ {{tw:mostraimagemjsf.zip|Sistema Mostra Imagem}} | Lab | | 10/04 | JSF: Eventos e JSF-EL\\ Jogo Master em JSF | {{tw:aula8-eventos_jsfel-jsf.pdf|Eventos e JSF-EL}} | {{tw:jogomasterinicial.zip|Jogo Master}} | Lab | | 11/04 | JSF:Continuacao jogo Master | | | Lab | | 17/04 | JSF:Ciclo de vida | {{tw:aula9-ciclo-vida-jsf.pdf|Ciclo de vida}} | | Lab | | 18/04 | Projeto Corretora | | | Lab | | 24/04 | Projeto Corretora | | | Lab | | 25/04 | Projeto Corretora | | | Lab | | 27/04 | Mensagens e Ajax em JSF| [[http://gugawag.wordpress.com/2009/04/27/trabalhando-com-mensagens-em-jsf/|Blog explicando mensagens em JSF]]\\ [[http://gugawag.wordpress.com/2009/04/27/trabalhando-com-ajax/|Blog explicando Ajax em JSF]] | | Lab | | 01/05 | 8-) Feriado Dia do Trabalho | | | Praia | | 02/05 | 8-) Feriado Dia do Trabalho | | | Praia | | 08/05 | Componentes JSF;\\ Continuação Projeto Corretora | {{tw:aula10-componentes_jsf.pdf|Componentes JSF}} | | Lab | | 09/05 | Cont. Projeto Corretora;\\ Avaliação 2 projeto corretora (até dia 11/05, 0h) | | | Lab | | 15/05 | JPA | | | Lab | | 16/05 | | | | Lab | | 22/05 | 8-) Feriado Corpus Christi | | | Praia | | 23/05 | 8-) Feriado Corpus Christi | | | Praia | | 18/05 | Introdução a JPA e EJB 3.0 | {{tw:aula11-introducao-jpa.pdf|Introdução JPA e EJB 3.0}} | {{tw:imidiasjpaejb.zip|Código fonte iMidias (Versão Netbeans 6.5)}}\\ {{tw:helloworldjpa.zip|Código fonte HelloWorldJPA}}\\ {{tw:mensagensjpa.zip|Exemplo JPA Mensagens e Comentários}}\\ [[http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#ManyToOne|Site com exemplos de Anotações JPA]]\\ [[http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/queryhql.html| Site explicando JPA QL]] | Lab | | 19/05 | | | [[http://gugawag.wordpress.com/2008/10/30/gerando-primeiro-projeto-jpa-com-netbeans-hypersonic-e-jboss/|Projeto JPA no Netbeans]] {{tw:mensagensjpanb.zip}}\\ [[http://openjpa.apache.org/docs/openjpa-0.9.7-incubating/manual/manual.html|Manual JPA do projeto OpenJPA]] | Lab | | 25/05 | MT | | [[http://gugawag.wordpress.com/2008/10/30/gerando-primeiro-projeto-jpa-com-netbeans-hypersonic-e-jboss/|Projeto JPA no Netbeans]]\\ [[http://jossemar.wordpress.com/2007/10/30/jpa-mapeamento-objeto-relacional-de-heranca/|Exemplo de herança em JPA]] | Lab | | 26/05 | Avaliação projeto Fase 2 | | | Lab | | 05/06 | Cont. JPA\\ MT5\\ Avaliação Lab 3 | | [[http://gugawag.wordpress.com/2008/11/17/configurando-richfaces-e-ajax4jsf/|Configurando RichFaces e Ajax4JSF]] | Lab | | 06/06 | Cont. JPA\\ | | | Lab | | 12/06 | MT6\\ Avaliação Lab 4 (último) | | | Lab | | 13/06 | **Prova final** | | | Lab | ===== Bibliografia ===== ==== Básica ==== * MANN, Kito D. Java Server Faces in Action. Manning, 2005. * BAUER, Christian. Hibernate em Ação. Ciência Moderna, 2005. ==== Complementar ==== * GEARY, David. Core Java Server Faces: O guia autorizado. Alta Books, 2005. * FREEMAN, Elisabeth. Use a Cabeça! HTML com CSS e XHTML. Alta Books, 2006. * LEMAY, Laura. Aprenda a criar páginas web com HTML e XHTML em 21 dias. * Pearson Education do Brasil, 2002. ===== Avaliação ===== A avaliação será composta por 2 notas. Cada nota é formada da seguinte forma: (média de minitestes) * 0,4 + (nota de laboratórios) * 0,6. Haverá vários minitestes. Os laboratórios serão formados por grupos de no máximo 2 pessoas. Haverá várias avaliações em laboratório. Não é possível repor minitestes nem laboratórios. ===== Projeto ===== O projeto iMidias consiste de um gestor de mídias (Músicas, Livros e Filmes). O intuito desse projeto é permitir ao aluno um melhor entendimento das tecnologias estudadas. ==== Fases do projeto ==== - 1. Fazer menu principal do sistema, com RichFaces, colocando as principais funcionalidades do sistema (inserir, listar, remover, etc) para cada mídia (veja no javadoc do sistema a classe FachadaiMidias que você deve chamar). * Funcionalidades para a fase 1: inserir e listar músicas, criar lista inteligente, listar mídias de lista inteligente * Como proceder: Todo sistema é executado via FachadaiMidias. Assim, você deve criar uma instância dessa classe e chamar seus métodos (o FachadaiMidias tem um objeto do tipo Biblioteca dentro dele). Além dessa classe, o sistema é composto de uma classe Biblioteca (módulo principal do sistema) que contém todas as mídias e listas. As classes básicas do sistema são Musica, Filme e Livro. - 2. Mapear as classes básicas (Midia, Musica, Filme e Livro) com JPA e fazer uso de EJB Session Stateless para facilitar no controle transacional (usaremos CMP = Container Managed Persistence). Para isso, o aluno deve usar o projeto iMidias postado nesse portal para implementar a parte de lógica do sistema. * Mapear classes usando anotações JPA; * Transformar a Fachada, os controladores e os repositórios em EJBs; * Fazer com que sua aplicação web, que já estava funcionando, ao invés de criar uma fachada chame a Fachada que o JBoss criou; ==== Recursos ==== * {{tw:imidias.zip|Jar executável do projeto}} * {{tw:docimidias.zip|Javadoc do iMidias}} Acima estão o imidias.zip (que você deve renomear para imidias.jar) e o docimidias.zip (javadoc do projeto). Para você aprender mais sobre o sistema, renomei o arquivo imidias.zip para imidias.jar, e execute na linha de comando: java -jar imidias.jar Isso fará com que seja executado o sistema, que você pode testar. Sua missão é imitar as funcionalidades mostradas nesse sistema, mas na web, com JSF. ===== Ferramentas ===== ==== Servidor de Aplicacao ==== * JBoss 4.2.2.GA - http://downloads.sourceforge.net/jboss/jboss-4.2.2.GA.zip?modtime=1193094131&big_mirror=1 === Instalacao === * Criar pasta c:\java * Descompactar o arquivo do JBoss no diretorio c:\java (ficarah: c:\java\Jboss-4.2.2.GA) ==== IDE ==== * IDE: Netbeans 6.5 - http://www.netbeans.org/downloads/ Escolher a opção de 212 MB (dá suporte a Java Web e EE) * Instalação: Instale o NetBeans abaixo do diretório c:\java. ===== Notas dos alunos ===== [[http://spreadsheets.google.com/pub?key=rp9nOySTn-gEQcG3rhB-SAg&output=html|Notas]]