sistema s2dg e tecnologias web
DESCRIPTION
TRANSCRIPT
SISTEMA DISCENTE/DOCENTE DE
GRADUAÇÃO E TECNOLOGIAS UTILIZADAS
Diénert de Alencar Vieira
QUEM SOU EU?
Tecnólogo em Sistemas para Internet – IFPB
Bacharelando em Ciência da Computação –
UFPB
Sun Certified Java Programmer - SCJP 6
Engenheiro de Software – Dynavideo
Sócio da empresa IDEEN Soluções em
Informática
ex-Arquiteto do Projeto de Engenharia
2
ROTEIRO
Overview da Arquitetura de Sistemas Web
Pequeno Histórico em JSP e Servlets
Facelets
JSF
JBoss Seam
JBoss Annotations
JBoss EL
3
ROTEIRO
Richfaces
Apresentação do Sistema S2DG
Se der tempo: Utilizando SVN com plugin do
Eclipse
Se der tempo: Padrões de Projeto
4
ARQUITETURA DE SISTEMAS WEB
5
ARQUITETURA DE SISTEMAS WEB
6
O servidor pode conter todas as páginas
HTML
As páginas HTML, ou partes das páginas
podem ser geradas dinâmicamente
Diversas são as tecnologias que podem
gerar HTML
Exemplos: CGI, PHP, JAVA, RUBY, ASP ...
HISTÓRICO EM SERVLETS E JSP
Servlets
Uma classe na linguagem de programação Java
que dinamicamente processa requisições e
respostas, proporcionando dessa maneira novos
recursos aos servidores. A definição mais usada
considera-os extensões de servidores.
7
HISTÓRICO EM SERVLETS E JSP
8
HISTÓRICO EM SERVLETS E JSP
9
HISTÓRICO EM SERVLETS E JSP
10
Ref.: http://www.jsptut.com/Scriptlets.jsp
HISTÓRICO EM SERVLETS E JSP
JSP - Expression Languages
Poder de Processamento e Acesso a JavaBeans
Ref.: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html
11
HISTÓRICO EM SERVLETS E JSP
Ref.: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html
12
EL Expression Resultado
${1 > (4/2)} False
${4.0 >= 3} True
${100.0 == 100} True
${(10*10) ne 100} False
${'a' < 'b'} True
${'hip' gt 'hit'} False
${4 > 3} True
${3 div 4} 0.75
${header["host"]} O próprio host
HISTÓRICO EM SERVLETS E JSP
Deployment Descriptor: web.xml<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
13
JSF EL
JSF EL x JSP EL: #{1 + 1} <=> ${1+1}
Código:
Resultado:
14
FACELETS
Facelets
Ponto inicial: Mecanismo de Templates
Sufixo padrão de arquivos: *.xhtml
web.xml:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
15
FACELETS
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<title>#{title}</title>
</head>
<body>
<ui:insert name="topo" >Topo Padrão</ ui:insert>
<ui:insert name=“content“ >Conteúdo Padrão</ ui:insert>
<ui:insert name="foot" >Rodapé Padrão</ui:insert>
</body>
</html>
16
FACELETS
<ui:composition template="/template.xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets" >
<ui:param name=“titulo“ value=“Título 1”/>
<ui:define name=“topo">
<ui:include src=“logo.xhtml" />
</ui:define>
<ui:define name=“content“>Conteúdo aqui</ui:define>
<ui:define name=“foot“>Rodapé Feito</ui:define>
</ui:composition>
17
JSF
Framework de aplicação WEB com o
propósito de simplificar o desenvolvimento
de UI para Java EE
Framework MVC para WEB
Interfaces gráficas baseadas em
componentes
Implementa o padrão Front Controller
18
JSF
Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaph?a=view19
JSF
Ref.: http://www.developersbook.com/jsf/jsf-tutorial/jsf-tutorial.php20
JSF
Uso das bibliotecas de tags de renderização HTML e CORE do JavaServer Faces
Para um página JSP, usar:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
Para uma página que utilize Facelets, usar:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
21
JSF
Exemplos de tags h:
h:commandLink
h:commandButton
h:form
h:messages
h:message
h:dataTable
h:panelGrid
Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaqz?a=view22
JBOSS SEAM
Poderosa plataforma de desenvolvimento de
código aberto para construir Aplicações
Ricas para Internet em Java
Integra AJAX, JSF, JPA, EJB 3.0 e BPM
Configuração por exceção
Menos xml’s
Mais anotações
23
JBOSS SEAM
Apache
Tomcat
Glassfish
Jetty
Jboss AS – JBoss Application Server
24
JBOSS SEAM - ANNOTATIONS
@Annotation:
Complementam Javadocs
Não afeta a semântica do código em si
Afeta a forma como estes programas são
tratados por ferramentas e bibliotecas
Substituem xml em muitos casos
25
JBOSS SEAM - ANNOTATIONS
@Entity@Name("user") @Scope(SESSION) @Table(name="users") public class User implements Serializable{
private static final long serialVersionUID = 1881413500711441951L;
@Id @NotNull @Length(min=5, max=15)private String username; private String password; private String name;
Ref.: http://docs.jboss.org/seam/2.2.0.GA/reference/en-US/html/tutorial.html
26
JBOSS SEAM - ANNOTATIONS
Injeção de Dependência: é um padrão de
desenvolvimento utilizado quando é necessário
manter o baixo o nível de acoplamento entre
diferentes módulos de um sistema.
Nesta solução as dependências entre os
módulos não são definidas programaticamente,
mas sim pela configuração de uma
infraestrutura de software (container) que é
responsável por "injetar" em cada componente
suas dependências declaradas
27
JBOSS SEAM - ANNOTATIONS
@Name(“teste”)
class Teste {
@In
private EntityManager entityManager;
metodo() {
entityManager.edit(AlgumaCoisa);
}
}28
JBOSS SEAM - ANNOTATIONS
Bijeção de Dependência: injection e
outjection de dependência
O primeiro fornece a instância da
dependência
O segundo fornece a dependência para a
interface
29
JBOSS SEAM - ANNOTATIONS
@Name(“teste”)
class Teste {
@Out
private User currentUser;
}
#{currentUser.name}
30
JBOSS SEAM - EL
Idêntica à EL JSF, contudo aceita
parâmetros
Apresentar o projeto
31