Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com



Documentos relacionados
Universidade da Beira Interior

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

Orientada a serviços: JAX-WS SOAP API

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

J2EE TM Java 2 Plataform, Enterprise Edition

Manual de Instalação PIMSConnector em Windows

Aula 03 - Projeto Java Web

Manual de Instalação PIMSConnector em Linux

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

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

Java II. Sérgio Luiz Ruivace Cerqueira

UFG - Instituto de Informática

Curso de Aprendizado Industrial Desenvolvedor WEB

Criação de um novo projeto no Eclipse utilizando Maven

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

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

Programação para Internet II

LISTA DE QUESTÕES SERVIDORES DE APLICAÇÃO BANCA FCC CONCURSO TRT 2014

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

Adriano Reine Bueno Rafael Barros Silva

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

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Java 2 Enterprise Edition Componentes Web J2EE

Programação para Internet II

Arquitetura de uma Webapp

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

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Sistema de Gestão Comercial Plataforma GSAN. Documento de Procedimento de Instalação

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

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

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

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

MÓDULO Programação para Web 2

Experiência em missão crítica de missão crítica

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

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

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

Kassius Vargas Prestes

Spring: Um suite de novas opções para Java EE

World Wide Web e Aplicações

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

Prova Específica Cargo Desenvolvimento

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Java para Desenvolvimento Web

Arquivos de Instalação Instalação JDK Instalação Apache Tomcat Configurando Tomcat... 9

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

DWR DIRECTED WEB REMOTING

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

Instalando o J2SE 5.0 JDK no Windows 2000/XP

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

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

Introdução à Plataforma Eclipse. Leandro Daflon

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

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

JSP: JAVA SERVER PAGES

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

Desenvolvimento Web TCC Turma A-1

UFG - Instituto de Informática

Java II. Sérgio Luiz Ruivace Cerqueira

MANUAL DE UTILIZAÇÃO. Instalação do MV Portaria

Sistemas Distribuídos

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

J550 Tag Libraries e JSTL

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 Aula 12 - Java Web Software

1

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

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

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

Instalando e Atualizando a Solução Arquivos de Instalação Instalação do Servidor de Aplicação Instalação JDK...

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

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

Desenvolvimento de um aplicativo básico usando o Google Android

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Instalação e Configuração do Java (por Gilberto Irajá Müller)

INSTALAÇÃO-ATUALIZAÇÃO SANKHYAW WINDOWS ORACLE

Manual de Procedimentos para Desenvolvimento de Softwares

Programando em PHP. Conceitos Básicos

3 SCS: Sistema de Componentes de Software

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

Manual de Instalação. Sistema de Gestão e Acompanhamento de Frotas SIGAFROTA. Versão 1.0 Francisco Edilson do Nascimento

4 Um Exemplo de Implementação

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Transcrição:

Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java Web

Arquitetura Aplicações web são basicamente constituídas de: Requisições Respostas

Model View Controller (MVC) O que é MVC? Padrão arquitetural em três camadas para desenvolvimento de sistemas, surgido nos anos 80. Sugere a divisão de uma aplicação visual em 3 partes Model: Modelo da sua aplicação, com as regras de negócio (business logic) e todo o processamento da aplicação View: Apresenta a informação e recolhe os dados fornecidos pelo usuário Controller: Recebe as informações da entrada e as transmite para o modelo View Controller Model

Arquitetura MVC Em Java: O modelo será uma aplicação orientada a objetos. O controlador será alguma tecnologia de implementação (padrão comando) que juntamente com o Servlet redirecionará as chamadas feitas pelo cliente aos objetos no modelo. A apresentação será representada pelo JSP.

Plataformas Java Existem quatro plataformas para a programação em Java, cada uma com sua JVM e API: Java Platform, Standard Edition (Java SE) Provê a API base para o desenvolvimento em Java, essa plataforma define desde os tipos básicos e objetos até classes de alto nível usadas para segurança, rede, GUI, acesso a bases de dados... Java Platform, Enterprise Edition (Java EE) É construída a partir da Java SE. Provê uma API e um ambiente de desenvolvimento para larga escala, escalável, fidedigno, com múltiplas camadas. Java Platform, Micro Edition (Java ME) Provê uma API e um ambiente de desenvolvimento para dispositivos móveis. Java FX Provê um ambiente para desenvolvimento de aplicações escritas em Java FX Script.

JEE Java Enterprise Edition Voltado ao desenvolvimento de aplicações empresariais Foco no desenvolvimento de componentes para reduzir custos Projetado para ajudar a desenvolvedores produzirem sistemas que necessitem de: Múltiplas camadas Larga escala Escalável Fidedigno, confiável Segurança Aplicações para JEE são independentes de plataforma A própria linguagem Java é independente Assim como a máquina virtual, o ambiente JEE é totalmente especificado Qualquer um pode fazer um JEE

Composição da Plataforma JEE Modelo de desenvolvimento de aplicações Web Modelo de aplicações distribuídas em camadas A lógica da aplicação é dividida em componentes de acordo com sua função Cada camada executa em diferentes máquinas Modelo de desenvolvimento orientado a componentes reutilizáveis Modelo de segurança unificado Flexível controle de transações Troca de dados integrada baseada em XML

Componentes Um componente: É um pacote coerente de software independentemente desenvolvido É entregue como uma unidade Oferece interfaces que podem ser conectadas, inalteradas, com outros componentes para compor um sistema maior Componente JEE Um componente JEE é uma unidade funcional auto-contida, que pode ser montada em uma aplicação JEE com suas classes e arquivos relacionados, e que se comunica com outros componentes

JEE arquitetura em 3 camadas Uma camada para lidar com a interface Executa no computador cliente e no servidor JEE Em desenvolvimento Web, é implementado por JSP. Uma para lidar com a lógica da aplicação Executa no servidor JEE Em desenvolvimento Web, é implementado por servlets e classes do sistema. Uma para gerenciar acesso a banco de dados Executa no EIS (Enterprise Information System)

JEE arquitetura em 3 camadas

JEE camada de interface Aplicações JEE podem ou não podem ser baseadas em Web As primeiras executam diretamente na máquina cliente As demais usam web browser para obter páginas e applets

JEE camada de interface Clientes de aplicação São uma forma de gerenciar as aplicações ou o sistema Tipicamente aplicações gráficas java.awt javax.swing Aplicações JEE requerem uso de clientes leves (thin clients) Interfaces bem simples Delegam todas as tarefas mais complexas para o servidor JEE Acesso a bancos de dados Conexão com sistemas legados...

JEE camada de lógica Componentes Web Apóiam a geração dinâmica de conteúdo Componentes da lógica de negócio Contêm o código para solucionar as necessidades de um domínio específico

Visão geral das tecnologias JEE 5 para a Web Tecnologias para desenvolvimento de aplicações Web Java Servlet 2.5 JavaServer Pages 2.1 JavaServer Pages Standard Tag Library JavaServer Faces 1.2

JEE camada lógica (Web) Servlets JSP Classes que processam pedidos e geram respostas dinamicamente Documentos baseados em texto que executam como servlets São especializadas na geração de conteúdo dinâmico para clientes Web (browsers).

JEE contêineres e serviços Componentes são instalados em seus contêineres durante a implantação Contêineres são a interface entre o componente e o serviço específico da plataforma que ele provê

Desenvolvimento para a Web com JEE

Aplicação Web Uma aplicação Web é uma extensão dinâmica de um servidor Web ou servidor de aplicação Existem dois tipos de aplicações Web Orientada a apresentação Uma aplicação web orientada a apresentação gera páginas web interativas contendo diversos tipos de linguagens de marcação (HTML, XML,...) e conteúdo dinâmico em resposta a requisições Orientada a serviços Uma aplicação Web orientada a serviços implementa um endpoint de um Web service Aplicações orientadas a apresentação geralmente são clientes de aplicações Web orientada a serviços

Componentes Web Provêem as extensões dinâmicas de um servidor Web São Java Servlets, páginas JSP ou Web services A interação entre um cliente Web e uma aplicação Web

Servlets e JSPs Servlets são classes implementadas em Java que dinamicamente processam requisições e constroem respostas Páginas JSP são documentos baseados em texto que executam como servlets mas permitem uma forma mais natural de criar conteúdo estático Servlets e JSP são parecidos e são equivalentes

Servlets e JSPs O uso de servlets é recomendado para Controlar as funções de uma aplicação orientada a apresentação, como redirecionar requisições e tratar dados não textuais (binários) Aplicações orientadas a serviços Páginas JSP são mais apropriadas para gerar marcações baseadas em texto HTML, SVG, WML, e XML

Contêiner Web Provê um ambiente de execução de aplicações Web e seus componentes, que são implementados por Servlets e JSPs Realiza o processamento de requisições e respostas HTTP, como um servidor Web Permite configurar: serviços de segurança, concorrência e gerenciamento do ciclo de vida acesso para APIs como resolução de nomes, transações e envio de e-mails

Contêiner Web Alguns aspectos do comportamento de aplicações web podem ser configurados quando as aplicações são implantadas em um contêiner Web As informações de configuração são mantidas em um arquivo texto em formato XML chamado Web application deployment descriptor (DD) A maioria das aplicações Web utilizam o protocolo HTTP, e o suporte a HTTP é um dos maiores aspectos de componentes web

Módulo Web É a menor unidade de implantação (deployment) de recursos web Corresponde a uma aplicação Web Pode conter Componentes Web e recursos Web Classes auxiliares da parte do servidor Ex. beans de banco de dados, carros de compras Classes da parte cliente Ex. applets

Módulo Web Tem uma estrutura específica. O diretório-raiz armazena páginas JSP classes client-side e arquivos e recursos web estáticos (imagens)

Módulo Web Subdiretório <raiz>/web-inf/ contém web.xml: deployment descriptor da aplicação web lib: Arquivos JAR de bibliotecas chamadas por classes da parte do servidor classes: Classes server-side Servlets, classes utilitárias e JavaBeans tags: Arquivos de implementações de tag libraries

Servidores

Servidor de aplicação x Contêiner Web Contêiner Web Serve Servlets e JSP Provê, somente, formas de configurar/instalar serviços já disponíveis em servidores de aplicação Exemplo de contêiner: Tomcat. Servidor de aplicação: Contém contêineres Web Contém contêineres de objetos de negócio (também chamados EJB containers), podendo servir EJBs Provê serviços de gerenciamento de transações, segurança, pool de conexões com banco de dados, balanceamento de carga, etc. Exemplos de servidores de aplicação: JBoss e GlassFish.

N-Camadas Fonte:http://www.dsc.ufcg.edu.br/~jacques/cursos/j2ee/html/intro/intro.htm

Jakarta TomCat

Tomcat Servidor gratuito baseado em java Configurável de maneira simples via XML Oferece suporte a Java (Servlets e JSP) Tomcat Pode ser gratuitamente obtido em http://www.apache.org Utilizem a versão 5.x VM jdk 1.6.x

Instalando o tomcat Baixe o arquivo zip Descompacte no diretório desejado Configure a variável de ambiente CATALINA_HOME que deve apontar para o diretório onde foi descompactado o tomcat. Adicione na variável path o texto ;%CATALINA_HOME%\bin

Configurando o Tomcat Onde colocar as classes dos Servlets? Primeiro, é preciso criar uma aplicação web Cria-se um diretório em %TOMCAT_HOME%\webapps\, sem espaços no nome. Dentro do diretório do projeto, cria-se a pasta WEB-INF Dentro de WEB-INF, criam-se 2 pastas: lib e classes Dentro de WEB-INF, cria-se o arquivo web.xml (deployment descriptor web)

Configurando o Tomcat As classes são colocadas no diretório: %TOMCAT_HOME%\webapps\DIRETÓRIO_APLICAÇÃO\WEB- INF\classes A partir deste diretório devem ser colocadas em seus próprios pacotes As libs (arquivos.jar) devem ser colocadas no diretório: %TOMCAT_HOME%\webapps\DIRETÓRIO_APLICAÇÃO\WEB- INF\lib

Configurando o Tomcat Registrando os Servlets Os servlets devem ser chamados com seu nome completo (pacotes e classe) Muitas vezes o nome se torna grande demais Pode-se então dar um nome ao servlet através do qual o servidor redirecionará a chamada à classe específica

Configurando o Tomcat Registrando Servlets O arquivo web.xml localizado no diretório: %TOMCAT_HOME%\webapps\DIRETÓRIO_APLICAÇÃO\WEB- INF

JBoss

O que é o JBoss? É um servidor de aplicação. Pode ser usado para Aplicações Web de missão crítica. Aplicações Web simples feitas com Servlets e JSP. Aplicações Web que usam frameworks como Struts, Java Server Faces, Spring, etc. Aplicações mais complexas, envolvendo SEAM, Enterprise Java Beans (EJB), Java Messaging (JMS), caching etc. Middlewares usando JMS, Corba, JMX etc.

O que é o JBoss? Arquitetura

O que é o JBoss? Arquitetura Consiste, basicamente, do microcontainer e beans de inicialização, conjunto de perfis de deployment e configurações de MBeans. Microcontainer Provê estrutura para implantar e integrar serviços corporativos entre si e com contêineres web, contêineres EJB, deployers e utilitários de gerenciamento. Implementa um modelo de objetos através de POJOs. Estes são integrados via injeção de dependência para prover serviços

Configuração do JBoss Pré-requisitos para instalação JDK 1.5 ou 1.6 Instalação no Linux Baixe o JBoss (para este curso, será o JBoss 5.1) e o descompacte em um diretório de sua preferência Após o baixar e descompactar o JBoss, configure as seguintes variáveis export JAVA_HOME=/caminho/para/jsdk-xxxx export JBOSS_HOME=/caminho/para/jboss-xxxx JAVA_HOME /bin e JBOSS_HOME/bin devem estar declarados no path do sistema para executar seus scripts e programas fora dos seus diretórios

Configuração do JBoss Inicialização no Linux Execute o script run.sh para inicializar o JBoss Execute shutdown.sh pará-lo Ao final da inicialização, o prompt de comandos deve apresentar a mensagem Started at... Parâmetros de inicialização É possível inicializar o JBoss com diferentes configurações de perfis Cada configuração permite definir perfis de servidores que podem oferecer diferentes serviços e ambientes para deployment de aplicações

LOG

Configuração do JBoss Em geral, é usado este perfil

Configuração do JBoss Parâmetros de inicialização Linha de comando para escolher perfil (tipo) de deployment run.sh -c <perfil>, onde os principais valores <perfil> são: default: suporta a maior parte das APIs de J2EE (JSF e EJB, por exemplo) all: suporte a todos os recursos corporativos, como RMI, clustering e outros serviços para aplicações corporativas web: específico para suportar aplicações web, com um contêiner web. Prevê Web profile do J2EE 6. minimal: sem suporte ao J2EE (sem contêineres Web e EJB), inicializa serviços de logging, JNDI e o scanner de novos deploys somente.» Oferece possibilidade. Mais leve e útil para implementar servidores customizados com os serviços desejados. standard: configuração básica de J2EE 5. shutdown.sh: pára o JBoss

Configuração do JBoss Essas configurações se encontram abaixo de <diretório-dojboss>/server Locais com as configurações dos serviços suportados no perfil <JBoss_Home>/server/<perfil>/deployers <JBoss_Home>/server/<perfil>/deploy Parâmetros de inicialização Linha de comando para inicializar o servidor em um IP ou host no qual responderá às requisições run.sh -b <nome do host ou IP>

Configuração do JBoss Tipos de aplicações, serviços e configurações que podem ser implantados Web Application Runtime (WAR): empacotamento de aplicações Web Enterprise Application Runtime (EAR): empacotamento de aplicações corporativas que incluem aplicações Web, EJB e definições de configurações como application.xml e jbossapp.xml Service Application Runtime (SAR): serviços internos Arquivos *-ds.xml : configurações de bancos de dados

Configuração do JBoss Tipos de aplicações, serviços e configurações que podem ser implantados XML para definição de serviços MBean, os quais podem estar em arquivos JAR em JBOSS_HOME/server/<perfil>/deploy ou JBOSS_HOME/server/<perfil>/lib JAR com EJBs e outros objetos de serviço Após sua inicialização, o JBoss monitora JBOSS_HOME/server/<perfil>/deploy procurando por empacotamentos colocados pelo usuários. Caso haja um novo, ele será expandido e implantado automaticamente.

Configuração do JBoss Estrutura de diretórios Para cada configuração em <JBoss_Home>/server/<perfil>, existe a seguinte estrutura de diretórios Diretório conf data deploy Descrição Contém o bootstrap.xml, que define os componentes (beans) do núcleo do servidor, os quais estarão ativos enquanto o servidor estiver executando. Serve para persistir conteúdo no sistema de arquivos, como bancos de dados de teste. Contém as aplicações e serviços (em JARs,WARs e EARs). Estes podem ser implatandos ou reimplantados mesmo em tempo de execução quando copiados neste diretório (hot deployment).

Configuração do JBoss Estrutura de diretórios Diretório lib log tmp work Descrição Contém bibliotecas (JARs) das aplicações dentro do perfil de deployment atual. Para compartilhar bibliotecas entre todos os perfiis de deployment, os JARs devem ser colocados em <JBoss_Home>/common/lib. Contém os logs do servidor e das aplicações, os quais podem ser configurados em conf/jboss-log4j.xml. Usado para armazenamento temporário pelos serviços do Jboss como, por exemplo, o deployer, que descompacta temporariamente as aplicações e serviços neste diretório. Diretório usado pelo Tomcat para compilação de JSPs.

Eclipse

Criação de aplicação Web no Eclipse Crie um novo projeto do tipo Dynamic Web Project.

Criação de aplicação Web no Eclipse Configure um contêiner Web ou servidor de aplicação em que será executada a aplicação. Para este curso, utilizaremos o Tomcat 5.5

Criação de aplicação Web no Eclipse Coloque o nome do projeto da aplicação Web. Escolha uma configuração de contêiner ou servidor de aplicações Web.

Criação de aplicação Web no Eclipse Clique em Browse para procurar o diretório onde está instalado o container ou servidor de aplicações web

Criação de aplicação Web no Eclipse Indique o diretório do servidor de aplicações. Escolha um contêiner ou servidor de aplicações Web.

Criação de aplicação Web no Eclipse Estrutura básica de um projeto Web O Eclipse monta a aplicação no TomCat com esta estrutura de pastas e copia esta classe dentro de WEB-INF/classes dentro de seu pacote Diretório para conteúdo Web: páginas, css, bibliotecas usadas Deployment descriptor Diretório de bibliotecas

Criação de aplicação Web no Eclipse Estrutura de um Dynamic Web Project Bibliotecas em WEB-INF/lib

Criação de aplicação Web Páginas devem ser colocadas na raiz do pacote WAR No projeto gerado no Eclipse, WebContent corresponde à raiz Exemplo: página index.jsp

Criação de aplicação Web: web.xml Possíveis URLs das páginas iniciais. Identificador da servlet. Servlet que processará requisições e gerará respostas HTTP. URL que receberá as requisições para a servlet cujo nome é <servlet-name>.

Criação de aplicação Web: Servlet Responde a requisições HTTP GET para esta servlet Responde a requisições HTTP POST para esta servlet

Criação de aplicação Web no Eclipse: inicialização do TomCat Fazer debug da aplicação no servidor Iniciar o servidor Parar o servidor

Criação de aplicação Web: acesso Resposta da Servlet Resposta da página index.jsp