Sistema S2DG e Tecnologias Web

Preview:

DESCRIPTION

 

Citation preview

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

Recommended