31
SISTEMA DISCENTE/DOCENTE DE GRADUAÇÃO E TECNOLOGIAS UTILIZADAS Diénert de Alencar Vieira

Sistema S2DG e Tecnologias Web

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Sistema S2DG e Tecnologias Web

SISTEMA DISCENTE/DOCENTE DE

GRADUAÇÃO E TECNOLOGIAS UTILIZADAS

Diénert de Alencar Vieira

Page 2: Sistema S2DG e Tecnologias Web

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

Page 3: Sistema S2DG e Tecnologias Web

ROTEIRO

Overview da Arquitetura de Sistemas Web

Pequeno Histórico em JSP e Servlets

Facelets

JSF

JBoss Seam

JBoss Annotations

JBoss EL

3

Page 4: Sistema S2DG e Tecnologias Web

ROTEIRO

Richfaces

Apresentação do Sistema S2DG

Se der tempo: Utilizando SVN com plugin do

Eclipse

Se der tempo: Padrões de Projeto

4

Page 5: Sistema S2DG e Tecnologias Web

ARQUITETURA DE SISTEMAS WEB

5

Page 6: Sistema S2DG e Tecnologias Web

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 ...

Page 7: Sistema S2DG e Tecnologias Web

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

Page 8: Sistema S2DG e Tecnologias Web

HISTÓRICO EM SERVLETS E JSP

8

Page 9: Sistema S2DG e Tecnologias Web

HISTÓRICO EM SERVLETS E JSP

9

Page 10: Sistema S2DG e Tecnologias Web

HISTÓRICO EM SERVLETS E JSP

10

Ref.: http://www.jsptut.com/Scriptlets.jsp

Page 11: Sistema S2DG e Tecnologias Web

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

Page 12: Sistema S2DG e Tecnologias Web

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

Page 13: Sistema S2DG e Tecnologias Web

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

Page 14: Sistema S2DG e Tecnologias Web

JSF EL

JSF EL x JSP EL: #{1 + 1} <=> ${1+1}

Código:

Resultado:

14

Page 15: Sistema S2DG e Tecnologias Web

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

Page 16: Sistema S2DG e Tecnologias Web

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

Page 17: Sistema S2DG e Tecnologias Web

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

Page 18: Sistema S2DG e Tecnologias Web

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

Page 19: Sistema S2DG e Tecnologias Web

JSF

Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaph?a=view19

Page 20: Sistema S2DG e Tecnologias Web

JSF

Ref.: http://www.developersbook.com/jsf/jsf-tutorial/jsf-tutorial.php20

Page 21: Sistema S2DG e Tecnologias Web

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

Page 22: Sistema S2DG e Tecnologias Web

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

Page 23: Sistema S2DG e Tecnologias Web

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

Page 24: Sistema S2DG e Tecnologias Web

JBOSS SEAM

Apache

Tomcat

Glassfish

Jetty

Jboss AS – JBoss Application Server

24

Page 25: Sistema S2DG e Tecnologias Web

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

Page 26: Sistema S2DG e Tecnologias Web

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

Page 27: Sistema S2DG e Tecnologias Web

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

Page 28: Sistema S2DG e Tecnologias Web

JBOSS SEAM - ANNOTATIONS

@Name(“teste”)

class Teste {

@In

private EntityManager entityManager;

metodo() {

entityManager.edit(AlgumaCoisa);

}

}28

Page 29: Sistema S2DG e Tecnologias Web

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

Page 30: Sistema S2DG e Tecnologias Web

JBOSS SEAM - ANNOTATIONS

@Name(“teste”)

class Teste {

@Out

private User currentUser;

}

#{currentUser.name}

30

Page 31: Sistema S2DG e Tecnologias Web

JBOSS SEAM - EL

Idêntica à EL JSF, contudo aceita

parâmetros

Apresentar o projeto

31