Este documento fornece uma introdução ao framework Cactus, que permite testar componentes J2EE no próprio container do servidor. Resume as principais funcionalidades do Cactus em 3 frases:
Cactus estende o JUnit para permitir testar a integração de aplicações J2EE como servlets, JSPs e EJBs com o container do servidor, executando os testes simultaneamente no cliente e no servidor. Ele simula requisições HTTP para testar a funcionalidade dos componentes e verificar se os dados são processados corretamente. Cactus permite
O documento descreve como recuperar parâmetros de formulários em Servlets utilizando o método getParameter() e como passar valores de Servlets para JSPs utilizando o método setAttribute(). É explicado como recuperar valores de campos do tipo checkbox como arrays e como utilizar RequestDispatcher para repassar o fluxo da requisição e resposta para uma JSP.
Este documento fornece um resumo sobre WebServlets de acordo com a especificação Java EE 7. Ele contém informações sobre aplicações Web, WebServlets, requisições e respostas HTTP, URLs e redirecionamento, contexto da aplicação, sessão do cliente, filtros interceptadores e arquitetura MVC.
1) O documento resume os principais tópicos sobre desenvolvimento web com Java Servlets, incluindo arquitetura MVC, ciclo de vida de servlets, mapeamento de URLs, redirecionamento e uso de sessões.
2) Os capítulos discutem métodos HTTP, requisições e respostas, listeners de eventos, parâmetros de inicialização e dispatching de requisições.
3) O documento fornece detalhes técnicos importantes sobre o framework Servlet e é útil para estudar para a certificação SCWCD 5.0.
O documento introduz conceitos básicos sobre servlets e JSP, incluindo: (1) servlets são classes Java que estendem a funcionalidade de servidores web; (2) JSPs combinam HTML com código Java; (3) servlets processam requisições e geram respostas, enquanto JSPs focam na exibição de resultados.
Java web 6 JSP Expression Language Taglib parte 2Eduardo Mendes
O documento apresenta o uso de JSP e Servlets para recuperar atributos em requisições. Há dois códigos JSP mostrados: um usa Expression Language (EL) para recuperar atributos de forma simplificada, enquanto o outro usa código Java embutido para recuperar os mesmos atributos. O documento também explica os principais operadores e funcionalidades da EL, como o uso de pontos, colchetes e tags como <c:if>.
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
O documento descreve Expression Language (EL) e JSTL. EL permite que JSPs acessem valores disponíveis de forma simples, como atributos passados por Servlets. JSTL fornece uma biblioteca de tags para gerar conteúdo dinâmico em JSPs de forma reutilizável, eliminando scriptlets. Exemplos mostram como usar EL para acessar um objeto passado por Servlet e como JSTL percorre uma lista usando a tag <c:forEach>.
1. JSP é convertida para Servlet que é compilado e carregado para aguardar requisições.
2. A primeira requisição a uma página JSP é mais lenta, mas subsequentemente o processo é mais rápido se o código não foi alterado.
3. Uma página JSP passa por fases de tradução, compilação, carga, instanciação e execução do método _jspService() a cada requisição.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento descreve como recuperar parâmetros de formulários em Servlets utilizando o método getParameter() e como passar valores de Servlets para JSPs utilizando o método setAttribute(). É explicado como recuperar valores de campos do tipo checkbox como arrays e como utilizar RequestDispatcher para repassar o fluxo da requisição e resposta para uma JSP.
Este documento fornece um resumo sobre WebServlets de acordo com a especificação Java EE 7. Ele contém informações sobre aplicações Web, WebServlets, requisições e respostas HTTP, URLs e redirecionamento, contexto da aplicação, sessão do cliente, filtros interceptadores e arquitetura MVC.
1) O documento resume os principais tópicos sobre desenvolvimento web com Java Servlets, incluindo arquitetura MVC, ciclo de vida de servlets, mapeamento de URLs, redirecionamento e uso de sessões.
2) Os capítulos discutem métodos HTTP, requisições e respostas, listeners de eventos, parâmetros de inicialização e dispatching de requisições.
3) O documento fornece detalhes técnicos importantes sobre o framework Servlet e é útil para estudar para a certificação SCWCD 5.0.
O documento introduz conceitos básicos sobre servlets e JSP, incluindo: (1) servlets são classes Java que estendem a funcionalidade de servidores web; (2) JSPs combinam HTML com código Java; (3) servlets processam requisições e geram respostas, enquanto JSPs focam na exibição de resultados.
Java web 6 JSP Expression Language Taglib parte 2Eduardo Mendes
O documento apresenta o uso de JSP e Servlets para recuperar atributos em requisições. Há dois códigos JSP mostrados: um usa Expression Language (EL) para recuperar atributos de forma simplificada, enquanto o outro usa código Java embutido para recuperar os mesmos atributos. O documento também explica os principais operadores e funcionalidades da EL, como o uso de pontos, colchetes e tags como <c:if>.
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
O documento descreve Expression Language (EL) e JSTL. EL permite que JSPs acessem valores disponíveis de forma simples, como atributos passados por Servlets. JSTL fornece uma biblioteca de tags para gerar conteúdo dinâmico em JSPs de forma reutilizável, eliminando scriptlets. Exemplos mostram como usar EL para acessar um objeto passado por Servlet e como JSTL percorre uma lista usando a tag <c:forEach>.
1. JSP é convertida para Servlet que é compilado e carregado para aguardar requisições.
2. A primeira requisição a uma página JSP é mais lenta, mas subsequentemente o processo é mais rápido se o código não foi alterado.
3. Uma página JSP passa por fases de tradução, compilação, carga, instanciação e execução do método _jspService() a cada requisição.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Este documento apresenta o Apache Ant, uma ferramenta para gerenciamento de projetos Java. O Ant permite automatizar tarefas comuns em projetos Java, como compilação, teste, empacotamento e geração de documentação, através de roteiros XML chamados de buildfiles. O documento descreve como o Ant funciona, exemplos de uso de buildfiles e as principais tarefas suportadas como compilação, criação de JARs, manipulação de arquivos e geração de documentação.
O documento apresenta uma agenda de cursos sobre desenvolvimento web com AJAX e WEB 2.0. No primeiro dia, o curso irá cobrir XMLHttpRequest, API DOM, frameworks AJAX como ExtJS e Mootools e exemplo de aplicações. No segundo dia, os alunos irão finalizar um projeto de aplicação WEB 2.0 iniciado no dia anterior e ter uma conclusão sobre o assunto. O documento também fornece detalhes sobre as tecnologias abordadas no curso.
Introdução ao desenvolvimento web com JavaFellipeFonseca
O documento apresenta uma introdução ao desenvolvimento web com Java abordando tópicos como servlet container, HTML, servlet, JSP, modelo MVC, cookies e sessões. O documento é uma apresentação feita por Fellipe Fonseca da Universidade Estadual de Feira de Santana.
JDBC é uma interface Java para acesso a bancos de dados através de SQL. O documento explica os fundamentos de JDBC, incluindo como estabelecer conexões, executar consultas, processar resultados e fechar conexões. Também discute drivers JDBC, transações, prepared statements, stored procedures e recursos relacionados a metadados.
O documento descreve como codificar um servlet em Java usando as classes HttpServlet e HttpServletRequest/Response. Explica que um servlet deve estender HttpServlet e implementar os métodos doGet() ou doPost() dependendo do tipo de requisição. Também mostra como criar um servlet simples que retorna a data atual e mapeá-lo em um arquivo web.xml.
O documento descreve o desenvolvimento de um sistema de login web simples utilizando arquitetura MVC. Ele inclui instruções para criar a estrutura do projeto, modelagem de dados, classes de modelo, camada de acesso a dados e separação em pacotes.
O documento apresenta uma introdução à API JDBC para conexão entre aplicações Java e bancos de dados, descrevendo sua arquitetura, classes principais e passos para estabelecer conexão, enviar comandos SQL e manipular resultados.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Este documento fornece uma introdução à Java Persistence API (JPA), abordando tópicos como: 1) relacionamentos entre objetos; 2) mapeamento objeto-relacional; 3) introdução prática com um exemplo "Hello World" utilizando JPA.
O documento discute o Java Database Connectivity (JDBC), uma API Java para acesso a bancos de dados relacionais. Ele explica os tipos de drivers JDBC, como estabelecer conexões, executar comandos SQL e tratar resultados. Também apresenta o JavaDB, um banco de dados relacional incluído no Java SE, e como utilizá-lo através do JDBC.
Este documento fornece uma introdução aos servlets Java. Resume os principais pontos abordados:
1) Introduz os conceitos básicos de servlets, como classes Java que estendem funcionalidades de servidores; 2) Discutem a API de servlets, incluindo ciclo de vida, requisições, respostas e métodos de serviço; 3) Fornece exemplos de como escrever servlets genéricos e HTTP.
O documento descreve a plataforma .NET da Microsoft. Resumidamente:
(1) A plataforma .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações; (2) O código é compilado em MSIL e executado na CLR interagindo com o framework .NET; (3) Os principais tipos de compilados .NET são EXE, DLL, ASPX e ASMX.
O documento apresenta uma introdução ao Java EE 6, abordando tópicos como:
1) O que é o Java EE e sua arquitetura MVC;
2) As principais novidades do Java EE 6 como Servlet 3.0, JSF 2.0 e RIA;
3) Exemplos práticos dessas tecnologias e próximos passos para o aprendizado.
O documento fornece instruções para instalação e configuração do Eclipse e do Tomcat, necessários para o desenvolvimento de aplicações Java no Eclipse. Inclui links para download do Eclipse e do Tomcat, além de etapas como configurar a JRE do Eclipse para JDK, adicionar o servidor Tomcat no Eclipse e criar um projeto e página JSP de teste.
Este documento apresenta os principais conceitos sobre servlets Java e formulários HTML. [1] Apresenta a classe HttpServlet e seus métodos como doGet e doPost. [2] Mostra como mapear URLs para servlets no arquivo web.xml e como receber dados via requisição GET ou POST. [3] Explica os principais elementos de formulário como inputs, textareas, selects e como usá-los.
O documento introduz a ferramenta Apache Ant, que é usada para gerenciar projetos Java de forma automatizada através de arquivos XML. Ant permite compilar, empacotar, testar e implantar aplicações de forma independente de IDEs. Ele executa tarefas como compilação, geração de documentação e empacotamento usando roteiros definidos em arquivos XML chamados buildfiles.
O documento fornece um resumo sobre JDBC (Java Database Connectivity), descrevendo suas principais características como uma interface baseada em Java para acesso a bancos de dados através de SQL e apresentando conceitos como DriverManager, Connection, Statement, ResultSet e transações.
O documento apresenta Guilherme Blanco, desenvolvedor web com mais de 10 anos de experiência que trabalha para a Yahoo! e contribui para vários projetos de código aberto como Doctrine, Zend Framework e Symfony. Ele também introduz o framework Doctrine 2, que é composto por três principais pacotes - Common, DBAL e ORM - para abstração de banco de dados e mapeamento objeto-relacional no PHP.
Apresentação feita no Latinoware 2010 apresentando o conceito de Dependency Injection no PHP 5.3.
Esta palestra é uma tradução e simplificação da palestra Dependency Injection in PHP 5.3 de Fabien Potencier.
O documento discute as principais ferramentas de automação de builds, como Ant, Maven e Gradle. O Gradle é apresentado como uma alternativa que foca nos pontos positivos das outras ferramentas, como flexibilidade do Ant, convenções do Maven e gerenciamento de dependências, ao mesmo tempo em que resolve problemas como verbosidade e rigidez. O Gradle oferece funcionalidades como plugins, tasks, gerenciamento de dependências e integração com outros sistemas de forma declarativa.
O documento apresenta Diénert de Alencar Vieira e seu histórico profissional, além de um roteiro sobre sistemas web e tecnologias como JSP, Servlets, Facelets, JSF, JBoss Seam, RichFaces e padrões de projeto.
Este documento apresenta o Apache Ant, uma ferramenta para gerenciamento de projetos Java. O Ant permite automatizar tarefas comuns em projetos Java, como compilação, teste, empacotamento e geração de documentação, através de roteiros XML chamados de buildfiles. O documento descreve como o Ant funciona, exemplos de uso de buildfiles e as principais tarefas suportadas como compilação, criação de JARs, manipulação de arquivos e geração de documentação.
O documento apresenta uma agenda de cursos sobre desenvolvimento web com AJAX e WEB 2.0. No primeiro dia, o curso irá cobrir XMLHttpRequest, API DOM, frameworks AJAX como ExtJS e Mootools e exemplo de aplicações. No segundo dia, os alunos irão finalizar um projeto de aplicação WEB 2.0 iniciado no dia anterior e ter uma conclusão sobre o assunto. O documento também fornece detalhes sobre as tecnologias abordadas no curso.
Introdução ao desenvolvimento web com JavaFellipeFonseca
O documento apresenta uma introdução ao desenvolvimento web com Java abordando tópicos como servlet container, HTML, servlet, JSP, modelo MVC, cookies e sessões. O documento é uma apresentação feita por Fellipe Fonseca da Universidade Estadual de Feira de Santana.
JDBC é uma interface Java para acesso a bancos de dados através de SQL. O documento explica os fundamentos de JDBC, incluindo como estabelecer conexões, executar consultas, processar resultados e fechar conexões. Também discute drivers JDBC, transações, prepared statements, stored procedures e recursos relacionados a metadados.
O documento descreve como codificar um servlet em Java usando as classes HttpServlet e HttpServletRequest/Response. Explica que um servlet deve estender HttpServlet e implementar os métodos doGet() ou doPost() dependendo do tipo de requisição. Também mostra como criar um servlet simples que retorna a data atual e mapeá-lo em um arquivo web.xml.
O documento descreve o desenvolvimento de um sistema de login web simples utilizando arquitetura MVC. Ele inclui instruções para criar a estrutura do projeto, modelagem de dados, classes de modelo, camada de acesso a dados e separação em pacotes.
O documento apresenta uma introdução à API JDBC para conexão entre aplicações Java e bancos de dados, descrevendo sua arquitetura, classes principais e passos para estabelecer conexão, enviar comandos SQL e manipular resultados.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Este documento fornece uma introdução à Java Persistence API (JPA), abordando tópicos como: 1) relacionamentos entre objetos; 2) mapeamento objeto-relacional; 3) introdução prática com um exemplo "Hello World" utilizando JPA.
O documento discute o Java Database Connectivity (JDBC), uma API Java para acesso a bancos de dados relacionais. Ele explica os tipos de drivers JDBC, como estabelecer conexões, executar comandos SQL e tratar resultados. Também apresenta o JavaDB, um banco de dados relacional incluído no Java SE, e como utilizá-lo através do JDBC.
Este documento fornece uma introdução aos servlets Java. Resume os principais pontos abordados:
1) Introduz os conceitos básicos de servlets, como classes Java que estendem funcionalidades de servidores; 2) Discutem a API de servlets, incluindo ciclo de vida, requisições, respostas e métodos de serviço; 3) Fornece exemplos de como escrever servlets genéricos e HTTP.
O documento descreve a plataforma .NET da Microsoft. Resumidamente:
(1) A plataforma .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações; (2) O código é compilado em MSIL e executado na CLR interagindo com o framework .NET; (3) Os principais tipos de compilados .NET são EXE, DLL, ASPX e ASMX.
O documento apresenta uma introdução ao Java EE 6, abordando tópicos como:
1) O que é o Java EE e sua arquitetura MVC;
2) As principais novidades do Java EE 6 como Servlet 3.0, JSF 2.0 e RIA;
3) Exemplos práticos dessas tecnologias e próximos passos para o aprendizado.
O documento fornece instruções para instalação e configuração do Eclipse e do Tomcat, necessários para o desenvolvimento de aplicações Java no Eclipse. Inclui links para download do Eclipse e do Tomcat, além de etapas como configurar a JRE do Eclipse para JDK, adicionar o servidor Tomcat no Eclipse e criar um projeto e página JSP de teste.
Este documento apresenta os principais conceitos sobre servlets Java e formulários HTML. [1] Apresenta a classe HttpServlet e seus métodos como doGet e doPost. [2] Mostra como mapear URLs para servlets no arquivo web.xml e como receber dados via requisição GET ou POST. [3] Explica os principais elementos de formulário como inputs, textareas, selects e como usá-los.
O documento introduz a ferramenta Apache Ant, que é usada para gerenciar projetos Java de forma automatizada através de arquivos XML. Ant permite compilar, empacotar, testar e implantar aplicações de forma independente de IDEs. Ele executa tarefas como compilação, geração de documentação e empacotamento usando roteiros definidos em arquivos XML chamados buildfiles.
O documento fornece um resumo sobre JDBC (Java Database Connectivity), descrevendo suas principais características como uma interface baseada em Java para acesso a bancos de dados através de SQL e apresentando conceitos como DriverManager, Connection, Statement, ResultSet e transações.
O documento apresenta Guilherme Blanco, desenvolvedor web com mais de 10 anos de experiência que trabalha para a Yahoo! e contribui para vários projetos de código aberto como Doctrine, Zend Framework e Symfony. Ele também introduz o framework Doctrine 2, que é composto por três principais pacotes - Common, DBAL e ORM - para abstração de banco de dados e mapeamento objeto-relacional no PHP.
Apresentação feita no Latinoware 2010 apresentando o conceito de Dependency Injection no PHP 5.3.
Esta palestra é uma tradução e simplificação da palestra Dependency Injection in PHP 5.3 de Fabien Potencier.
O documento discute as principais ferramentas de automação de builds, como Ant, Maven e Gradle. O Gradle é apresentado como uma alternativa que foca nos pontos positivos das outras ferramentas, como flexibilidade do Ant, convenções do Maven e gerenciamento de dependências, ao mesmo tempo em que resolve problemas como verbosidade e rigidez. O Gradle oferece funcionalidades como plugins, tasks, gerenciamento de dependências e integração com outros sistemas de forma declarativa.
O documento apresenta Diénert de Alencar Vieira e seu histórico profissional, além de um roteiro sobre sistemas web e tecnologias como JSP, Servlets, Facelets, JSF, JBoss Seam, RichFaces e padrões de projeto.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Spring + Tapestry Um novo paradigma de desenvolvimento webelliando dias
O documento discute o framework Spring, incluindo sua organização, inversão de controle, integração com bancos de dados e frameworks web, transações declarativas, uso de mocks e projetos relacionados. O Spring é um container leve que facilita o desenvolvimento web, diminui código e integra com diversas tecnologias de forma portável e testável.
O documento apresenta uma introdução sobre servlets, JSP e servidores de aplicação, definindo suas principais características e funcionalidades como componentes para desenvolvimento web em Java.
Este documento fornece um resumo de 3 frases sobre tecnologias para desenvolvimento de software:
1) Apresenta um curso sobre diversas tecnologias Java como Servlets, JSP, JSF, EJB e Spring. 2) Fornece detalhes sobre o instrutor Rafael Benevides e sua experiência com Java. 3) A agenda inclui discussões sobre Servlets, JSP, Hibernate e outros temas ao longo de 9 dias.
O documento discute testes de integração em aplicações J2EE usando o framework Cactus. Ele apresenta o Cactus e mostra como utilizá-lo para testar servlets, EJBs e integração com outros frameworks como HttpUnit e JUnitEE.
Apache Wicket - Desenvolvimento WEB orientado a componentesCI&T
Apache Wicket é um framework web Java open source orientado a componentes que permite o desenvolvimento de aplicações web utilizando apenas Java e HTML, sem a necessidade de XML. O framework possui conceitos como Application, Session, RequestCycle, Components, Behaviors e Models que facilitam a construção de interfaces ricas e interativas de forma declarativa e reutilizável.
Javaone Brazil 2012: Integrando Ext JS 4 com Java EELoiane Groner
O documento discute a integração do framework Ext JS com Java EE, incluindo prós e contras dos diferentes frameworks e cuidados necessários. Ele também apresenta exemplos de arquitetura para projetos que utilizam Ext JS e Java, além de opções para comunicação entre as tecnologias.
O documento descreve o framework Tapestry para desenvolvimento web Java. Tapestry permite criar aplicações web dinâmicas de forma rápida através de componentes reutilizáveis, inversão de controle e ciclo de vida de páginas. O documento explica conceitos como páginas, componentes, validação, autenticação e realização de operações CRUD para exemplificar o uso do framework.
O documento discute o padrão MVC com JSP e Servlets, separando as funcionalidades em três camadas: Model, View e Controller. Apresenta também um mini-tutorial sobre como implementar este padrão em um sistema simples de sugestão de cervejas.
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
A empresa 4linux é pioneira no ensino de Linux à distância no Brasil, com mais de 30.000 alunos satisfeitos. Ela possui experiência em missões críticas, é parceira de treinamento da IBM e foi a primeira empresa no Brasil a oferecer certificação LPI.
O documento discute JavaServer Faces (JSF), um framework para desenvolvimento web em Java. JSF facilita a criação de interfaces gráficas, expressões de linguagem para acessar objetos e validação de campos. O documento também explica como configurar beans, formulários, controllers e arquivos de configuração para construir aplicações web simples com JSF.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento descreve as tecnologias Servlets, JSP e Tomcat para desenvolvimento de aplicações web dinâmicas. Ele explica como o HTTP funciona com requisições GET e POST, como Servlets e JSP permitem processamento de dados no lado servidor, e como eles podem ser implementados juntos usando o padrão MVC com Tomcat.
Este documento descreve os principais componentes de Servlets e JSP, incluindo o funcionamento de Servlets através de seus métodos init, service e destroy, e as principais características de JSP como diretivas, declarações, scriptlets e expressões.
Programação para Web II: Estrutura de um projeto Java WebAlex Camargo
O documento apresenta as principais tecnologias para desenvolvimento de projetos Java Web, incluindo Servlets, Tomcat e Eclipse. Detalha a estrutura e funcionamento de Servlets, o container Tomcat e a IDE Eclipse, além de incluir exercícios sobre esses tópicos.
O documento resume os principais conceitos de EJB, incluindo: 1) EJB são componentes padrão do lado do servidor para aplicações distribuídas e escaláveis; 2) Bean de Entidade usam JPA para mapear classes para tabelas de banco de dados; 3) Session Beans podem ser stateless, stateful ou MDBs e fornecem serviços para aplicações.
O documento discute conceitos importantes na plataforma Java Web, incluindo banco de dados, JDBC, JavaBeans, DAO, Java EE, Servlets, JSP, MVC, filtros, Spring MVC, JPA e Hibernate. Ele fornece exemplos de código para ilustrar esses conceitos-chave e discute os benefícios de usar estruturas como MVC, JPA e frameworks como Spring MVC e Hibernate.
Semelhante a Cactus - Testes em J2EE com Jakarta Cactus (20)
O documento descreve os conceitos básicos de objetos remotos em Java usando RMI. Ele explica que objetos remotos permitem que métodos sejam chamados remotamente como se fossem locais, e que RMI usa proxies e stubs para abstrair a complexidade da comunicação em rede. Ele também resume os 10 passos principais para implementar objetos remotos em RMI: 1) definir a interface remota, 2) implementar o objeto remoto, 3) estabelecer um servidor, 4) compilar, 5) gerar stubs e skeletons, 6) escrever e compilar o
O documento fornece um resumo sobre o framework JDBC no Java, descrevendo suas principais características como interface baseada em Java para acesso a bancos de dados através de SQL e como permite integrar aplicações Java com bancos de dados relacionais.
Este documento fornece informações sobre como construir aplicações gráficas e applets em Java. Ele discute as bibliotecas AWT e Swing para interfaces gráficas, componentes como JFrame e JButton, layouts como FlowLayout e BorderLayout, e como criar applets e aplicações que podem rodar tanto no navegador quanto em uma janela standalone.
O documento discute classes internas em Java, incluindo suas quatro categorias (classes dentro de instruções, métodos, objetos e estáticas) e seus usos. Classes internas podem ser usadas para maior reutilização de código e flexibilidade, mas também aumentam a complexidade do código.
O documento discute entrada e saída de dados em Java, abordando classes como File, InputStream, OutputStream, Reader, Writer e RandomAccessFile para manipulação de arquivos e fluxos de dados. Também apresenta tópicos como serialização de objetos, compactação com GZIP e recursos básicos de logging.
O documento discute coleções em Java, incluindo vetores, listas, conjuntos e mapas. Ele explica como manipular e ordenar coleções usando a API Collections e classes como ArrayList, LinkedList, HashSet e TreeMap. Além disso, aborda tópicos como interfaces Collection e Map, comparáveis e comparadores.
O documento apresenta os fundamentos da programação concorrente em Java, discutindo tópicos como threads, classes Thread e Runnable, controle de threads, deadlocks e comunicação entre threads usando wait() e notify(). É apresentado um exemplo de produtor-consumidor usando uma pilha compartilhada para ilustrar o uso desses conceitos.
Este documento fornece uma introdução aos testes de unidade com a ferramenta JUnit em Java. Ele discute os objetivos e benefícios dos testes de unidade, apresenta os conceitos fundamentais do JUnit e fornece exemplos de como implementar testes com JUnit.
O documento discute o controle de erros em Java usando exceções. Resumidamente:
1. Exceções são objetos que sinalizam condições excepcionais em tempo de execução e podem ser capturadas usando blocos try-catch.
2. Há três tipos principais de erros em tempo de execução: erros de lógica, erros devido a condições ambientais, e erros graves onde não há recuperação possível.
3. Exceções podem ser lançadas usando throw e capturadas em métodos an
O documento descreve os conceitos de polimorfismo e interfaces em Java. [1] Polimorfismo permite que objetos de subclasses sejam usados no lugar de objetos da classe pai, desde que implementem a mesma interface. [2] Isso garante que programas podem usar objetos de forma genérica através de interfaces, sem precisar conhecer as subclasses específicas.
O documento discute técnicas de reuso em Java, como herança e composição. Apresenta quando usar cada uma e como implementá-las corretamente, incluindo o uso de modificadores como public, protected, private e final.
Este documento fornece um resumo sobre o Apache Ant, uma ferramenta para gerenciamento de projetos Java baseada em arquivos XML. O documento explica como o Apache Ant pode ser usado para automatizar tarefas como compilação, empacotamento, documentação e teste.
Este documento discute pacotes e encapsulamento em Java, abordando os principais pacotes da API Java como java.lang e java.util, além de explicar como criar pacotes e classes em Java, implementando métodos como equals() e clone().
Este documento discute conceitos importantes sobre construção de classes e objetos em Java, incluindo: 1) como criar construtores e sobrecarregá-los; 2) o uso de this() e super() em construtores; 3) problemas com a inicialização de objetos.
Este documento discute operadores e estruturas de controle de fluxo na linguagem Java. Ele explora os tipos de operadores matemáticos, lógicos e de atribuição, bem como estruturas como if/else, for loops e while loops. O documento também discute conversão e promoção de tipos, além de operadores como instanceof.
O documento fornece instruções sobre como usar a documentação da API Java, explicando onde ela está localizada na instalação do Java SDK, como navegar pela documentação online e encontrar classes, métodos e detalhes técnicos. Ele também apresenta exemplos de como gerar documentação JavaDoc para classes personalizadas.
Este documento fornece instruções para configurar um ambiente de desenvolvimento Java usando ferramentas open-source como JEdit, Ant e JDK. Ele descreve como instalar e personalizar essas ferramentas, criar projetos no JEdit, usar plug-ins e executar compilações com Ant. O documento também discute problemas comuns e alternativas de IDEs.
Este documento fornece um resumo dos principais conceitos de programação orientada a objetos em Java, incluindo:
(1) Conceitos como classe, objeto, atributo, método e interface;
(2) Características da OO como abstração, encapsulamento, herança e polimorfismo;
(3) Sintaxe Java para construção de classes e objetos.
O documento fornece uma introdução à tecnologia Java, abordando seus principais conceitos e ferramentas. Em 3 frases:
Apresenta os conceitos fundamentais da linguagem Java, como classes, objetos e APIs, além da máquina virtual Java. Detalha as ferramentas do SDK para desenvolvimento de aplicações Java, como o compilador javac e interpretador java. Fornece exemplos práticos de aplicações Java simples para familiarizar o leitor com os conceitos apresentados.
Este documento fornece uma introdução aos conceitos básicos de programação de rede em Java, cobrindo classes como Socket, ServerSocket e URL. Ele explica como criar clientes e servidores TCP/IP, ler e escrever dados de conexões e endereçamento na Internet. O documento também inclui exercícios para aplicar os conceitos aprendidos.
1. J820
Testes em J2EE com
Jakarta
CACTUS
Helder da Rocha (helder@acm.org)
argonavis.com.br
2. Cactus: framework para J2EE
Testa componentes J2EE no próprio container
Componentes Web (Camada de Controle)
Camada EJB (Model) e cliente (View): indiretamente
Cactus estende o JUnit framework
Execução dos testes é realizada de forma idêntica
TestCases são construídos sobre uma subclasse de
junit.framework.TestCase
argonavis.com.br
Por que usar?
Para testes de integração (JUnit testa lógica local)
Aplicações J2EE possuem muitas dependências (é preciso
simular a rede, o servidor, o EJB container, etc.)
Mock objects podem ficar muito complicados
Testar a integração com o servidor pode ser mais fácil
2
3. Para que serve?
argonavis.com.br
Use Cactus para testar a integração de aplicações Web
(servlets, JSP, filtros) e aplicações EJB com o container
Controller
Model
Arquitetura do Cactus
M: EJB (Modelo de dados/
lógica de negócios)
V: JSPs (camada de apresentação: View, através
de controladores)
C: Servlets, filtros e custom
tags (Controladores)
Servlets
Taglibs
EJBs
Remotos
Filtros
Classes
Java
Classes
Java
JSP
EJBs
Locais
Velocity
XSLT
View
Se não precisar testar a integração, use JUnit
Pode-se usar ambos em conjunto, uma vez que Cactus é
extensão do JUnit e usa a mesma interface
Ilustração: Manual do Cactus
3
4. Como funciona?
Cactus utiliza os test cases simultaneamente no
cliente e no servidor: duas cópias
Uma cópia é instanciada pelo servlet container
Outra cópia é instanciada pelo JUnit
Comunicação com o servlet container é feita através
de um proxy (Redirector)
argonavis.com.br
JUnit envia requisições via HTTP para proxy
Proxy devolve resultado via HTTP e TestRunner mostra
Há três tipos de proxies:
ServletRedirector: para testar servlets
JSPRedirector: para testar JSP custom tags
FilterRedirector: para testar filtros de servlets
4
5. Arquitetura
Parte da mesma classe (ServletTestCase) é executada
no cliente, parte no servidor
(4) setUp()
org.apache.cactus.
ServletTestCase
(1) beginXXX()
testXXX()
tearDown()
(2) (8)
ServletTestCase
MeuServletTestCase
argonavis.com.br
request: AbstractHttpServletRequest
response: HttpServletResponse
config: ServletConfigWrapper
...
beginXXX(WebRequest)
setUp()
testXXX()
tearDown()
endXXX(WebResponse)
(10) endXXX()
(7) (9)
Redirector
Servlet
(3)
ServletTestCase
(6)
(5)
lado
cliente
lado
servidor
encapsulam objetos no servidor.
São null, no cliente
Classes
lado-servidor
executados apenas no servidor
executados apenas no cliente
5
6. ServletTestCase (ou similar)
Para cada método XXX() a ser testado, pode haver:
Um beginXXX(), para inicializar a requisição do cliente
Encapsulada em um objeto WebRequest a ser enviado ao servidor
Um testXXX(), para testar o funcionamento do método
no servidor (deve haver ao menos um)
Um endXXX(), para verificar a resposta do servidor
Devolvida em um objeto WebResponse retornada pelo servidor
argonavis.com.br
Além desses três métodos, cada TestCase pode conter
setUp(), opcional, para inicializar objetos no servidor
tearDown(), opcional, para liberar recursos no servidor
Os métodos do lado do servidor têm acesso aos mesmos
objetos implícitos disponíveis em um servlet ou página JSP:
request, response, etc.
6
7. O objetivo deste servlet é
argonavis.com.br
1) gravar qualquer parâmetro que receber na sessão (objeto session)
2) devolver uma página contendo os pares nome/valor em uma tabela
3) imprimir resposta em caixa-alta
public void doGet(...) throws IOException {
Enumeration e = request.getParameterNames();
HttpSession s = request.getSession();
(1) Grava request
while (e.hasMoreElements()) {
em session
String param = (String)e.nextElement();
s.setAttribute(param, request.getParameter(param));
}
writer.println("<html><body><table border='1'>");
String str = "";
(3) Transforma
while(e.hasMoreElements()) {
nome e valor
String param = (String)e.nextElement();
para caixa-alta
key = param.toUpperCase();
val = request.getParameter(param).toUpperCase();
}
str = "<tr><td><b>"+key+"</b></td><td>"+val+"</td></tr>";
}
writer.println(str);
writer.println("</table></body></html>");
(2) Devolve tabela [1]
Fonte do exemplo:
}
7
8. MapperServletTest.java
Testes com o Cactus
public class MeuServletTest extends ServletTestCase { (...)
private MeuServlet servlet;
public void beginDoGet(WebRequest cSideReq) {
cSideReq.addParameter("user", "Jabberwock");
}
argonavis.com.br
public void setUp() throws ServletException {
servlet = new MeuServlet();
servlet.init(this.config);
Simula servlet
}
container
public void testDoGet() throws IOException {
servlet.doGet(this.request, this.response);
String value = (String) session.getAttribute("user");
assertEquals("Jabberwock", value);
Verifica se parâmetro foi
}
mapeado à sessão
public void endDoGet(WebResponse cSideResponse) {
String str = cSideResponse.getText();
assertTrue(str.indexOf("USER</b></td><td>JABBERWOCK") > -1);
}
}
Verifica se parâmetro aparece na
tabela HTML e em maiúsculas
8
9. Exemplo: funcionamento
Cliente (JUnit)
Servidor (Tomcat)
beginDoGet(WebRequest req)
- Grava parâmetro:
nome=user
value=Jabberwock
argonavis.com.br
SUCCESS!!
FAIL!
falha
local
falha remota
&
endDoGet(WebResponse res)
- Verifica se resposta contém
USER</b></td><td>JABBERWOCK
ReqInfo
setUp()
2 conexões HTTP:
• Uma p/ rodar os
testes e obter
saida do servlet
• Outra para esperar
resultados de testes
(info sobre exceções)
TestInfo
- Define init-params
no objeto config
- Roda init(config)
testDoGet()
- Roda doGet()
- Verifica se parâmetro
(no response) foi
mapeado à sessão
tearDown()
Output
9
10. HttpUnit com Cactus
Troque o WebResponse em cada endXXX() por
argonavis.com.br
com.meterware.httpunit.WebResponse
public void endDoGet(com.meterware.httpunit.WebResponse resp)
throws org.xml.sax.SAXException {
WebTable[] tables = resp.getTables();
assertNotNull(tables);
assertEquals(tables.length, 1); // só há uma tabela
WebTable table = tables[0];
int rows = table.getRowCount();
boolean keyDefined = false;
for (int i = 0; i < rows; i++) {
String key
= table.getCellAsText(i, 0); // col 1
String value = table.getCellAsText(i, 1); // col 2
if (key.equals("USER")) {
keyDefined = true;
assertEquals("JABBERWOCK", value);
}
}
if (!keyDefined) {
fail("No key named USER was found!");
}
}
10
11. Para testar EJBs
Não é necessário usar Cactus. EJBs podem ser testados
a partir do cliente, usando suas interfaces remotas
Teste de unidade simples usando JUnit
Possível para beans que tenham interfaces remotas
argonavis.com.br
Cactus é útil para testar EJBs através de suas interfaces
locais, já que roda dentro do container
Ideal para testar Entity Beans que geralmente não
possuem interfaces remotas
Permite também testar objetos que rodam no servidor e
são inaccessíveis aos clientes (DAOs, Service Locators)
Cactus testa a integração de EJBs com o Container
Aplicação usa referências java:comp/env para ter acesso
ao bean (precisam ser declaradas em web.xml)
11
12. Componentes EJB
Servlets e JSPs podem se comunicar com EJBs da aplicação
declarando uma referência associada ao bean chamado
A referência deve informar o tipo do bean (Session, Entity ou
MessageDriven e suas interfaces remota e home.
argonavis.com.br
<ejb-local-ref>
<description>Cruise ship cabin</description>
<ejb-ref-name>ejb/Cabin</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.titan.cabin.CabinHome</local-home>
<local>com.titan.cabin.Cabin</local>
</ejb-local-ref>
Componentes EJB locais não são objetos remotos RMI-IIOP. Para
obter sua referência no ServletTestCase use JNDI (javax.naming):
InitialContext initCtx = new InitialContext();
Object ref = initCtx.lookup("java:comp/env/ejb/CabinHome");
CabinHome home = (CabinHome) ref;
12
13. Testes em EJBs locais
Uma vez obtida a referência local para o EJB, seus
métodos podem ser testados dentro do container da
maneira convencional
argonavis.com.br
Cabin cabin = home.findByPrimaryKey("311");
String number = cabin.getNumber();
assertEquals("311", number);
Não interessa se a implementação de persistência
usada é BMP ou CMP
Uma vantagem do Cactus é a possibilidade de testar
relacionamentos CMR, impossíveis remotamente
Collection cabins =
home.findByShip("Titanic");
...
13
14. Exercícios
argonavis.com.br
1. Execute os exemplos
2. Escreva testes para testar a aplicação Web
fornecida
O ambiente está configurado (use o Ant)
Guie-se pelos comentários no código
A aplicação recebe parâmetros e grava os dados no
contexto. No final retorna uma página HTML
Rode a aplicação.
Escreva testes para verificar sua interface e para testar
se os dados passados como parâmetros foram gravados
no contexto.
Use Cactus apenas onde for necessário (use test cases
normais do JUnit para outros testes)
14
15. Fontes
[1] Richard
Hightower e Nicholas Lesiecki. Java Tools for
eXtreme Programming. Wiley, 2002.
argonavis.com.br
[2] Apache
Cactus User's Manual.
15