Tecnologias Web. Java Enterprise Edition



Documentos relacionados
Java II. Sérgio Luiz Ruivace Cerqueira

Aplicações de Linguagem de Programação Orientada a Objeto

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Associação Carioca de Ensino Superior Centro Universitário Carioca

Tecnologias para Web

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

" # $ %&'( ) *' ( +,)+ ( - $ (+*' 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' (

Desenvolvimento Web TCC Turma A-1

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

JSP (Java Server Pages)

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

J2EE TM Java 2 Plataform, Enterprise Edition

J2EE. Projeto de Sistemas de Software

UFG - Instituto de Informática

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Desenvolvimento de aplicações Web. Java Server Pages

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

JavaServer Pages. Também são conhecidas pela sigla correspondente (JSP). Representam mais uma tecnologia da plataforma JEE.

Web Technologies. Tópicos da apresentação

Servlets & JSP. Prof. Ramon Chiara

Programação Web Aula 12 - Java Web Software

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Universidade da Beira Interior

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Java para Desenvolvimento Web

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Desenvolvimento Web TCC Turma A-1

JSP Java Server Pages

Scriptlets e Formulários

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

J2EE. J2EE - Surgimento

UNIDADE III JAVA SERVER PAGES

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Orientada a serviços: JAX-WS SOAP API

Programação para Internet II

Introdução ao PHP. Prof. Késsia Marchi

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Servlets, JSPs e Java Beans

Java II. Sérgio Luiz Ruivace Cerqueira

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Java para Desenvolvimento Web

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

JSP: JAVA SERVER PAGES

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Aula 03 - Projeto Java Web

World Wide Web e Aplicações

JSP - JavaServer Pages

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

!" # # # $ %!" " & ' ( 2

Programação para Internet II

Capítulo 1 - Java EE 6 por alto - 1

JSF - Controle de Acesso FERNANDO FREITAS COSTA

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

Java na WEB Componentes Bean

Prova Específica Cargo Desenvolvimento

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Java para WEB. Servlets

Sistemas Distribuídos

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Enterprise Java Bean. Enterprise JavaBeans

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

Programando em PHP. Conceitos Básicos

Curso de Aprendizado Industrial Desenvolvedor WEB

JSP: JAVA SERVER PAGES

J550. Model View Controller

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

4 Um Exemplo de Implementação

Programação para Web Artefato 01. AT5 Conceitos da Internet

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Enterprise Java Beans

Como sobreviver com Java 2? Saulo Arruda

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

JSP (Java Server Pages)

Conhecendo um pouco mais o servidor Apache TomCat

Sistemas para internet e software livre

Kassius Vargas Prestes

5/10/10. Implementação. Building web Apps. Server vs. client side. How to create dynamic contents?" Client side" Server side"

UFG - Instituto de Informática

Programação II Programação para a Web. Christopher Burrows

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Transcrição:

Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc.

Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma especificação e não uma implementação, evitando assim o vendor lock-in: Expressão usada quando você está preso sempre nas mãos de um único fabricante. Provê: Suporte ao gerenciamento automático de componentes. Infraestrutura de serviços complexos, como por exemplo, transações, segurança e persistência. Objetivo principal: Permitir que desenvolvedores possam se concentrar no desenvolvimento da lógica de negócio.

Principais Especificações JEE JavaServer Pages (JSP), Java Servlets, Java Server Faces (JSF): Trabalhar para a Web. Enterprise Javabeans Components (EJB) e Java Persistence API (JPA): Objetos distribuídos, clusters, acesso remoto a objetos. Java API for XML Web Services (JAX-WS), Java API for XML Binding (JAX-B): Trabalhar com arquivos Extensible Markup Language (XML) e webservices. Java Autenthication and Authorization Service (JAAS): API padrão do Java para segurança. Java Transaction API (JTA): Controle de transação no contêiner. Java Message Service (JMS): Troca de mensagens assíncronas. Java Naming and Directory Interface (JNDI): Espaço de nomes e objetos. Java Management Extensions (JMX): Administração da aplicação e estatísticas sobre a mesma.

Componentes JEE Aplicações JEE são constituídas por componentes. Um componente JEE: Unidade funcional de software formada por um conjunto de classes e arquivos relacionados. Pode se comunicar com outros componentes. Pode ser reusado durante a construção de aplicações JEE. Deve seguir a especificação JEE.

Modelos de Componentes JEE Aplicações stand-alone: Applets: Aplicação Java. Mantidos e executados no cliente. Graphical User Interface (GUI). Servlets e JSP: Normalmente executados dentro do browser. Mantidos pelo servidor e executados no cliente. EJB: Servlet: Objetos java que respondem requisições em Hypertext Transfer Protocol (HTTP). Resposta normalmente é HyperText Markup Language (HTML) gerado dinamicamente. Mantidos e executados no servidor. JSP: Componentes mantidos e executados em um ambiente gerenciado pelo servidor. Provê: Monitoramento transacional. Persistência. Distribuição de objetos. Segurança. Linguagem de script adequada para escrita de servlets de apresentação. Não são JavaBeans!

Servidores JEE (1/2) Componentes JEE são instalados em servidores. Servidores: Oferecem infraestrutura para gerenciamento do ciclo de vida dos componentes. Incluem contêineres Web e EJB. Proveem diversos serviços para os componentes: Transações. Persistência. Segurança. Nomes. Distribuição.

Servidores JEE (2/2) JBoss Application Server: Fornecido pela RedHat implementação JEE 5 gratuito. GlassFish: Fornecido pela Sun implementação JEE 6 gratuito. Apache Geronimo: Fornecido pela Apache implementação JEE 5 gratuito. WebLogic Application Server: Fornecido pela Oracle/BEA implementação JEE 5. IBM Websphere Application Server: Fornecido pela IBM implementação JEE 5. Sun Java System Application Server (baseado no GlassFish): Fornecido pela Sun implementação JEE 5. SAP Application Server: Fornecido pela SAP implementação JEE 5.

Java ServerPages JSP é uma tecnologia que permite combinar informações estáticas com informações geradas dinamicamente. Script executado no servidor: Combinação de sintaxe JSP e tags de marcação. Tags estáticos: HTML e XML. Conteúdo dinâmico gerado pelo código do script: Java. Exemplo: <html><head><title>primeiro JSP</title></head> <body><h1>data e hora: <%=new java.util.date()%></h1> </body></html>

Compilação do JSP (1/2) Requisição para xxx.jsp xxx.jsp Geração de Código Java xxx.java (servlet) Resposta xxx.class (servlet) Compilação

Compilação do JSP (2/2) Requisição para xxx.jsp xxx.jsp Geração de Código Java xxx.java (servlet) Resposta xxx.class (servlet) Compilação

Escopo dos Atributos O JSP pode acessar objetos em tempo de execução em quatro escopos diferentes: Página: Objeto PageContext corrente (pagecontext). Requisição: Objeto HttpServletRequest corrente (request). Sessão: Objeto HttpSession corrente (session). Aplicação: Objeto ServletContext corrente (application). Para armazenar informações: setattribute(string, Object) Para recuperar informações: getattribute(string)

Tags JSP Diretivas: Configuração do processador JSP. Inclusão estática de conteúdo. Encaminhamento de requisições para outros servidores. Comandos de script: Ações: Inserção de código para a programação de conteúdo dinâmico. Tags de alto nível que encapsulam padrões de programação mais corriqueiros.

Diretivas <%@ nome-da-diretiva [nome-atributo = "valor-do-atributo"]* %> Diretivas disponíveis: <%@ include file="url-relativa" %> Inclusão em tempo de compilação. <%@ taglib uri="url-relativa-da-biblioteca-de-tags" prefix="prefixo-das-tags" %> <%@ page lista-de-atributos %>

Atributos da Diretiva Page language="nome-da-linguagem-de-script" (java) contenttype="mime-type mime-type; charset=nome-charset" (text/html;charset=iso-8859-1) errorpage="url-página-de-erro" iserrorpage="true false" (false) buffer="none tamanho-em-kb" (8kb) auto-flush="true false" (true) import="lista-de-pacotes" session="true false" (true) info="texto-informativo"

Exemplos de Diretivas Diretiva include: <%@ include file="/layout/header.html" %> Diretiva taglib: <%@ taglib uri="/tags/ybadootags" prefix="ybadoo" %> <ybadoo:exemplo parametro="exemplo" /> Diretiva page: <%@ page language="java" errorpage="error.jsp" iserrorpage="false" buffer="12kb" auto-flush="true" session="true" isthreadsafe="true" info="exemplo" %> Outra opção: <%@ page language="java" %> <%@ page errorpage="error.jsp" %> <%@ page import="com.ybadoo.output.*" %>

Tags de Script Declarações: <%! declarações %> Scriptlets: <% comandos %> Expressões: <%= expressão %> Comentários: <!-- comentário HTML --> <%-- comentário JSP --%>

Declarações <%! declarações %> Declara variáveis ou métodos a serem utilizados no código JSP. Exemplos: <%! int i = 0; public void metodo() {...} %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>

Scriptlets <% comandos %> Um scriptlet pode conter qualquer número de instruções, variáveis, métodos, declarações ou expressões válidas. Exemplo: <% String name = null; if(request.getparameter("name") == null) { %> <%@ include file="error.html" %> <% %> } else { entity.setname(request.getparameter("name")); }

Expressão <%= expressão %> Esta tag contém uma expressão que é avaliada e convertida para string, depois de processada. Exemplo: O mapa tem <font color="blue"><%=mapa.getcount()%></font> entradas.

Comentários <!-- comentário HTML --> O processador JSP trata um comentário como texto HTML não interpretado, retornando-o ao cliente. Uma expressão pode ser incluída em um comentário, sendo avaliada e seu resultado é retornado ao usuário juntamente com o HTML de resposta. Exemplos: <!-- Comentário --> <!-- Esta página foi carregada em <%=(new java.util.date()).tolocalestring() %> -->

Comentários para Desenvolvimento <%-- comentário JSP --%> O processador JSP simplesmente ignora este tipo de comentário e não processa nenhum código ou expressão contida entre os delimitadores. Este tipo de comentário não será enviado para o cliente. Exemplos: <%@ page language="java" %> <html><head><title>um teste comentário</title></head> <body><h2>um teste comentário</h2> <%-- Este comentário não estará disponível para o cliente --%> </body></html>

Objetos Pré-definidos Disponíveis para scriptlets e expressões: request response session out exception (somente em páginas de erro) page

Exemplo <%@ page language="java" errorpage="error.jsp" %> <%@ page import="com.ybadoo.alunos.*" %> <%@ page import="java.util.*" %> <html><head><title>processo de Matrícula</title></head> <body color="#fff"> <h1><center>sistema Acadêmico</center></h1><hr/> <p><center><h3>processo de Matrícula</h3></center></p> <p><center>selecione o aluno que deseja realizar a matrícula</center></p> <p><center><form action="/siga/servlet/matricula" method="post"> Lista de Alunos: <select name="matriculaaluno"> <% Collections alunos = (Collections) request.getattribute("alunos"); Aluno aluno = null; // Concatena todos os alunos dos departamentos for(iterator i = alunos.iterator(); i.hasnext(); ){ aluno = (Aluno)i.next(); %> <option value="<%=aluno.getmatricula()%>"> <%=aluno.getmatricula()%> - <%=aluno.getnome()%></option> <% } %> <input type="submit" name="botaolistardisciplinas" value="listar Disciplinas" /> </form></center></p> </body> </html>

Ações jsp:usebean jsp:setproperty jsp:getproperty jsp:include jsp:forward Outras tags personalizadas via taglib.

jsp:usebean Cria ou recupera uma instância de um bean. <jsp:usebean lista-de-atributos> A lista de atributos pode ser: id = "nome-da-instância-do-bean" scope = "page request session application" class = "com.ybadoo.nomedaclasse" type = "com.ybado.nomedotipo" Exemplo: <jsp:usebean id="stringbean" class="com.ybadoo.meubean" scope="session" />

jsp:include e jsp:forward Ações utilizadas para o encadeamento de páginas JSP. <jsp:include page="url-relativa-da-página" /> Suspende o processamento da página chamadora e repassa o controle para a página chamada até que esta retorne-o. <jsp:forward page="url-relativa-da-página" /> O processamento da página chamadora é terminado e o controle é repassado sem espera de retorno para a página chamada.

jsp:include (1/2) <jsp:include page="{relativeurl <%= expression %>}" flush="true false" /> Exemplos: <jsp:include page="scripts/login.jsp" /> <jsp:include page="copyright.html" /> <jsp:include page="/index.html" flush="true" />

jsp:include (2/2) <jsp:include page="{relativeurl <%= expression %>}" flush="true false" > <jsp:param name="parametername" />+ value="{parametervalue <%= expression %>}" </jsp:include> Exemplo: <jsp:include page="scripts/login.jsp"> <jsp:param name="username" value="jsmith" /> </jsp:include>

jsp:forward (1/2) <jsp:forward page="{relativeurl <%= expression %>}" /> A tag <jsp:forward> repassa o objeto request enviado para o arquivo JSP para que seja processado por outra aplicação. O processador JSP não executa o restante das instruções contidas após a tag. Exemplo: <jsp:forward page="/servlet/login" />

jsp:forward (2/2) <jsp:forward page="{relativeurl <%= expression %>}" > <jsp:param name="parametername" />+ value="{parametervalue <%= expression %>}" </jsp:forward> Exemplo: <jsp:forward page="/servlet/login"> <jsp:param name="username" value="jsmith" /> </jsp:forward>

Informações Adicionais JavaServer Pages Technology http://www.oracle.com/technetwork/java/javaee/jsp/index.html