Web e Tecnologia Java: JSP/Servlets. Aula 10. Desenvolvimento em N Camadas

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "Web e Tecnologia Java: JSP/Servlets. Aula 10. Desenvolvimento em N Camadas"

Transcrição

1 Web e Tecnologia Java: JSP/Servlets 10.1 Aula 10 Introdução Desenvolvimento em N Camadas 10.2 A tendência atual no desenvolvimento de programas corporativos é fornecer estruturas de N camadas Objetiva-se obter aplicativos seguros, flexíveis e disponíveis. As soluções técnicas atuais que implementam esta solução são: J2EE (Java 2 Enterprise Edition) da Sun Microsystems; Plataforma.NET (.NET Framework) da Microsoft. Atualmente existem diversos servidores de aplicações que podem abrigar soluções que empregam esta tecnologia. Os clientes que podem tirar proveito desta arquitetura podem ser tão simples quanto um navegador Web. A terminologia utilizada pode ser confusa e usada de maneira inconsistente Uma camada pode ser tanto um camada física representando uma separação física (máquinas diferentes) quanto uma camada lógica representando um software Múltiplas camadas lógicas podem estar na mesma camada física (uma mesma máquina). Quando for necessário se utilizará explicitamente os termos camada física e camada lógica.

2 Introdução 10.3 Uma Camada Desenvolvimento Monolítico Computadores de grande porte ou computadores pessoais independentes, são e foram ambientes ideais para se encontrar aplicativos monolíticos Grandes softwares contendo toda as funcionalidades da aplicação Manutenção difícil (algumas vezes chamado código espaguete). Toda entrada do usuário, verificação da lógica do negócio e acesso a dados era processada pela mesma máquina por uma única aplicação Esta solução era satisfatória para um ambiente onde imperavam os computadores de grande porte e/ou os centros de dados corporativos pois se tinha um controle absoluto e as próprias aplicação evoluíam mais lentamente. Atualmente os sistemas exigem um alto nível de manutenção que é quase incompatível com aplicações monolíticas Pode-se chegar a situações de recompilações diárias. Para aplicativos simples que não utilizam conectividade de rede o desenvolvimento monolítico pode ser suficiente Entretanto, mesmo nestes casos (um cliente acessando um banco de dados) estes aplicativos podem tirar proveito do modelo de diversas camadas. Como tanto a lógica de negócio como de apresentação e o acesso aos dados estão codificadas juntas, a recompilação de muitas partes do código pode ser necessária dificultando a adição de novas funcionalidades Suplementarmente, alterações em uma parte do sistema podem introduzir erros em outras partes não relacionadas. A instalação do mesmo sistema em máquinas diferentes também introduz o problema de controle das versões que é um problema suplementar a ser tratado. Introdução 10.4 Uma Camada Lógica de Apresentação Lógica de Negócio A divisão em camadas lógicas de funcionalidade pode ser baseada nas diferentes responsabilidades das partes do código da aplicação: Lógica de Apresentação: está ligada a interação do usuário com a aplicação e a maneira com a qual as informações são apresentadas aos usuários Lógica do Negócio: implementa o processamento ligado às regras do negócio para o qual foi desenvolvida a aplicação Lógica de Acesso aos Dados: está ligada a conexão realizada com as fontes de dados e também a manipulação pela lógica de negócio dos dados da fonte de dados Lógica de Acesso a Dados Banco de Dados Martin Bond et alli., Aprenda J2EE em 21 Dias, Pearson Education do Brasil Ltda, 2003.

3 Introdução Duas Camadas 10.5 Surgimento em conseqüência do desejo de se compartilhar dados entre aplicativos executados em máquinas diferentes Utilização de uma máquina para abrigar o servidor de banco de dados. Com duas camadas a aplicação implementa a lógica de apresentação e de negócios Os dados são acessíveis em outra máquina através de uma conexão a um banco de dados Alterações na lógica de acesso a dados não devem interferir com o restante. Lógica de Apresentação Lógica de Negócio Lógica de Acesso a Dados Banco de Dados No limite desta arquitetura toda a camada de acesso aos dados pode ser trocada Um outro banco de dados pode, por exemplo, ser utilizado sem interferência nas outras duas camadas desde que a interface entre as duas camadas não mude. Introdução Duas Camadas Conseqüências 10.6 Em aplicações de duas camadas o cliente ainda mantém contato com a lógica de negócio e precisa saber detalhes da localização da fonte de dados Como o cliente concentra grande parte do processamento este arquitetura é conhecida como Cliente Gordo (Thick) Clientes gordos normalmente precisam ser atualizados quando a aplicação muda Dificuldades para manter versões atualizadas. O cliente gordo irá ter acesso ao código referente a lógica do negócio (mesmo que compilado) o que pode ser um problema. Com a Internet iniciou-se a separação da lógica do negócio da interface do usuário Usuários da Internet precisam acessar aplicativos sem instalar código em suas máquinas Eles têm acesso aos aplicativos através de navegadores Web. Como a lógica do negócio não reside mais na máquina do usuário o cliente é denominado Cliente Magro (Thin)

4 Introdução Três Camadas 10.7 Com três camadas separa-se efetivamente cada uma das lógicas de funcionalidades em camadas diferentes o Cliente Gordo torna-se Magro a lógica de apresentação está separada. A lógica de apresentação está separada em uma camada lógica e física própria Diferentes tipos de lógica de Lógica de Apresentação Lógica de Negócio apresentação podem ser utilizadas (HTML, interface gráfica, etc.) para acessar a lógica de negócio. Este tipo de arquitetura de três camadas tornou-se o modelo utilizado na maior parte das Aplicações Web A separação em camadas torna os sistemas mais flexíveis em relação às alterações que podem ser feitas Lógica de Acesso a Dados Banco de Dados A separação em camadas físicas diferentes pode ainda oferecer uma maior flexibilidade em relação ao hardware pois pode permitir a separação da aplicação em máquinas diferentes. Como a lógica de apresentação está em sua própria camada o código específico desta camada pode ser escrito por especialistas em apresentação que não precisam conhecer a tecnologia utilizada nas outras duas camadas. Introdução O Padrão MVC e JSP I [6] O Padrão MVC (Model, View, Controller) tem origem no Framework MVC de Smalltalk Em aplicações Web os termos MVC e Model 2 são normalmente intercambiáveis. MVC e Model 2 são normalmente utilizados para descrever a estrutura de uma aplicação Struts. Aplicações Web baseadas em JSP normalmente são divididas em aplicações JSP de arquitetura Model 1 e Model 2 Aplicações com Model 1 normalmente são apropriadas para sistemas simples. Em aplicações baseadas no padrão MVC o fluxo de controle é mediado por um Controlador que delega requisições a gerenciadores específicos Os gerenciadores estão ligados ao modelo e cada gerenciador funciona como um adaptador entre a requisição e o modelo. O Modelo representa ou encapsula o estado ou a lógica de um negócio. Após o modelo ter operado, o controle é reenviado pelo controlador à visão apropriada O encaminhamento pode ser determinado pelo controlador através de um mapeamento. 10.8

5 O Padrão MVC e JSP II [5] Aplicações complexas utilizando Model 1 normalmente tem uma grande quantidade de scriptlets com código Java presente nas páginas JSP O desenvolvedor deve conhecer Java. Navegador Introdução Arquitetura Model JSP 2 Javabean Servidor de Aplicação Fontes de Dados Introdução O Padrão MVC e JSP III [5] Arquitetura Model 2 Aplicações que utilizam Model 2 utilizam Servlets e JSP tirando vantagem das melhores características de cada uma das tecnologias O servlet funcionará como o controlador da aplicação criando também todos os objetos e beans utilizados pelas páginas JSP. Navegador 1 5 Servlet (Controler) 3 JSP (View) 4 2 instancia Javabean (Model) Servidor de Aplicação Fontes de Dados

6 Introdução Apache Struts Struts é um Framework que pode ser utilizado para o desenvolvimento de aplicações JSP utilizando a arquitetura MVC oferecendo: Um Servlet que deve ser utilizado como controlador sendo configurável através de um documento XML Este servlet irá encaminhar as requisições a classes (Action Classes) que devem ser criadas pelo desenvolvedor para realizar o processamento. Um coleção de bibliotecas de tags (taglibs) que podem ser utilizadas no desenvolvimento da aplicação evitando atualização de código nas páginas e facilitando o desenvolvimento. Classes auxiliares que auxiliam na implementação de diferentes operações corriqueiras no desenvolvimento de Sistemas Web Java, como suporte a tratamento de XML, preenchimento de Javabeans ou gerenciamento externo do conteúdo de interface de usuário (diversas línguas). Introdução Apache Struts - Componentes Model (M): geralmente o modelo é implementado através de um objeto Java (um Javabean). View (V): normalmente a visão é implementada através de uma página HTML ou JSP. Controller (C): é implementado por um objeto de org.apache.struts.action.actionservlet ou de uma sub-classe. Classes Auxiliares: Struts oferece um conjunto de classes que auxiliam no desenvolvimento: FormBeans: utilizada no encapsulamento de dados de formulários HTML Ligado ao Modelo. ActionErrors: utilizada no encapsulamento de dados de erros Ligada ao Modelo. Tags Personalizadas (Custon Tags): encapsulam a lógica para a apresentação Ligada à Visão. Actions: implementam a lógica dos comandos Ligada ao Controle. ActionForward: utilizadas no encapsulamento da lógica de redirecionamento Ligada ao Controle

7 Introdução Apache Struts O Modelo [4] O modelo de um sistema baseado no padrão MVC pode normalmente ser dividido em dois subsistemas Estado interno (substantivos) do sistema e as Ações (verbos) que levam a mudança de estados. Diversas aplicações representam o estado interno por Javabeans As propriedades dos beans representam os detalhes do estado do sistema Dependendo da complexidade do sistema os beans podem estar conectados ou não a bancos de dados para persistência dos dados. Grandes aplicações normalmente serão desenvolvidas com beans que oferecem métodos que irão realizar a manipulação da informação mantida pelos beans ou utilizando Session Enterprise Java Beans (J2EE). Aplicações mais simples podem ter as operações do sistema inseridas em Classes Action que são parte da camada Controle Opção útil quando a lógica for simples ou quando a reutilização da lógica não for necessária. A camada Modelo de uma aplicação MVC normalmente está ligada a uma tecnologia específica Struts permite que se utilize diversas tecnologias em comunicação com o modelo, como JDBC, Enterprise Java Beans, Object Relational Bridge, etc. Embora a lógica possa ser inserida no controle devido a simplicidade de um sistema, recomenda-se fortemente que a Lógica da Aplicação (como as coisas são feitas) esteja separada do papel desempenhado pelas Classes Action (o quê fazer). Introdução Apache Struts A Visão [4] Em um sistema baseado no padrão MVC a parte Visão é normalmente construída utilizando a tecnologia de JavaServer Pages JSP Possibilidade de utilização de texto estático HTML (ou XML) com a inserção de conteúdo dinâmico baseado na interpretação de tags especiais. O ambiente JSP inclui uma série de tags de ação (<jsp:usebean>) e oferece a possibilidade de desenvolvimento e utilização de tags personalizadas. O Framework Struts inclui uma série de Bibliotecas de Tags que facilitam a criação de interfaces de usuário que podem ser facilmente transformadas para se adaptar a diferentes línguas Estas taglibs interagem facilmente com beans ActionForm ActionForm capturam e validam as entradas de um formulário. As Taglibs Struts oferecem suporte a camada Visão de aplicações MVC Algumas podem acessar objetos da camada de Controle e outras podem ser utilizadas no desenvolvimento de aplicações Outras Taglibs incluindo JSTL podem ser utilizadas com Struts Templates Velocity (ver e XSLT também podem ser utilizadas.

8 Introdução Apache Struts O Controlador [4] Em um sistema baseado no padrão MVC o Controlador deve receber as requisições dos clientes (normalmente um usuário utilizando um navegador), decidir que função da lógica de negócios deve ser realizada para então delegar a responsabilidade de produzir a interface do usuário a um componente da Visão. Em Struts o componente primário de um Controlador é um servlet da classe ActionServlet Este servlet é configurado definindo um conjunto de ActionMapping Um ActionMapping define o caminho para um nome totalmente qualificado de uma Action Class Todas as ações são subclasses de org.apache.struts.action.action Actions encapsulam chamadas para classes que implementam a lógica de negócios, interpretam os resultados e finalmente despacham o controle para o componente apropriado da Visão que irá cria a resposta. Struts permite que se utilize o modelo de comando na aplicação A aplicação chama a Página de Menu sem saber a localização da página JSP específica Real separação entre a lógica de controle (o quê fazer) da lógica de apresentação (como a informação é apresentada). O Framework Struts fornece diversos componentes que implementam a camada Controle de uma aplicação MVC Servlet de Controle, possibilidade de utilizar gerenciadores de requisições desenvolvidos pelos usuários e diversos objetos de suporte. Introdução Funcionamento I [4] Os componentes chave de uma aplicação Struts são [4]: ActionServlet: é o controlador da aplicação despachando as ações a serem executadas. Action: é um classe que deve ser estendida por cada ação (comando do modelo de comandos) a ser implementada. struts-config.xml: arquivo que define os mapeamentos entre as ações as páginas os beans e os dados. JSP lê Bean FormBean HTTP despacha preenche ActionServlet delega Action Dados ou DAO

9 Introdução Funcionamento II [5] Quando inicializado, o Controlador analisa o arquivo de configuração (strutsconfig.xml) e o utiliza para criar outros objetos da camada de controle O conjunto destes objetos representa a Configuração Struts que define entre outras coisas os ActionsMappings (org.apache.struts.action.actionmappings) da aplicação. O servlet de controle Struts consulta os ActionMappings e encaminha as requisições HTTP aos outros componentes do Framework Requisições podem ser encaminhadas para JavaServer Pages ou subclasses Action (org.apache.struts.action.action) criadas pelo desenvolvedor Os mapeamentos auxiliam o Controlador a transformar requisições HTTP em ações Um ActionMapping individual (org.apache.struts.action.actionmapping) contem normalmente as seguintes propriedades: a. O caminho da requisição (request path). b. O tipo do objeto (Subclasse de Action) que age sobre a requisição c. Outras propriedades necessárias. O objeto Action pode manipular a requisição e responder ao cliente (normalmente um navegador) ou indicar que o controle deve ser encaminhado a outro componente Objetos Action têm acesso ao servlet de controle e consequentemente a seus métodos Quando um objeto encaminha o processamento ele pode encaminhar objetos (Javabeans) colocando-os nos contextos compartilhados por servlets Java. Introdução Funcionamento III [5] continuação... Ex.: um objeto Action pode criar um bean responsável por manter uma cesta de compras, adicionar itens a cesta, colocar o bean no contexto da sessão e então encaminhar o controle para outro mapeamento. Em uma aplicação Struts a maior parte da Lógica de Negócio é representada utilizando-se Javabeans Uma Action pode acessar as propriedades do Javabeans sem conhecer seu funcionamento Devido ao encapsulamento implementado, os objetos Action podem se concentrar no tratamento de erros e no encaminhamento do controle. Javabeans também podem ser utilizados para manipular formulários de entrada de dados ppde-se definir um conjunto de Beans dedicados ao tratamento das entradas (Form Beans) Estes beans são subclasses de ActionForm (org.apache.struts.action.actionform) Objetos ActionForm facilitam o armazenamento e validação dos dados fornecidos em formulários Eles são automaticamente salvos em um dos contextos padrão e podem ser utilizados por outros objetos como Action ou páginas JSP. Um bean de formulário (Form Beans) pode ser utilizado por uma página JSP para coletar dados do usuário, por um objeto Action para validar os dados e então novamente pela página JSP para reapresentar os dados Caso erros ligados ao preenchimento do formulário apareçam Struts fornece um mecanismo para a apresentação de mensagens de erros.

10 Introdução Funcionamento IV [5] A criação de um ActionForm é gerenciada por ActionFormBeans ActionFormBeans (org.apache.struts.action.actionformbeans) compõem uma coleção de objetos descritores (descriptor objetcs) que são usados para criar instâncias de objetos ActionForm em tempo de execução Quando um mapeamento necessita de um ActionForm o servlet controlador verifica os descritores e cria um objeto do tipo especificado A seguinte seqüência de eventos ocorre quando há uma chamada por uma mapeamento que usa um ActionForm: O servlet controlador ou recupera ou cria uma instância de um bean ActionForm; O servlet de controle passa o bean para um objeto Action; Se a requisição estiver sendo usada para submeter uma página de entrada, o objeto Action pode examinar os dados Se necessário, os dados podem ser enviados de volta ao formulário de entrada com uma lista de mensagens a serem apresentadas na página (validação dos dados), caso contrário os dados podem ser enviados a camada de negócio. Se a requisição estiver sendo utilizada para criar uma página de entrada, o objeto Action pode popular o bean com quaisquer dados que sejam necessários à página Struts fornece tags personalizados que podem ser utilizadas com esta finalidade As páginas JSP não necessitam conhecer nada da aplicação, somente o nome dos campos e para onde enviar os dados. Introdução Funcionamento V [5] Em aplicações simples um objeto Action pode algumas vezes gerenciar a lógica de negócio associada com a requisição Entretanto, na maior parte dos casos um objeto Action deve invocar outro objeto, normalmente um Javabean, para implementar a lógica de negócio Deste modo o objeto Action pode se concentrar no tratamento de erros e no fluxo de controle da aplicação. Para permitir reutilização em diferentes plataformas, Javabeans que se ocupam com a lógica de negócios não devem se referir a nenhum objeto da aplicação Web Os objetos Action devem traduzir os detalhes solicitados pela requisição HTTP para passá-los aos beans da lógica de negócio como variáveis Java regulares Ex.: uma aplicação de banco de dados: Um bean da lógica de negócio deve se conectar ao banco de dados e realizar as consultas; O bean da lógica de negócio retorna o resultado para o objeto Action; O objeto Action armazena o resultado em um Form Bean na requisição; A página JSP apresenta o resultado em uma formulário HTML.

11 10.21 Funcionamento - Resumo 5.2/guess/strutsintro.html 1. Usuário clica em um link em uma página HTML 2. Servlet controlador recebe a requisição, verifica as informações de mapeamento em struts-config.xml e encaminha o processamento para uma ação 3. A ação faz uma chamado para um serviço da camada de modelo. 4. O serviço faz uma chamada aos dados (banco de dados) e os dados solicitados são retornados. 5. O Serviço retorna a ação. 6. A ação encaminha o processamento a um recurso da camada Visão (uma página JSP) 7. O Servlet verifica o mapeamento do recurso solicitado e encaminha o processamento a página JSP. 8. O arquivo JSP é invocado e enviado ao navegador como HTML. 9. Ao usuário é apresentada uma nova página HTML no navegador Utilização de Struts O Framework Struts foi criado por Craig R. McClanaham e doado à Fundação Apache em 2000 Ele pode ser obtido em ou diretamente em O arquivo obtido deve ser descompactado em um diretório qualquer (para manter o conjunto talvez no diretório raiz das aplicações Apache). Todos os arquivos.jar devem ser copiados para o diretório WEB-INF/lib da aplicação ou para TOMCAT_HOME/lib estando neste caso disponíveis para todas as aplicações. Todos os arquivos.tld (taglibs) devem ser copiados para o diretório WEB-INF/ da aplicação. Tendo copiado os.jar e os.tld para os diretórios apropriados se pode começar a desenvolver uma aplicação com Struts Inicialmente este procedimento será realizado para desenvolver uma aplicação com os mesmos plugins utiliziados até agora Crie um diretório Aula10, no Eclipse crie uma aplicação Web no diretório Aula10 criado e copie os arquivos para os locais apropriados.

12 Importação de struts.jar Para que a aplicação possa utilizar as funcionalidades do Framework Struts é necessário fazer a declaração do arquivo struts.jar nas bibliotecas do projeto Clicar sobre Aula10/Properties e então selecionar Add External JAR... e localizar e importar o arquivo struts.jar A Visão Inicialmente se irá criar a página JSP responsável pela comunicação com o usuário Esta página deve ser criada em Aula10. aula10.jsp taglib uri="/bean" prefix="bean" %> taglib uri="/html" prefix="html" %> taglib uri="/logic" prefix="logic" %> taglib uri="/tags" prefix="tag" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> Tag personalizada de Struts que <head> insere mensagens de erro relativas ao <title>pedidos via Struts.</title> </head> preenchimento do formulário (T26). <body> <h1>faça o seu pedido!</h1> <html:errors/> <tag:type/> <tag:items/> <html:form action="aula10_02.do"> <table> Importação das taglibs do Struts. Importação de uma taglib que será desenvolvida Tags personalizada que serão desenvolvidas. type armazena em um atributo de nome type os diferentes tipos de refeições e items os diferentes conteúdo das refeições (T33 T34). Tag que cria o formulário onde os dados serão apresentados. Em Struts, ações com a extensão.do são automaticamente mapeadas (web.xml) para o servlet controlador.

13 Utilização A Visão aula10.jsp continuação... <table> <tr> <td align="left" valign="top"> <bean:message key="items"/> <br /> <logic:iterate id="items1" name="items"> <html:multibox property="items"> <%= items1 %> </html:multibox> <%= items1 %> <br /> </logic:iterate> </td> <td align="left" valign="top"> <bean:message key="type"/> <br /> <html:select property="type"> <html:options name="type"/> </html:select> </td> </tr> <tr> <td align="left"> <br /> <bean:message key=" "/> <html:text property=" "/> </td> <tr> </table> <br /> <html:submit value="fazer Pedido"/> </html:form> </body> </html> A Visão Utilizando a taglib bean recupera do arquivo ApplicationResources.properties a chave de nome items a ser apresentada (Ts 28-30) Utilizando a taglib html define uma série de elementos checkbox (T25) Utilizando a taglib logic realiza uma iteração para criar uma série de elementos checkbox com os valores estabelecidos pelo tag <tag:items> (T31 T32). Recupera do arquivo ApplicationResources.properties a chave de nome type a ser apresentada (T28). Utilizando as tag select e options da taglib html cria uma Lista de Seleção com os valores criados pela tag <tag:type>. (T29) Recupera do arquivo ApplicationResources.properties a chave de nome a ser apresentada e utilizando a tag <html:text> cria a área para entrada do (T28). Utilizando a tag <html:submit> cria o botão de envio do formulário (T30). A Visão 10.26

14 Utilização A Visão A Taglib <html> de Struts I Esta taglib contém tags usadas na criação de formulário Struts e também na criação de interfaces HTML. Nome da Tag base button cancel checkbox errors file form hidden html image img link multibox option options password Funcionalidade Cria um elemento HTML <base>. Cria um controle do tipo button. Cria um botão cancel. Cria um controle do tipo checkbox. Apresenta mensagens de erro. Cria um controle do tipo file. Define um formulário de entrada de dados. Cria um controle do tipo hidden. Cria um elemento HTML <html>. Cria um controle do tipo image. Cria um controle do tipo img. Cria uma âncora ou um hyperlink HTML. Cria um controle do tipo checkbox com diversos checkbox. Cria uma opção de select. Cria um conjunto de opções de select. Cria um controle do tipo password. Utilização A Visão A Taglib <html> de Struts II Nome da Tag radio reset rewrite select submit text textarea Cria um botão reset. Cria uma URI. Atributos de <html:errors> Nome da Atributo bundle locale name property Cria um controle do tipo radio. Cria um controle do tipo select. Cria um botão submit. Cria um controle do tipo text. Cria um controle do tipo textarea. Funcionalidade Funcionalidade Especifica o contexto do servlet a ser usado. Atributo da sessão para a locale (língua) das mensagens a serem apresentadas. Nome do bean no escopo onde as mensagens de erro foram armazenadas. Nome do property para o qual as mensagens de erro serão apresentadas. O default é apresentar todas as mensagens.

15 Utilização A Visão A Taglib <html> de Struts III Atributos de <html:form> Nome do Atributo action enctype focus method name onreset onsubmit scope style styleclass styleid target type URL a qual o formulário será submetido. Funcionalidade A codificação a ser usada para enviar o conteúdo se o método for POST. O nome de um campo ao qual o foco vai ser inicialmente usando uma função Javascript. O método HTTP (GET ou POST) a ser utilizado na submissão. O nome do bean no escopo da requisição ou sessão do qual as propriedades serão usadas para armazenar os dados do formulário. Tratador de evento Javascript chamado quando o botão reset é pressionado. Tratador de evento Javascript chamado quando o botão submit é pressionado. O escopo do bean associado ao formulário (request ou session). Um estilo CSS a ser aplicado ao formulário. A classe do estilo CSS a ser aplicada ao formulário. O identificador a ser atribuido ao formulário HTML. Frame destino ao qual o formulário será submetido. Nome totalmente qualificado da classe do bean que deve ser criada se o bean ainda não existir. Utilização A Visão O Arquivo ApplicationResources.properties Este arquivo é utilizado para armazenar as mensagens utilizadas na aplicação, inclusive mensagens de erro. As mensagens declaradas neste arquivo podem ser manipuladas em uma página JSP com o auxílio da taglib struts-bean do Struts. =<b>seu </b> type=<b>tipo:</b> items=<b>item:</b> ApplicationResource.properties error.no =<li><font color="red">por favor, forneça seu endereço .</font></li> error.notype=<li><font color="red">por favor, selecione um tipo.</font></li> error.noitems=<li><font color="red">por favor, selecione ao menos um item.</font></li> errors.header=<font color="red">por favor, corrija o(s) seguinte(s) erro(s):<ul> errors.footer=</ul> Declaração das mensagens (chaves) a serem utilizadas. Declaração das mensagens de erro a serem utilizadas Cabeçalho e rodapé da página de erro que são automaticamente utilizados (obrigatórios).

16 A Taglib <bean> de Struts I Esta taglib contém tags úteis para o acesso a beans e suas propriedades e também para definir novos beans que são acessíveis ao restante da página através de variáveis de script e atributos com escopo page. Nome da Tag cookie define header include page parameter resource size struts write Utilização A Visão Funcionalidade Cria uma variável de script usando um valor fornecido por um cookie. Cria uma variável de script usando um valor fornecido pela propriedade de um bean. Cria uma variável de script usando o valor fornecido por um cabeçalho request. Carrega o objeto response e torna-o disponível como um bean. Escreve a string de uma mensagem internacionalizada na resposta. Cria uma variável de script usando o valor de um parâmetro de request. Carrega um recurso de uma aplicação Web e torna-o disponível como um bean. Cria um bean contendo o número de elementos. Cria um objeto de configuração Struts e torna-o disponível como um bean. Escreve o valor de uma propriedade de um bean no objeto JspWriter Utilização A Visão A Taglib <bean> de Struts II Atributos de <bean:xxxxx> Nome do Atributo id key name property scope Funcionalidade Especifica a variável/atributo de script que será criado pela tag. Especifica uma chave em um arquivo de propriedades. Especifica o nome com o qual um bean será manipulado. Define o nome de uma propriedade de um bean JSP identificado por name. Identifica o escopo JSP (page, request, session ou application) onde Struts irá procurar o bean.

17 A Taglib <logic> de Struts I Esta taglib contém tags que são úteis na manipulação da geração condicional de texto de saída, na realização de iterações (loops) sobre objetos de coleções para a geração repetitiva de texto de saída bem como para a gerência do fluxo da aplicação. Nome da Tag equal notequal greaterequal lessequal greaterthan lessthan match notmatch forward redirect iterate Utilização A Visão Compara o valor de um atributo contra um valor1 para verificar se são iguais. Compara o valor de um atributo contra um valor1 para verificar se não são iguais. Compara o valor de um atributo contra um valor1 para verificar se o mesmo é maior ou igual ao valor1 Compara o valor de um atributo contra um valor1 para verificar se o mesmo é menor ou igual ao valor1 Compara o valor de um atributo contra um valor1 para verificar se o mesmo é maior que o valor1 Compara o valor de um atributo contra um valor1 para verificar se o mesmo é menor que o valor1 Verifica se o valor de um atributo é igual a uma String. Verifica se o valor de um atributo é diferente de uma String. Forward uma requisição. Redireciona uma requisição. Funcionalidade Realiza uma iteração sobre outros elementos Utilização A Visão A Taglib <logic> de Struts II Atributos de <logic:xxxxx> Nome do Atributo collection id indexid length name offset property scope type Funcionalidade Uma coleção sobre a qual será feita uma iteração. O nome de um bean JSP com escopo de página que contém o elemento corrente de uma coleção em cada iteração. O nome de um bean JSP com escopo de página que contém o índice da coleção em cada iteração. Define o número máximo de elementos sobre os quais deve ser feita a iteração em uma página. O Nome do bean JSP contendo a coleção sobre a qual vai ser feita a iteração. O índice de início a partir do qual a iteração deve ser começada. Nome de uma propriedade de um bean cujo método get retorna a coleção sobre a qual a iteração vai ser realizada. Identifica o escopo JSP (page, request, session ou application) onde Struts irá procurar o bean. Nome totalmente qualificado da classe Java do tipo de dado fornecido pelo bean JSP.

18 Utilização A Visão A Taglib Personalizada Criada Procedimento semelhante ao apresentado na Aula 9 será utilizado para criar a Biblioteca de Tags personalizada que será utilizada na aplicação Deve-se criar a Classe Gerenciadora da Tag, Criar o Arquivo tld da taglib e declará-la no arquivo web.xml da aplicação. aula10.tld <?xml version="1.0"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.2</jspversion> <shortname>strutsexample</shortname> <info> Suporta o Exemplo Struts </info> <tag> <name>type</name> <tagclass>beans.type</tagclass> <bodycontent>empty</bodycontent> </tag> <tag> <name>items</name> <tagclass>beans.items</tagclass> <bodycontent>jsp</bodycontent> </tag> </taglib> Declaração da tag type que é controlada pela classe Java Type que está no pacote tags. Declaração da tag item que é controlada pela classe Java Items que está no pacote tags Utilização A Visão A Taglib Personalizada Criada As Classes Gerenciadoras das Tags package tags; Type.java import javax.servlet.jsp.tagext.tagsupport; public class Type extends TagSupport { public int dostarttag() { String[] typearray = {"", "Pizza", "Calzone", Sanduíche"; pagecontext.setattribute("type", typearray); return SKIP_BODY; package tags; Items.java import javax.servlet.jsp.tagext.tagsupport; O gerenciador cria uma lista com os diferentes tipos de comida e a armazena no contexto como o atributo type que pode ser utilizado pelas tags Struts. O gerenciador cria uma lista com os itens dos diferentes tipos de comida e a armazena no contexto como o atributo items que pode ser utilizado pelas tags Struts. public class Items extends TagSupport { public int dostarttag() { String[] itemsarray = {"Lingüiça", "Queijo", "Calabresa", "Carne", "Pimenta"; pagecontext.setattribute("items", itemsarray); return SKIP_BODY;

19 Utilização O Arquivo web.xml Como em qualquer aplicação Web em web.xml mapeamentos devem ser declarados web.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.actionservlet</servlet-class> <init-param> <param-name>application</param-name> <param-value>applicationresources</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> Definição de um servlet de nome action que corresponde ao servlet ActionServlet que é o servlet Controlador de Struts. Mapeamento da extensão.do para o servlet action. Utilização O Arquivo web.xml web.xml continuação... <taglib> <taglib-uri>/bean</taglib-uri> <taglib-location>/web-inf/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/html</taglib-uri> <taglib-location>/web-inf/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/logic</taglib-uri> <taglib-location>/web-inf/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tag</taglib-uri> <taglib-location>/web-inf/aula10.tld</taglib-location> </taglib> </web-app> Declaração das taglibs de Struts e da taglib que será criada.

20 Utilização O Controlador URLs com o padrão.do vão ser todas conectadas a um servlet ActionServlet do Struts de nome action (definição no arquivo web.xml). Este servlet age como o Controlador da aplicação É necessário fornecer um Adaptador que irá funcionar com o controlador Este adaptador é baseado na classe Struts Action. Um objeto action é um adaptador entre o conteúdo de uma requisição de entrada e a lógica de negócio que será executada para fazer o tratamento da entrada O controlador irá selecionar um objeto Action apropriado para cada requisição e chamar o método perform deste objeto. A conexão entre o Controlador (um objeto ActionServlet) e o adaptador Action é declarada no arquivo WEB-INF\struts-config.xml. Neste exemplo de utilização, o adaptador Action é representado pela classe Aula10_02.java e a o bean que implementa o modelo pela classe Aula10_03.java O bean Aula10_03.java deve ser declarado com o elemento <form-beans> no arquivo struts-config.xml Deve-se também registrar o adaptador Aula10_02.java no arquivo struts-config.xml. Utilização O Controlador O Arquivo struts-config.xml <?xml version="1.0"?> struts-config.xml <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd"> <struts-config> <form-beans> <form-bean name="aula10_03" type="beans.aula10_03"/> </form-beans> <action-mappings> <action path="/aula10_02" type="beans.aula10_02" name="aula10_03" scope="request" input="/aula10_01.jsp"> <forward name="ok" path="/aula10_05.jsp"/> </action> </action-mappings> </struts-config> Adaptador. Declaração do bean que implementa o modelo. Quando um usuário enviar dados para Aula10_02.do, o servlet de controle irá enviar um objeto bean do modelo totalmente inicializado (Aula10_03) para o adaptador Aula10_02 desta maneira o código tem acesso aos dados do modelo. Se o código no adaptador decidir que os dados passados a eles estão corretos, ele diz ao controlador para encaminhar (forward) os resultados para a visão JSP que é representada pela página aula10_05.jsp. Caso erros ocorram, o processamento será encaminhado a página de entrada, aula10_01.jsp.

21 Utilização O Controlador O Adaptador Aula10_ package beans; Aula10_02.java import beans.aula10_03; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.struts.action.*; public class Aula10_02 extends Action { public ActionForward perform(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionErrors actionerrors = new ActionErrors(); Aula10_03 orderform = (Aula10_03) form; Faz a importação do bean do modelo. Cópia do bean Aula10_03 passada a classe. String = orderform.get (); if( .trim().equals("")) { actionerrors.add(actionerrors.global_error, new ActionError("error.no ")); Criação de um objeto ActionError do Struts para gerenciamento de erros. Criação de um bean e atribuição a ele dos valores do bean passado pelo controlador. Recuperação do valor da propriedade do bean. String type = orderform.gettype(); if(type.trim().equals("")) { actionerrors.add("actionerrors.global_error", new ActionError("error.notype")); Se for vazio, adiciona um ActionError de nome error.no (verificar no arquivo de propriedades T28) a estrutura ActionErrors. Utilização O Controlador O Adaptador Aula10_ Aula10_02.java continuação... String[] items = orderform.getitems(); if(items == null) { actionerrors.add("actionerrors.global_error", new ActionError("error.noitems")); if(actionerrors.size()!= 0) { saveerrors(request, actionerrors); return new ActionForward(mapping.getInput()); return mapping.findforward("ok"); Se nenhum erro dor detectado o processamento será desviado para a página definida no arquivo struts-config.xml (T38) diversos desvios podem ser implementados sendo que cada um tem um nome neste exemplo existe um só de nome OK o método findforward irá localizar pelo nome, o encaminhamento correto a ser feito. Se a estrutura ActionErrors tiver algum elemento ele será salvo e o processamento será desviado para a página inicial declarada pelo elemento input no arquivo strutsconfig.xml (T38). Se nenhum erro ocorrer, após ter recebido uma chamada da página aula10_01.jsp, o controlador irá encaminhar ao usuário a página de resultado aula10_05.jsp.

22 10.43 Apresentação dos Erros Utilização O Controlador A Página de Resultados Na página de resultados tem-se acesso aos dados do bean Aula10_03 Estes dados podem ser escritos na página de resultados utilizando o tag <bean:write>. Utilizando-se o tag <bean:message> se pode obter a chave que apresenta um título e depois com o bean <bean:write> se pode apresentar seu valor. <bean:message key= type /> <bean:write name= Aula10_03 property= type /> O tag <logic:iterate> pode ser utilizado para verificar escolhas múltiplas, como por exemplo a que pode ser feita para diferentes itens de um tipo de comida. <bean:message key= items /> <logic:iterate id= items1 name= Aula10_03 property= items /> <%= items1 %> <br /> </ logic:iterate>

23 Utilização O Controlador A Página de Resultados aula10_05.jsp taglib uri="/bean" prefix="bean" %> taglib uri="/logic" prefix="logic" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>dados do Pedido</title> </head> <body> <h1>dados do Pedido</h1> <bean:message key="type"/> <bean:write name="aula10_03" property="type"/> <br /> <br /> <bean:message key="items"/> <br /> <logic:iterate id="items1" name="aula10_03" property="items"> <%= items1 %> <br /> </logic:iterate> <br /> <bean:message key=" "/> <bean:write name="aula10_03" property=" "/> <br /> </body> </html> O Modelo No exemplo apresentado o modelo armazena e retorna os dados que o usuário fornece o modelo normalmente implementa a lógica de manipulação dos dados da aplicação Normalmente é aqui que deve ser criada a conexão com um banco de dados e a manipulação dos dados. Em Struts o componente do modelo deve baseado na classe ActionForm. Aula10_03.java package beans; import org.apache.struts.action.actionform; public class Aula10_03 extends ActionForm { private String = ""; private String type = ""; private String[] items; public String get () { return ; public void set (string ) { this. = ; public String gettype() { return type; Aula10_03.java continuação... public void settype(string type) { this.type= type; public String[] getitems() { return items; public void setitems(string[] items) { this.items = items; Como os dados não são armazenados em um banco de dados, esta classe apresenta somente os métodos getters e setters para as propriedades manipuladas nas páginas

24 Apresentação do Resultado Web e Tecnologia Java: JSP/Servlets Aula 10-1: O Plugin Easy Struts

25 10.49 Vantagens Adiciona todas as bibliotecas Struts necessárias no Classpath do projeto e cria os arquivos de configuração e o arquivo de propriedades padrão e oferece diversos módulos. Easy Form: Cria o arquivo JSP com seu arquivo de propriedades e também o bean Form com os métodos setter e getters e adiciona a definição do bean no arquivo de configuração. Easy Action: cria uma classe Action e adiciona a definição do mapeamento da ação no arquivo de configuração. Easy Forward: cria redirecionamentos (forwards) locais e globais que definem onde o controle será redirecionado. Easy Exception: manipula as exceções. Easy Message Resources: cria arquivos de propriedades de recursos que são muito importantes para a internacionalização e localização da aplicação. Easy Plug-in: cria plugins. Easy Datasource: conecta uma aplicação a um data source. Easy Module: modulariza a aplicação. Instalação e Configuração A configuração básica realizada anteriormente é necessária: É necessário ter o Java SDK instalado (1.4.2 ou maior). É preciso ter o arquivo zip de Struts descompactado em algum lugar. É necessário ter o MySQL instalado bem como uma cópia do Connect/J. É necessário instalar o servidor Tomcat fazer o download em exe este diretório será referenciado como TOMCAT_HOME depois executar o instalador instalar abaixo de Apache Groups para manter os produtos agrupados. Realizar o download do plugin Easy Struts em pse_0.6.4.zip descompactar o arquivo no diretório plugins da instalação do eclipse. Instalar o plugin Sysdeo Tomcat realizar o download em descompactar o arquivo no diretório plugins da instalação do eclipse.

26 10.51 Configuração do Plugin Sysdeo Tomcat Com o Eclipse inicializado deve-se no menu Window/Preferences escolher a opção Tomcat e realizar as seguintes operações para compilar uma página JSP: Definir a versão do Tomcat para a versão instalada. Definir Tomcat Home para o local da instalação do Tomcat. Definir Perspective to switch when Tomcat is started para Java. Na opçãp Tomcat/JVM Settings/Classpath adicionar o arquivo tools.jar que normalmente encontra-se em JAVA_HOME/lib. No menu Window/Preferences escolher a opção Java/Classpath Variables adicionar uma nova variável TOMCAT_HOME tendo como valor o diretório de instalação do Tomcat. No menu Window/Customize Perspective abrir a opção Other e verificar se a subopção Tomcat está selecionada caso não esteja selecionar. Verificar se com os botões do plugin é possível inicializar e para o servidor Tomcat Configuração do Plugin Easy Struts No menu Window/Preferences escolher a opção Easy Struts e selecionar a orelha Struts 1.1. Adicionar todos os arquivos.jar localizados em STRUTS_HOME/jakarta-struts-1.1/lib. Adicionar todos os arquivos.tld localizados em STRUTS_HOME/jakarta-struts-1.1/lib.

27 Criação de uma Aplicação Selecionar a opção File/New/Project/Java/Tomcat Project e selecionar Next. Definir o nome do projeto como sendo easystruts e definir o diretório onde ele será armazenado e clicar em Next. Verificar que a opção Can update server.xmlfile está selecionada e clicar em Finish. Adição das Facilidades de Easy Struts Selecionar a opção File/New/Other e selecionar na opção Java/Easy Struts a opção Add Easy Struts support e clicar em Next. Realizar as configurações apresentadas para obter um ambiente Struts vazio. Funcionalidades oferecidas pelo Plugin

28 10.55 Uma Easy Action Associada a um Formulário Na janela dedicada ao plugins Easy Struts clicar sobre easystruts com o botão direito e selecionar Wizard.../Action and form. Realize as configurações apresentadas para criar as propriedades (chaves) do formulário. Uma Easy Action Associada a um Formulário Na seqüência se deve definir os mapeamentos (T10.40) após clicar em Next preencher a janela como apresentado. Após clicar em Finish o sistema vai gerar os arquivos com.asprise.struts.form.ownerform.java e com.asprise.struts.form.owneraction.java no diretório easystruts/web-inf/src e também o arquivo owner.jsp no diretório easystruts/web-inf deve-se completar estes arquivos para finalizar o formulário, adicionar validação das entradas do usuário e processamento da validação dos erros

29 Modificando a Classe ActionForm Deve-se alterar todas as referências ao tipo de dados Integer para int editar o arquivo clicando sobre ele e utilizando as mensagens de erros fazer as alterações. Deve-se inserir o código do método validate() para verificar as entradas do usuário para as propriedades do formulário. package com.asprise.struts.form; import javax.servlet.http.httpservletrequest; import org.apache.struts.action.actionerror; import org.apache.struts.action.actionerrors; import org.apache.struts.action.actionform; import org.apache.struts.action.actionmapping; public class OwnerForm extends ActionForm { OwmerForm.java // Instance Variables private String greet = "Mr."; private String address; private String ; private int tel = 0; private String name; Modificando a Classe ActionForm OwmerForm.java // Methods public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if (greet == null greet.trim().equals("")) { errors.add("greet", new ActionError("error.greet")); if (name == null name.trim().equals("")) { errors.add("name", new ActionError("error.name")); if (address == null address.trim().equals("")) { errors.add("address", new ActionError("error.address")); if ( == null .trim().equals("")) { errors.add(" ", new ActionError("error.no ")); else if { errors.add(" ", new ActionError("error.wrong ")); if (tel==0) { errors.add("tel", new ActionError("error.tel")); return errors; Tratamento de erros com as mensagens armazenadas no arquivo de propriedades

30 Modificando a Classe ActionForm OwmerForm.java public void reset(actionmapping mapping, HttpServletRequest request) { greet = "Mr."; address = ""; = ""; tel = 0; name = ""; public String getgreet() { return greet; public void setgreet(string greet) { this.greet = greet; public String getaddress() { return address; public void setaddress(string address) { this.address = address; Definição das propriedades e dos métodos getters e setters para as propriedades public String get () { return ; Modificando a Classe ActionForm public void set (string ) { this. = ; public int gettel() { return tel; public void settel(int tel) { this.tel = tel; public String getname() { return name; public void setname(string name) { this.name = name; OwmerForm.java Métodos getters e setters para as propriedades

31 O Arquivo ApplicationResources.properties ApplicationResources.properties # Resources for parameter 'com.asprise.struts.applicationresources' # Project P/easyStruts errors.header=<h4>validation Error(s)</h4><ul> errors.footer=</ul><hr> error.greet=<li>choose your greet error.name=<li>enter your name error.address=<li>enter your address error.tel=<li>enter your contact number error.wrong =<li>correct your error.no =<li>enter your Modificando a Classe Action A classe OwnerAction simplesmente apresenta a mensagem Thank you, Miss Nancy Chen no redirecionamento local que é definido como sendo a página JSP success.jsp. Deve-se modificar o método execute() de OwnerAcion (toda classe action deve implementar o método execute()). package com.asprise.struts.action; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.struts.action.action; import org.apache.struts.action.actionform; import org.apache.struts.action.actionforward; import org.apache.struts.action.actionmapping; OwmerAction.java Importação do form bean para manipular suas propriedades import com.asprise.struts.form.ownerform; public class OwnerAction extends Action { // Instance Variables

32 Modificando a Classe Action OwmerAction.java // Methods public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { OwnerForm ownerform = (OwnerForm) form; String greet = ownerform.getgreet(); String name = ownerform.getname(); request.setattribute("name", name); request.setattribute("greet", greet); // Forward control to the specified success target return (mapping.findforward("success")); Recuperação das propriedades do bean e armazenamento destas propriedades na requisição Encaminhamento do processamento a ação identificada por success. Modificando a Página owner.jsp O formulário deve ser completado adicionando os tags <html> que irão fazer a apresentação das informações e o tratamento dos erros owner.jsp taglib uri="/web-inf/struts-bean.tld" prefix="bean"%> taglib uri="/web-inf/struts-html.tld" prefix="html"%> <html> <head> <meta name = "Generator" content = "Easy Struts Xslt generator for Eclipse (http://easystruts.sf.net)."> <title>struts Form for ownerform</title> </head> <body> <html:form action="/owner"> greet : <html:select property="greet"> <html:option value=""></html:option> <html:option value="mr.">mr.</html:option> <html:option value="miss">miss</html:option> <html:option value="mrs.">mrs.</html:option> </html:select><html:errors property="greet"/> name : <html:text property="name"/><html:errors property="name"/></br> address : <html:text property="address"/><html:errors property="address"/></br> <html:text property=" "/><html:errors property=" "/></br> tel : <html:text property="tel"/><html:errors property="tel"/></br> <html:submit/><html:cancel/> </html:form> <html:errors /> <body> </html>

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Apache Struts Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este é um módulo opcional. Apresenta uma visão geral do framework Struts, usado para desenvolver aplicações

Leia mais

Minicurso de MVC web com Struts. EclipseDay@Serpro Felipe F Nascimento felipenasc@inf.puc-rio.br

Minicurso de MVC web com Struts. EclipseDay@Serpro Felipe F Nascimento felipenasc@inf.puc-rio.br Minicurso de MVC web com Struts EclipseDay@Serpro Felipe F Nascimento felipenasc@inf.puc-rio.br Agenda MVC Web e Command Visão Geral, Conceitos e terminologia Exemplo Conceitos Avançados Referências Laboratório

Leia mais

Curso de Introdução ao

Curso de Introdução ao Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.

Leia mais

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

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

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

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

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

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

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

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Prof. Roberto Desenvolvimento Web Avançado

Prof. Roberto Desenvolvimento Web Avançado Resposta exercício 1: Configuração arquivo web.xml helloservlet br.com.exercicios.helloservlet

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

Guia para Iniciantes do WebWork

Guia para Iniciantes do WebWork Guia para Iniciantes do WebWork Marcelo Martins Este guia descreve os primeiros passos na utilização do WebWork Introdução Desenvolver sistemas para Web requer mais do que simplesmente um amontoado de

Leia mais

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

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte

Leia mais

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

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

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

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

Scriptlets e Formulários

Scriptlets e Formulários 2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,

Leia mais

Relatório do GPES. Conhecendo o Framework Struts

Relatório do GPES. Conhecendo o Framework Struts Relatório do GPES Relatório referente à criação da camada de regra de negócio com a utilização do Framework Struts para o desenvolvimento de um exemplo de Cadastro de Clientes. Conhecendo o Framework Struts

Leia mais

Java na WEB Servlet. Sumário

Java na WEB Servlet. Sumário 1 Java na WEB Servlet Objetivo: Ao final da aula o aluno será capaz de: Utilizar Servlets para gerar páginas web dinâmicas. Utilizar Servlets para selecionar páginas JSPs. Utilizar Servlets como elemento

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Prática Sobre Servlets e JSP

Prática Sobre Servlets e JSP Prática Sobre Servlets e JSP 1. Localize a pasta do Tomcat (TOMCAT_HOME); 2. Acesse a pasta bin e execute tomcat5w.exe; 3. Abra o Navegador e acesse http://localhost:8080 (A apresentação de uma página

Leia mais

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes Resumo Neste tutorial serão apresentados conceitos relacionados a Servlets. Ele inicial como uma breve introdução do funcionamento

Leia mais

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

Programação II Programação para a Web. Christopher Burrows Programação II Programação para a Web Christopher Burrows Apache Tomcat O Apache Tomcat é um Servlet Container desenvolvido pela Apache Software Foundation. Implementa as tecnologias Java Servlets e Java

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - athanazio@pobox.com 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

Java para WEB. Servlets

Java para WEB. Servlets Servlets Servlets são classes Java que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas por meio do protocolo HTTP. Servlets é a segunda forma que veremos

Leia mais

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

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado

Leia mais

Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação. na Prática. Por: Fernando Goulart

Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação. na Prática. Por: Fernando Goulart Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação Struts na Prática Por: Fernando Goulart 1 Leituras recomendadas Husted, Ted. Struts em Ação. Ciência Moderna, 2004. Spielman,

Leia mais

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

Aula 4. Objetivos. Conteúdo dinâmico na internet. Aula 4 Objetivos Conteúdo dinâmico na internet. Para uma solicitação da Web mais simples, um navegador solicita um documento HTML e o servidor Web encontra o arquivo correspondente e devolve. Se o documento

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

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

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

J550 Tag Libraries e JSTL

J550 Tag Libraries e JSTL J550 Tag Libraries e JSTL Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Custom tags JSP com JavaBeans fornecem um meio de diminuir código Java da página, mas não totalmente Designers de página

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

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

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments Criação de Servlets 1. Crie um novo projeto através do Menu File New Project. 2. Acesse o Menu File New. 3. Na janela Object Gallery que surgirá, selecione a guia Web. 4. Escolha o ícone que corresponde

Leia mais

Configurando uma aplicação Struts

Configurando uma aplicação Struts Configurando uma aplicação Struts Instalando os Softwares 1. NetBeans IDE 5.0 2. Java Standard Development Kit (JDK ) version 1.4.2 or 5.0 Criando uma nova aplicação Struts 1. Click File > New Project.

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

Desenvolvimento Web com JSP/Servlets

Desenvolvimento Web com JSP/Servlets Desenvolvimento Web com JSP/Servlets Requisitos Linguagem Java; Linguagem SQL; Noções de HTML; Noções de CSS; Noções de Javascript; Configuração do ambiente JDK APACHE TOMCAT MySQL Instalando o JDK Instalando

Leia mais

e-genial Soluções em Software Livre Curso e-gen Developer

e-genial Soluções em Software Livre Curso e-gen Developer 1 Curso básico de e-gen Developer Parte 1 - Instalação 2 ÍNDICE INTRODUÇÃO 4 CONHECENDO O CORAÇÃO DO E-GEN (STRUTS) 5 O DESIGN PATTERN MVC DO STRUTS 6 COMPONENTES MODEL 6 COMPONENTES VIEW 6 COMPONENTES

Leia mais

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

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets Programação Web Professor: Diego Oliveira Conteúdo 02: JSP e Servlets JSP JSP é um template de uma página Web que usa Java para gerar HTML dinamicamente JSP é considerado server-side e roda em um objeto

Leia mais

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

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE Agosto 2007 Sumário de Informações do Documento Tipo do Documento: Manual Título do Documento: MANUAL DE UTILIZAÇÃO DO

Leia mais

Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source

Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source Configuraçãoes e Software Antes de começar a escrita do código, você tem que certificar-se que tem todo o software necessário e

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira WEBDESIGN Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira Formulários e JavaScript Como visto anteriormente, JavaScript pode ser usada para

Leia mais

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

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique. Lista de Revisão 1. Nos sistemas web, geralmente os usuários apresentam dois problemas típicos, a desorientação e a sobrecarga cognitiva. Discorra sobre esses problemas. 2. Apresente as principais diferenças

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

Struts. Características Avançadas

Struts. Características Avançadas Struts Características Avançadas Agenda Tags do Struts DispatchAction Multiplos arquivos de configuração Command Pattern DynaActionForm Array s Validation Framework JSP2.0 Expression Language html html:submit

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo JavaServer Pages (JSP) Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

HTML - 7. Vitor Vaz da Silva Paula Graça

HTML - 7. Vitor Vaz da Silva Paula Graça HTML - 7 Vitor Vaz da Silva Paula Graça 1 Formulários Os formulários forms no HTML, são utilizados para a introdução de dados de uma determinada aplicação Os programas JavaScript têm como um dos seus maiores

Leia mais

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha Desenvolvimento WEB II Professora: Kelly de Paula Cunha O Java EE (Java Enterprise Edition): série de especificações detalhadas, dando uma receita de como deve ser implementado um software que utiliza

Leia mais

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web Introdução Formulários rios & Conteúdo Dinâmico Mário Antonio Meireles Teixeira Dept o. de Informática - UFMA A Web surgiu inicialmente como uma nova forma de comunicação de informações, fazendo uso de

Leia mais

Mais sobre uso de formulários Site sem Ajax

Mais sobre uso de formulários Site sem Ajax Mais sobre uso de formulários Site sem Ajax Página com busca padrão 1 Página com o resultado da busca carregada no local da anterior (o formulário está vazio) Site com Ajax 2 Site usando Ajax para preencher

Leia mais

UNIDADE II JAVA SERVLETS

UNIDADE II JAVA SERVLETS UNIDADE II JAVA SERVLETS INTERNET É uma rede de redes, reunindo computadores do Governo, de universidades e empresas fornecendo infra-estrutura para uso de bancos de dados, correio eletrônico, servidores

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition 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

Leia mais

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

Aplicações de Linguagem de Programação Orientada a Objeto Aplicações de Linguagem de Programação Orientada a Objeto WEB JSP Professora Sheila Cáceres JSP É uma tecnologia que permite incluir código Java dentro de páginas web. Uma página jsp é uma página HTML

Leia mais

JSP (Java Server Pages)

JSP (Java Server Pages) JSP (Java Server Pages) André Tavares da Silva andre.silva@udesc.br JSP A linguagem surgiu por volta de 1995. JSP foi inicialmente inventado por Anselm Baird-Smith durante um final de semana e depois Satish

Leia mais

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

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto placidoneto@cefetrn.br JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto placidoneto@cefetrn.br 26/11/2005 JSTL 1 Agenda Histórico e motivação; Servlets e JSP; Introdução e conceituação

Leia mais

Sistemas para internet e software livre

Sistemas para internet e software livre Sistemas para internet e software livre Metodologia de modelagem de aplicações WEB Image: FreeDigitalPhotos.net Domínio: Elementos de aplicação WEB Páginas Web Scripts Formulários Applets e ActiveX Motivação

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

Tutorial Jogo da Velha WEB

Tutorial Jogo da Velha WEB Tutorial Jogo da Velha WEB Criação do Projeto 1- Inicie o Eclipse 2- Crie um novo projeto Web dinâmico. 3- Na tela seguinte, digite o nome do projeto e caso no campo Target Runtime não estiver aparecendo

Leia mais

Material de Apoio Profº Alan Cleber Borim

Material de Apoio Profº Alan Cleber Borim Desenvolvimento Web...2 Java....2 O Tomcat...2 Instalando o ambiente da aplicação....3 Instalando o jdk JAVA...3 Instalando o Tomcat...3 Criando um novo ambiente de desenvolvimento...4 Definição de Servlet...7

Leia mais

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. 16/08/2013 BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. Versão 1.0 19/12/2014 Visão Resumida Data Criação 19/12/2014 Versão Documento 1.0 Projeto

Leia mais

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 Rational Quality Manager Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 1 Informações Gerais Informações Gerais sobre o RQM http://www-01.ibm.com/software/awdtools/rqm/ Link para o RQM https://rqmtreina.mvrec.local:9443/jazz/web/console

Leia mais

Manual Integra S_Line

Manual Integra S_Line 1 Introdução O é uma ferramenta que permite a transmissão Eletrônica de Resultado de Exames, possibilitando aos Prestadores de Serviços (Rede Credenciada), integrarem seus sistemas com os das Operadoras

Leia mais

DWR DIRECTED WEB REMOTING

DWR DIRECTED WEB REMOTING DWR DIRECTED WEB REMOTING Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar,

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Escrito por Neri Neitzke Qua, 25 de Junho de 2014 14:51 - Última atualização Qua, 25 de Junho de 2014 14:54

Escrito por Neri Neitzke Qua, 25 de Junho de 2014 14:51 - Última atualização Qua, 25 de Junho de 2014 14:54 Java para Web 4, aprenda criar um sistema para web usando MVC (Model View Controller), DAO, JSTL, Custom Tags, HTML5, JavaScript, CSS3, Eclipse, Netbeans, postgresql powerdesigner. São 159 videoaulas em

Leia mais

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem 1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros

Leia mais

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007 Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007 Nível: Intermediário Este tutorial tem como objetivo criar um simples componente que renderiza uma tag label utilizando recursos

Leia mais

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

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web: Web Browser como o processo cliente Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: 1 Cliente Web browser HTTP porto 80 Servidor web... JDBC RMI XML... Base de Dados Aplicação em

Leia mais

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

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br JSP (Java Server Pages) - JavaServer Pages (JSP) - Tecnologia de programação serverside - Permite

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

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

Criação de um novo projeto no Eclipse utilizando Maven 1. Faça o download da versão mais atual do Eclipse IDE for Java EE Developers em https://www.eclipse.org/downloads/. 2. No Eclipse, crie um novo projeto Maven, em File >> New >> Maven Project 3. Marque

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados:

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados: Relatório do GPES Relatório referente à instalação dos programas e plugins que estarão sendo utilizados durante o desenvolvimento dos exemplos e exercícios, sendo esses demonstrados nos próximos relatórios.

Leia mais

Java na WEB Componentes Bean

Java na WEB Componentes Bean 1 Java na WEB Componentes Bean Objetivo: Ao final da aula o aluno será capaz de: Criar site dinâmico utilizando componentes Bean Utilizar Tags de ação Empregar Coleções de Bean. Sumário 5. Definição de

Leia mais

FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES. 5º PERÍODO Gestão da Tecnologia da Informação

FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES. 5º PERÍODO Gestão da Tecnologia da Informação FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES 5º PERÍODO Gestão da Tecnologia da Informação Alunos: Alessandro Aparecido André Alexandre Bruno Santiago Thiago Castilho

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

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

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

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

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho Banco de Dados de Músicas Andre Lima Rocha Campos Osório Pereira Carvalho Definição Aplicação Web que oferece ao usuário um serviço de busca de músicas e informações relacionadas, como compositor, interprete,

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Arquitetura de Aplicações Distribuídas na Web Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD Acadêmico: Maicon Klug Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Evolução guiada por APIs. com REST para modernizar seu legado

Evolução guiada por APIs. com REST para modernizar seu legado Evolução guiada por APIs Option #2 híbrida Criando uma arquitetura com REST para modernizar seu legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira www.vqv.com.br / j.edu@vqv.com.br

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira www.vqv.com.br / j.edu@vqv.com.br Desenvolvimento de Aplicações Web Programação Contextualização de aplicações Web: navegadores e servidores como interpretadores, tecnologias do lado do cliente (XHTML, CSS, Javascript) e do lado do servidor

Leia mais