5. Quem Sou?
• Desenvolvedor Java há 5 anos;
• Possui experiência com J2SE, J2EE nas empresas:
• Saargummi do Brasil LTDA, 3º Quadrante Informática, G&P, JAPI Informática LTDA, SOS
Computadores, Tata Consultancy Services - TCS (ABNAMRO Bank, VisaNet, Cardif), IT
Training, Masterdom (PRODESP), Possege (Co-Fundador) como Analista de Sistemas Java;
• Agente certificador do Projeto de ensino a distância JEDI no grande ABC em São Paulo:
• Membro do JCP - Java Community Process;
• Certificado IBM em Message Broker Developer Solution;
• Certificado Scrum Master;
• Criador do Blog Java Anywhere - www.javawora.blogspot.com
• Coordenador e palestrante em diversos eventos de Java.
Monday, July 27, 2009
17. O que é JSF?
• É mais do que um framework, é uma especificação baseada em MVC;
• Suporte a internacionalização;
• Facilita criação de telas;
• Facilita a transferência dos dados entre telas e camadas de negócio através da EL.
• Produtividade para conversores recebidos do formulário para os tipos nas classes;
• Flexibilidade para renderização.
• Criar modelos simples de eventos entre interfaces gráficas e as classes no servidor.
• Mecanismos produtivos para validação de campos na tela.
• Facilidade para criação de componentes;
Monday, July 27, 2009
18. Especificações
• JSF 1.0 e 1.1 – JSR 127
– Problemas com renderização
– ELs diferentes entre JSP e JSF
– Não portava a tag JSTL <c:forEach>
• JSF 1.2 – JSR 252
– Resolveram todos os problemas de incompatibilidade, pois o JSF 1.2 e o JSP 2.1 tiveram muitas
uniões e estão dentro do JEE.
• JSF 2.0 – JSR 314
– Novo ciclo de vida na parte do cliente (Browser);
– Escopo de navegação, antes utilizado através do MyFaces Tomahawk, JBoss Seam e Spring
Annotation;
– Adeus XML, configurações via Annotations;
– Exception Handler, quando ocorrer um erro direcionamos para uma página de erro;
– Templating;
– Subimissão Via GET, antes só podia via POST;
– AJAX nativo;
– Serviços JSF sendo acessador via REST;
– E muito mais, acompanhe pelo JCP a especificação.
Monday, July 27, 2009
19. Managed Beans
•É uma classe que expões objetos de negócio para camada de
apresentação;
•São Registrados no faces-config.xml;
•Objetos que sofrerão alterações em seus atributos durante uma
requisição, assim como seus métodos podem ser chamados a partir de
um command;
•São como as Actions do Struts, porém os form beans são injetados por
setters dentro do seu próprio bean;
•Os ManagedBeans serão usados na EL das páginas.
Monday, July 27, 2009
20. EL - Expression Language
•É uma poderosa linguagem de expressão (Linguagem de navegação)
para acessar propriedades de beans e coleções.
•Quando ocorrer uma requisição pelo browser é preenchido
dinamicamente os elementos da página pela camada de negócios.
•Quando ocorre um Submit ocorre a modificação no estado da camada
de negócio.
Monday, July 27, 2009
22. Roteiro Básico
1.Criar um bean que represente o formulário;
2.Criar os DAOs;
3.Criar um controlador (Handler) que leia os dados do formulário, chame a
lógica de negócio, guarde os resultados em beans e tenha um retorno;
4.Criar os JSP´s responsáveis por cada retorno declarado;
5.NUNCA Esqueça: <f:view> e <h:form> para formulários;
6.Especificar o Action Controller com o atributo de ação
<h:commandButton>;
7.O faces-config é usado para declarar o form bean e as regras de
navegação.
Monday, July 27, 2009
34. Mudando o Default
•Montagem de templates: como Clay (Shale) e Facelets e substituir um pelo outro é
questão de uma linha de configuração.
•A beans factory: porque não usar Spring do que managed beans?
•Renderização dos componentes: existem implementações, utilizando por exemplo XUL
ou HTML + Ajax.
Monday, July 27, 2009
39. Web Services
• Comunicação entre aplicações via INTERNET;
• Mais informações?
• Consulte o Wikipédia: http://pt.wikipedia.org/wiki/Web_service
Monday, July 27, 2009
47. REST
• REpresentational State Transfer (Transferência de Estado
Representacional);
• Este termo surgiu no ano de 2000;
• Em uma tese de doutorado de Roy Fielding;
• Baseado no protocolo HTTP;
• POST, GET, PUT e DELETE (Menos o POST as demais são
freqüentemente envolvidas com CRUD).
• Cada recurso é direcionado através de sua URI;
• Sintaxe Universal;
• Mais simples;
• Menos Overhead de protocolos.
Monday, July 27, 2009
48. REST
• Utiliza Recursos (URI - Identificador Uniforme de
Recurso);
• Se comunicam através de uma interface HTTP;
• Pode ser transmitido por diversos conectores, porém
não poderá ver mais nada do que o seu pedido;
• Assim não é necessário conhecer proxys, caches e etc.
Monday, July 27, 2009
49. Arquitetura REST
http://brunopereira.org/webservicesrest-arquitetura/
Monday, July 27, 2009
50. Declarativo
http://brunopereira.org/webservicesrest-arquitetura/
Monday, July 27, 2009
51. Código Rest com Jersey
@Path("/paisesWS")
public class PaisesRest {
@GET
@Produces("text/plain")
public String getClichedMessage() {
List<String> paises = new ArrayList<String>();
paises.add("======Listando alguns Paises via REST + Jersey======");
paises.add("n Brasil");
paises.add("n India");
paises.add("n Argentina");
paises.add("n Guatemala");
paises.add("n Estou no meu WebService sendo acessado");
return paises.toString();
}
}
Monday, July 27, 2009
52. Alguns Frameworks
• API REST para Java - JAX-RS:
• http://jcp.org/aboutJava/communityprocess/final/jsr311/
index.html
• GlassFish Jersey:
• https://jersey.dev.java.net/
• JBoss RestEasy:
• http://www.jboss.org/resteasy/
• Restlet:
• http://www.restlet.org/
• Apache CXF:
•
Monday, July 27, 2009
http://cxf.apache.org/
53. JSF & REST
• Imagine que precise de tags em JSF para
criar um Web Service REST como um
ATOM, padrão que segue a mesma idéia de
RSS.
• Como faria?
• É com você Rafinha...
Monday, July 27, 2009