O SQL Workshop fornece varias ferramentas que permitem visualizar e gerenciar os objetos do banco de dados através de Wizards, tornando fácil para o desenvolvedor criar toda a modelagem de dados de suas aplicações, o único requisito para uma modelagem perfeita é que o desenvolvedor conheça os conceitos do banco de dados Oracle e todos os seus recursos.

O SQL Workshop é divido em cinco ferramentas principais, elas são:

  1. Object Browser – permite que você navegue, crie e manipule qualquer objeto do banco de dados dentro do workspace da aplicação, como Tables, Views, índices, packages, sequences, tipos e todos os outros objetos do Oracle Database.
  2. SQL Commands – permite que você execute instruções SQL direto de seu navegador.
  3. SQL Scripts – permite que você efetue um upload de arquivos contendo scripts PL/SQL e os execute no banco de dados conectado ao seu workspace.
  4. Query Builder permite que você crie consultas graficamente, arrastando tabelas e exibições em um painel. Os Joins podem ser definidos arrastando e soltando nomes das respectivas colunas.
  5. Utilities – permitem que você execute vários outros procedimentos uteis no workspace de sua aplicação, como: subir dados de arquivos textos, criar DDL para os objetos do seu esquema, manusear a lixeira do seu workspace, monitorar as atividades de seu workspace entre varias outras.

Criando o Bando de dados de Sua Aplicação

Vamos primeiramente criar os objetos para nossa aplicação utilizando um script SQL em um arquivo que contem, uma tabela, uma sequence e uma trigger.

1 – Acesse o workspace da sua aplicação e clique em SQL Workshop->SQL Scripts, em seguida clique em upload selecione o arquivo contendo seus scripts SQL e clique em upload novamente para subir o arquivo para o servidor do Oracle APEX:

Upload - SQL Scripts

Upload – SQL Scripts

2 – Clique em Run Now para executar os scripts SQL em seu arquivo, na linha de seu arquivo clique no ícone da coluna RUN para rodar os scripts. Após a execução dos scripts clique em View Results para saber se tudo correu corretamente:

Run Now

Run Now

3 – Com os objetos criados com sucesso em seu workspace, para visualizar ou editar seus objetos utilize a opção Object Browser e navegue pelos seus objeto:

Object Browser

Object Browser

Pronto! você já possui os objetos de dados para criar uma aplicação APEX, para saber mais sobre como criar aplicações utilizando o Oracle Application Express veja o próximo post desta série.

Para acessar o post anterior da série: clique aqui.

SQL

Salve  estes scripts em um arquivo de extensão sql para efetuar um upload para seu banco de dados.

PL/SQL – arquivo SQL – sql0001.sql

-- cria tabela
create table Funcionarios(
  ID_Funcionario  NUMBER(5),
  Nome            VARCHAR2(30),
  Sobrenome       VARCHAR2(70),
  Cargo           VARCHAR2(30),
  Salario         NUMBER(9,2),
  CONSTRAINT	pk_ID_Funcionario PRIMARY KEY (ID_Funcionario)
  );

-- Cria sequencia
CREATE SEQUENCE ID_Funcionario_seq START WITH 1;

-- Cria Trigger
CREATE OR REPLACE trigger BI_Funcionarios
  before insert on Funcionarios
  for each row
begin
  if :NEW.ID_Funcionario is null then
    select ID_Funcionario_seq.nextval into :NEW.ID_Funcionario from dual;
  end if;
end;

O Oracle Application Express (APEX) é um ambiente de desenvolvimento de software baseado na web que roda em um banco de dados Oracle. O APEX vem como padrão em todas as edições banco de dados Oracle, à partir do Oracle 11g, é instalado por padrão como parte do núcleo do banco de dados.

As aplicações Apex podem ser executadas no Oracle Express Edition, o banco de dados livre (XE) da Oracle com limite de 11 GB de dados e uma CPU, a Oracle também fornece hospedagem gratuita de aplicações demos em um workspace criado por você em uma conta gratuita da Oracle.

O APEX foi desenhado para construir aplicações web complexas que podem ser usadas na maioria dos navegadores modernos. O ambiente de desenvolvimento APEX também é baseado em browser. O APEX possui varias vantagens por ser parte do núcleo do banco de dados Oracle, por exemplo, os DBAs já familiarizado com PL/SQL podem usar o seu conjunto de habilidades para desenvolver aplicações web usando o conceito de criação de maquetes utilizando temas pré-construídos. Com a fácil implementação e sua arquitetura o usuário final somente precisa abrir uma URL para acessar um aplicativo APEX que pode ser implantado em laptops, servidores autônomos, ou instalações do Oracle RAC.

Configurando uma Conta APEX

Para utilizar o APEX precisamos de um banco de dados Oracle igual ou superior a versão 11g, escolhemos a versão livre do Oracle chamada Oracle XE 11g R2, caso ainda não tenha instalado o Oracle em seu computador, utilize o walkthrough para seu sistema operacional:

Oracle XE – Windows : Oracle XE 11g

Oracle XE – Linux: Oracle XE 11g

1 – Abra  no seu navegador a interface de administração do Oracle utilizando o respectivo ícone “Conceitos Básicos” instalado no menu de sua interface gráfica:

Oracle - Interface de Administração Web

Oracle – Interface de Administração Web

2 – Clique no menu Application Express e entre com o usuário SYSTEM e a senha configurada na instalação do banco de dados:

SYSTEM

SYSTEM

3 – O APEX possui um ambiente rápido de desenvolvimento completo e seu conceito é baseado em Workspaces, ou seja para cada Workspace você pode ter vários usuários desenvolvendo aplicações em diferentes esquemas do banco de dados Oracle. Para cada Database User você precisa definir um Workpace e uma senha:

Database User - Workspace - Password

Database User – Workspace – Password

4 – Após seu Workpace ser criado com sucesso, um link será exibido para que você possa acessa-lo diretamente:

Workspace criado com sucesso

Workspace criado com sucesso

5 – Efetue um Login no seu Workspace para acessar a IDE de desenvolvimento de aplicações do APEX:

Workspace - Login

Workspace – Login

6 – Pronto! Você já esta conectado em seu Workspace e pronto para criar aplicações web direto do seu navegador utilizando o banco de dados Oracle:

Oracle Application Express

Oracle Application Express

O APEX é uma suíte completa de desenvolvimento Oracle para WEB utilizando PL/SQL, para saber mais sobre como criar aplicações utilizando o Oracle Application Express veja todos os post desta série.

O Oracle SQL Developer é uma versão gráfica do SQL * Plus que dá aos desenvolvedores de banco de dados uma maneira conveniente para executar tarefas básicas. Você pode conectar a qualquer destino do Oracle Database XE utilizando esquema de banco de dados padrão do Oracle. Uma vez conectado, você pode executar operações em objetos na base de dados.

Oracle SQL Developer Download: SQL Developer.

Instalando o Oracle SQL Developer no Linux openSuse

Para instalar o Oracle SQL Developer na distribuição Linux openSuse precisamos nos atentar a alguns detalhes, o primeiro é a versão do JDK, o JDK 8_25 ainda não é suportado por está versão do SQL Developer, para garantir uma instalação bem sucedida é recomendado instalar o JDK 7. Um outro detalhe é a interface GNOME, em alguns casos você pode encontrar um erro ao tentar iniciar o Oracle SQL Developer, use o comando abaixo se encontrar um erro na inicialização do SQL Developer na interface gráfica GNOME:

unset -v GNOME_DESKTOP_SESSION_ID

Instalando e Configurando o Oracle SQL Developer

Baixe o JDK 7 em seu computador utilizando o seguinte link, Oracle OpenJDK 7 tenha certeza que escolheu a opção correta, o openSuse utiliza pacotes do tipo RPM.

1 – Digite o seguinte comando no terminal do Linux :

rpm -Uhv sqldeveloper-4.0.3.16.84-1.noarch.rpm
Instalando o SQL Developer

Instalando o SQL Developer

2 – Após a instalação digite no terminal: sqldeveloper e o programa se inicializará, na primeira inicialização ele irá pedir o caminho do JDK do seu computador, o caminho é parecido com este exemplo: /usr/java/jdk1.7.0_71, após digitar o caminho do seu computador, tecle enter e o SQL Developer irá inicializar:

Oracle SQL Developer

Oracle SQL Developer

3 – Na janela de conexões clique no sinal de mais (+) para criar uma nova conexão. Em sua primeira conexão, conecte-se com o usuário system e a senha da sua instalação do Oracle:

Conexão Oracle

Conexão Oracle

4 – O banco de dados Oracle possui o conceito de Database User, isto significa que você precisa criar pelo menos um usuário para que seja o proprietário dos objetos que você pretende criar, expanda a pasta de usuários e com o botão direito crie um novo usuário:

Novo Usuário

Novo Usuário

5 – Após digitar um nome e uma senha clique na aba de atribuições concedidas e o atribua como DBA, por enquanto vamos criar somente estas configurações, clique em aplicar e feche a janela:

DBA

DBA

6 – Agora não precisamos mais da conexão feita pela usuário System, podemos nos desconectar e criar uma nova conexão utilizando o usuário que acabamos de criar. Efetue este procedimento e teste o banco de dados com o script que você encontra logo abaixo:

Testando o Database User

Testando o Database User

Importante:

Este post foi escrito para a interface gráfica Gnome do openSuse, caso utilize a KDE você deve substituir o aplicativo GEdit pelo KWrite, e quando chamar um aplicativo com GUI da linha de comando substituir o comando sudo por kdesu.

Use os scripts abaixo para testar sua conexão e seu novo Database User:

PL/SQL

-- Cria tabela
CREATE TABLE "DABERTO"."TABELATESTE" 
   (	"IDENTIFICADOR" NUMBER(10,0), 
	"NOME" VARCHAR2(30 BYTE), 
	"SOBRENOME" VARCHAR2(70 BYTE), 
	"CARGO" VARCHAR2(30 BYTE), 
	"SALARIO" NUMBER(9,2)
   );
   
   -- Insere dados na tabela
   INSERT INTO TABELATESTE
   VALUES (1, 'Oracle XE', 'openSuse', 'Desenvolvimento Aberto', 1234.56);
   
   -- Seleciona dados na tabela
   SELECT * FROM TABELATESTE;

 

O Oracle Database XE, oferece o Oracle 11g Release 2 livre para distribuição nas plataformas Windows e Linux. O suporte para esta versão é feito exclusivamente através de fóruns on-line. O Oracle 11g Express Edition, lançado em 24 de setembro de 2011, pode suportar 11 GB de dados do usuário. O Oracle Database XE é fácil de instalar e oferece um banco de dados Oracle e ferramentas para gerenciamento.

Oracle XE Download: Oracle Database Express Edition x64 – Linux

Instalando o Oracle XE no Linux openSuse

Oracle disponibiliza os pacotes da ultima versão de seu banco de dados livre apenas no formato RPM, e segundo os requerimentos do sistema no qual o Oracle XE pode ser instalado, as distribuições do Linux são: Oracle, RedHat e Suse todos na versão Enterprise, porem podemos também instalar o Oracle em versões gratuitas destas distribuições, também é possível instalar o Oracle em outros sistemas Linux que não utilizam pacotes do tipo RPM, necessitando apenas converte-los para o formato do pacote da distribuição desejada.

Instalar o Oracle XE é relativamente fácil, entretanto você precisa seguir os requisitos necessários para uma instalação sem erros, o primeiro é o tamanho do Swap do Linux, é necessário no mínimo 2048 MB ou 2 GB, o mais importante é o nome do seu computador, não pode ter caracteres especiais como “.” (ponto) ou “-” traço”, talvez você precise renomear seu computador especialmente se estiver utilizando em uma maquina virtual.

Documentação Oficial: Instalação Linux.

Checando Requisitos e Instalando

1 – Precisamos saber se você tem os requisitos necessários, vamos começar pelo nome do seu computador, caso já possua um nome adequado pule este passo. Abra como root o programa GEdit e localize o arquivo chamado HOSTNAME na pasta /etc e altere o nome do seu host para um nome adequado sem pontos ou traços:

Hostname

Hostname

2 – Precisamos também alterar nosso arquivo hosts para que o Oracle consiga resolver o nome em questão, principalmente se pretender utilizar o Oracle em uma maquina virtual, abra o GEdit como usuário root e localize o arquivo Hosts na pasta /etc e insira uma linha com o IP local e nome do computador:

Hosts

Hosts

3 – Você precisa garantir que o openSuse possui o tamanho do Swap correto, se você instalou o sistema operacional com os padrões default do instalador o seu Swap está menor do que o necessário por apenas alguns kilobytes de tamanho, efetue este procedimento para aumentar o Swap em 1024 MB e garantir a instalação:

su
dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
mkswap /root/myswapfile
swapon /root/myswapfile

4 – Se precisou efetuar a troca de nome do seu host, reinicie seu computador. Com o computador já reinicializado este é o ultimo requisito para instalar o Oracle, algumas distribuições do Linux não contem o diretório necessário em que o Oracle efetua um Touch para subir o Listner, precisamos cria-lo manualmente, não se preocupe este diretório é temporário e será excluído posteriormente:

sudo md /var/lock/subsys/listener

5 – Após o download do arquivo RPM do Oracle, descompacte-o, entre na pasta chamada Disk1 e utilize a seguinte linha de comando para a instalação:

rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
Instalando o Oracle XE

Instalando o Oracle XE

6 – Após a instalação inicie a configuração do Oracle utilizando a linha de comando a seguir, deixe todos os parâmetros padrões por enquanto e crie uma senha para o sistema:

/etc/init.d/oracle-xe configure
Configuração Oracle XE

Configuração Oracle XE

7 – Agora vamos configurar a variável de ambiente para o Oracle, iniciar o servidor e para testar vamos abrir o Sqlplus e conectar com o usuário do sistema. Digite os comandos abaixo.

Para abrir o Sqlplus você pode simplesmente digitar seu nome na busca do sistema openSuse e o ícone automaticamente aparecerá para você. Abra-o e digite connect, em seguida digite o usuário system e a senha que você configurou na instalação para se conectar:

cd /u01/app/oracle/product/11.2.0/xe/bin
./oracle_env.sh
/etc/init.d/oracle-xe start
Sqlplus

Sqlplus

8 – Pronto, o Oracle XE já está instalado e funcionando corretamente, você pode iniciar o gerenciador pelo ícone chamado conceitos básicos do Oracle que você encontra nas ferramentas do menu do openSuse:

Conceitos Básicos

Conceitos Básicos

Para saber mais sobre o Oracle XE você pode utilizar nossos exemplos para Linux ou ainda instalar uma ferramenta livre de administração e programação com interface gráfica chamada Oracle SQL Developer.

Importante:

Este post foi escrito para a interface gráfica Gnome do openSuse, caso utilize a KDE você deve substituir o aplicativo GEdit pelo KWrite, e quando chamar um aplicativo com GUI da linha de comando substituir o comando sudo por kdesu.

O Projeto openSUSE é um esforço mundial que promove o uso do Linux em todos os lugares, criando uma das melhores distribuições Linux do mundo, trabalhando junto num aberto, transparente e amigável estilo como parte de uma comunidade mundial de Software Livre e de Código Aberto. O openSUSE também é a base para os premiados produtos da Novell. O openSuse é rápido e leve e caso queira instalar em uma maquina virtual no qual rodará no seu sistema operacional nativo, siga os passos abaixo ou se desejar instalar diretamente no seu computador pule direto para o inicio da instalação do openSuse.

Oracle Virtual Box

Na ciência da computação, máquina virtual é o nome dado a uma máquina, implementada através de software, que executa programas como um computador real, também chamado de processo de virtualização.

Uma máquina virtual (Virtual MachineVM) pode ser , definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente protegida.

Máquinas virtuais são extremamente úteis no dia a dia, pois permitem ao usuário rodar outros sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa.

Virtual Machine: http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=ocomcz

O que é openSuse?

O projeto openSUSE é um programa comunitário patrocinado pela Novell. Promover o uso do Linux em todos os lugares, este programa fornece gratuitamente, acesso fácil ao openSUSE, uma distribuição Linux completa. O projeto openSUSE tem três objetivos principais:

  1. Tornar o openSUSE Linux o mais fácil para qualquer um obter e a distribuição Linux mais usada;
  2. Alavancagem Open Source de colaboração para tornar o openSUSE um ambiente de distribuição e uma área de trabalho mais usável do mundo Linux para usuários novos e experientes;
  3. Abrir e simplificar dramaticamente os processos de desenvolvimento e de empacotamento para tornar o openSUSE a plataforma de escolha para desenvolvedores Linux e fornecedores de software.

OpenSuse: https://pt.opensuse.org/

OpenSuse - Maquina Virtual

OpenSuse – Maquina Virtual

Como Configurar a Maquina Virtual?

  1. Instale e abra o software  Oracle VM VirtualBox.
  2. Clique no botão novo.
  3. Preencha o campo nome com o nome e versão do sistema operacional baixado.
  4. Na opção tipo escolha: Linux.
  5. Na opção versão escolha: a versão do sistema operacional* adequado e clique em próximo.
  6.  Escolha o tamanho da memoria RAM, recomendado 521mb e clique em próximo (se possível utilizar 2Gb).
  7. Na opção disco rígido escolha: Criar um disco virtual agora  e clique em próximo.
  8. Na opção tipo de arquivo escolha: VDI  e clique em próximo.
  9. Na opção de armazenamento escolha: Dinamicamente alocado  e clique em próximo.
  10. Informe o nome desejado para o novo disco rígido e clique criar
  11. Agora você pode ver o nome do sistema criado com o status desligado.
  12. clique no sistema operacional e em configurações.
  13. Clique na opção: Armazenamento.
  14. Clique na opção: Controladora de IDE
  15. Clique no ícone em forma de DVD com um sinal de mais verde.
  16. Clique no botão escolher disco e escolha o sistema operacional baixado (.ISO do openSuse).
  17. Click no botão OK.
  18. Clique na seta verde: Iniciar.

Pronto a maquina Virtual ira iniciar e dar o boot no DVD virtual que criamos com o arquivo .ISO.


Erros Comuns – Maquina Virtual

ISO do openSuse possui as duas opções de instalação 32 e 64 bit,  atente-se a versão correta, pois utilizaremos outros produtos existentes somente para a arquitetura x64. Se você não enxerga nenhum sistema operacional x64 no VirtualBox, siga as instruções de correção ou veja o FAQ para saber se seu computador suporta virtualização. A imagem abaixo possui a opção correta para sistemas 64 bit:

OpenSuse - x64

OpenSuse – x64

 

Plataforma: Oracle Virtualbox  no Windows 8 atualizado e Windows 8.1:

Causa:

O pacote de atualização de vunerabilidade do Hyper-V: http://support.microsoft.com/kb/2893986/pt-br

Sintomas:

O Virtualbox não habilita os sistemas operacionais  x64 na lista de opções.

O Virtualbox não habilita configurar mais de um processador.

O Virtualbox desabilita a aba aceleração.

Motivo:

O Windows retém recurso do Hyper-V para si próprio desabilitando o uso em outros softwares como o Oracle VirtualBox Machine.

Correção:

Abrir o CMD (prompt de comando do DOS) como administrador e digitar o seguinte comando:

bcdedit /set hypervisorlaunchtype off

Reiniciar o computador.

Outros Possíveis Erros Oracle VM

  • Virtualização desabilitada na BIOS do computador.
  • Virtualização não suportada pelo computador.
  • Outros softwares de virtualização utilizando os recursos VT-X/AMD-V.

Para solucionar estes e outros erros consulte este link: Oracle VM Box FAQ.


Como Instalar o openSuse?

Para quem ainda não conhece os atuais sistemas operacionais baseados em Linux com certeza deve ter ouvido sobre como é difícil executar uma instalação do mesmo. Prepare-se agora você vai testemunhar que isto não passa de um mito e melhor ainda, a instalação do openSuse é mais fácil e mais rápida do que instalar por exemplo o Windows 7 ou 8.

Se você seguiu os passos de como criar a maquina virtual você tem uma janela com o boot openSuse carregado, caso queira instalar sem uma maquina virtual, inicie os passos aqui:

1 – Assim que inicializar a maquina virtual o boot será lido, escolha Installation:

Instalação

Instalação

2 – Selecione seu idioma e clique em próximo:

Idioma e Teclado

Idioma e Teclado

3 – Escolha nova instalação e clique em próximo:

Nova instalação

Nova instalação

4 – Escolha seu fuso-horário e clique em próximo:

Fuso-horario

Fuso-horário

5 – Escolha a interface gráfica de sua preferencia KDE, Gnome ou a interface que preferir:

Interface grafica

Interface gráfica

6 – Escolha as partições de disco e Swap do Linux, para nosso proposito precisamos de no mínimo 2GB de Swap, que é o padrão do openSuse:

Partições

Partições

7 – Crie seu usuário e senha e também configure uma senha para o usuário root:

Usuário e root

Usuário e root

8 – Confira o resumo de sua instalação e clique em instalar:

Resumo

Resumo

9 – Aguarde o andamento da instalação e atente-se a reinicialização devido ao boot que você configurou na maquina virtual:

Instalando...

Instalando…

Obs: Não esqueça que você configurou um DVD virtual com a instalação do openSuse e o boot ira inicializar o instalador novamente, você precisa fechar a maquina virtual, clicar o no disco ISO criado, botão direito remover e iniciar o sistema outra vez.

10 – Após a reinicialização o openSuse irá configurar automaticamente seu sistema operacional, aguarde e estará pronto para uso:

Configuração Automatica

Configuração Automática

11 – Você já pode utilizar sua distribuição Linux openSuse:

Linux - openSuse

Linux – openSuse

Resolução WideScreen na Maquina Virtual:

Após a instalação completa da maquina virtual, você pode ver que a tela possui a uma resolução de 1024×768  mas para ajuste total da tela widescreen é necessário uma resolução de 1366×768, para mudar isso siga os seguintes passos:

  1. Abra  a maquina Virtual.
  2. Efetue login no openSuse.
  3. No menu dispositivos clique em:  Instalar adicionais para convidado.
  4. Desligue a maquina virtual.
  5. ligue novamente já com o monitor widescreen.

Resolução da tela após atualizar o openSuse:

Após atualizar o openSuse em alguns casos você precisa reinstalar os adicionais para convidado do Virtual Box para que a resolução da tela volte ao formato widescreen, para isto siga os seguintes passos:

  1. Entre no dispositivo de media do Virtual Box:  /media/user/VBOXADDITIONS_x.x.xx.xxxxx
  2. rode o seguinte arquivo: sudo sh ./VBoxLinuxAdditions.run

Parabéns e bem vindo ao mundo Linux.


O que fazer depois de instalar o openSuse?

Após instalar o openSuse talvez você queira saber mais sobre o que instalar e como programar para o sistema operacional Linux então você pode clicar aqui.

O Apache Maven é uma ferramenta de gerenciamento de projetos de software e compreensão de pacotes. Baseado no conceito de um modelo de objeto do projeto (POM), O Maven pode gerir um projeto de construção (compilação), elaboração de relatórios e documentação de uma única central de informações.

Um Project Object Model, fornece todas as configurações para um único projeto. A configuração geral cobre o nome do projeto, seu proprietário e suas dependências de outros projetos. Também pode configurar fases individuais do processo de construção, que são implementados como plug-ins. Projetos maiores poderiam ser divididos em vários módulos, ou subprojetos, cada um com seu próprio POM. Cada um pode então escrever um POM raiz através do qual pode-se compilar todos os módulos com um único comando.

O Maven utiliza templates chamados de Archetypes ou arquétipos que são um conjunto de ferramentas de modelagem do projeto Maven. Um arquétipo é definido como um padrão ou modelo inicial a partir da qual todos os outros objetos do mesmo tipo são feitos contemplando as melhores praticas para cada modelo. Os Arquétipos ajudam autores a criar modelos de projeto Maven para os usuários, e oferece aos usuários os meios para gerar versões parametrizadas desses modelos de projeto.

Para instalar o Maven e o M2Eclipse: clique aqui

Criando Uma Aplicação Web com Maven

Após instalar e testar o Apache Maven em seu sistema operacional e também ter instalado o plug-in para utilização do Maven no Eclipse, vamos criar um primeiro projeto Maven para nos aproximar desta ferramenta. Estes projeto vai cobrir primeiramente as funcionalidades básicas do Maven, se você abrir o arquivo pom.xml na raiz do projeto, você verá que existe uma dependência padrão do JUnit.

O JUnit é um framework que nos possibilita realizar testes unitários em nossos programas Java. Por enquanto não vamos utilizar mais nenhuma dependência do Maven pois adicionaremos outras dependências gradualmente assim que utilizarmos outros frameworks em nossa aplicação, vamos utilizar um arquétipo e seu recurso de compressão no formato WAR para que possamos efetuar um Deploy da aplicação na instancia principal do Tomcat.

1 – Clique em File-> New -> Other procure e expanda a pasta Maven, selecione Maven Project e clique em Next:

Maven Project

Maven Project

2 – Aqui você pode configurar a localização do seu projeto, deixe o padrão e clique em Next:

Local do Projeto

Local do Projeto

3 – Esta tela nos possibilita escolher entre vários tipos de arquétipos do Maven, escolha maven-archetype-webapp e clique em Next:

Maven Archetype

Maven Archetype

4 – Preencha os parâmetros para seu arquétipo, basicamente você vai utilizar a convenção utilizada para pacotes Java e um nome de projeto (DaMaven) e clique em Finish quando terminar de preencher os parâmetros, utilize a figura abaixo para referencia:

Propriedades do Arquetipo

Propriedades do Archetype

5 – Assim que o projeto for criado você percebe que há um erro, por falta de dependência: “The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path“. Precisamos configurar o projeto para suprir as configurações necessárias. Clique com o botão direito do mouse em cima do projeto e escolha propriedades:

Configuração do projeto

Configuração do projeto

6 – Na janela de propriedades selecione a opção Java Build Path -> Add Library…-> Server Runtime e clique em Next:

Propriedades

Propriedades

7 – Clique em Apache Tomcat e clique em Finish:

Apache Tomcat

Apache Tomcat

8 – Seu projeto já possui todos os requisitos necessários. Abra a pagina index.jsp e utilize o código abaixo e rode o programa:

Testando Aplicação

Testando Aplicação

9 – Com a aplicação já testada, vamos compilar o projeto utilizando o Maven para que seja gerado um arquivo de pacote com nossa aplicação no formato War que será utilizado para efetuar um Deploy no servidor Tomcat. Na barra de ferramentas clique nas opções de compilação e escolha Maven Build:

Maven Build

Maven Build

10 – Na configuração de compilação em Goals, digite: clean install e clique em Run:

Configuração do Build

Configuração do Build

11 – Após o Build bem sucedido, abra a pasta Target e você verá o arquivo comprimido com nossa aplicação DaMaven.war.

Target - DaMaven.war

Target – DaMaven.war

12 – É isso! O Maven já cumpriu seu primeiro proposito, agora fora do Eclipse vamos importar este arquivo para o servidor Tomcat, certifique-se que a instancia principal do Tomcat está rodando em seu computador:

Configuração Tomcat - Instancia Principal

Configuração Tomcat – Instancia Principal

13 – Abra a instancia local do Tomcat no seu navegador:

Tomcat - Localhost

Tomcat – Localhost

14 – Clique em Manager App para acessar as configurações do seu servidor, digite seu login e senha. Em Deploy escolha a opção War File Deploy e acesse o seu arquivo DaMaven.war compilado pelo Maven no Eclipse, o arquivo esta localizado na pasta Target no diretório do seu projeto:

War File Deploy

War File Deploy

15 – Após o Deploy sua aplicação já esta na lista de aplicações do servidor Tomcat e pode ser manuseada:

Lista de Aplicações Web - Tomcat

Lista de Aplicações Web – Tomcat

16 – Para abrir clique no link da sua aplicação ou digite seu nome no seu navegador:

DaMaven - WebApp - Projeto Maven

DaMaven – WebApp – Projeto Maven

Exemplo:

Neste exemplo criamos um projeto Maven com o Archetype do tipo WebApp, sua dependência padrão é do JUnit, responsável por testes unitários na aplicação Java, que por padrão já comtempla  está dependência, compilamos o projeto básico e utilizamos o arquivo compresso de extensão War para efetuar um deploy da aplicação pronta no servidor Tomcat.

JSP – index.jsp

<!DOCTYPE html>
<html>
<head>
<style>
#header {
    background-color:DarkGreen;
    color:white;
    text-align:center;
    padding:5px;
}
#nav {
    line-height:30px;
    background-color:#eeeeee;
    height:400px;
    width:100px;
    float:left;
    padding:5px;
}
#section {
    width:450px;
    float:left;
    padding:10px;
}
#footer {
    background-color:DarkGreen;
    color:white;
    clear:both;
    text-align:center;
   padding:5px;
}
h2 {color: DarkGreen}

</style>
</head>

<body>

<div id="header">
<h1>Desenvolvimento Aberto</h1>
</div>

<div id="nav">
Java<br>
Maven<br>
JSP<br>
JPA<br>
JSF<br>
Servlet<br>
Spring<br>
Hibernate<br>
Tomcat<br>
Oracle DB<br>

</div>

<div id="section">
<h2>Desenvolvimento Aberto</h2>
<p>
Desenvolvimento Aberto é uma organização voltada para o aprendizado e discussão de técnicas de
desenvolvimento focado em algumas linguagens de programação sendo parcialmente/totalmente abertas
ou com licenças gratuitas para desenvolvedores de cada uma de suas respectivas marcas registradas.
</p>
<p>
Desenvolvimento Aberto foi escrito e desenvolve utilizando ferramentas gratuitas disponibilizadas
pelas melhores empresas de software da atualidade, incluindo a própria hospedagem e design deste
site, sendo assim, também proporciona conteúdo gratuito, isso quer dizer que você não paga nada
para aprender e utilizar as tecnologias de ponta que podem ser manuseadas através das linguagens
de programação mais requisitadas pelas empresas no mercado atual.
</p>
</div>

<div id="footer">
Desenvolvimento Aberto © desevolvimento.aberto@live.com
</div>

</body>
</html>

Frequentemente você vai precisar manipular dados entre paginas ASP.NET, por exemplo, passar a informação da página de origem para uma página de destino. Geralmente, você pode ter uma página onde os usuários podem selecionam itens para comprar ou qualquer outra operação e quando os usuários enviam a página e você quer chamar outra página que pode processar ou exibir as informações que o usuário inseriu. Existem alguns modos de criar este efeito, nós vamos misturar as técnicas de codificação ASP.NET chamadas CodeBehind e In-line e utilizar propriedades publicas passadas através do Server.Transfer e da diretiva PreviousPageType.

Passando Parâmetros Entre Duas Paginas ASPX

Crie uma solução Web dinâmica chamada DaWeb003 em um projeto do tipo C# Empty e adicione uma pagina WebForms chamada default.aspx e outra chamada resultado.aspx. Defina a pagina default como pagina inicial da sua aplicação utilizando o botão direito na janela Solution Explorer e escolhendo a opção Set As Start Page.

1 – Para criar os objetos, na pagina inicial você pode primeiro criar uma tag <h2> e um objeto HTML chamado FieldSet, e então adicionar os componentes ASP.NET dentro dele, utilize dois Labels, dois DropDownList e um Button, você pode utilizar o Design para preencher as propriedades de seu DropDown ou pode apenas utilizar o código correspondente encontrado logo abaixo:

Design - ASPX

Design – ASPX

2 – A pagina inicial da aplicação oferece duas combinações na qual você pode selecionar, as opções pertencem umas as outras e o código na pagina C# CodeBehind processa a camada de negocio, avalia os resultados e os envia para a pagina de resultado:

C# - Codebehind

C# – Codebehind

2 – O Processo envia três parâmetros para a pagina ASPX, dois são os parâmetros que você escolheu, somente a nível de descrição, pois o processamento já foi efetuado na pagina anterior, o terceiro parâmetro é o resultado da combinação escolhida, que é nada mais que uma propriedade publica criada na própria classe da pagina principal e enviada para a pagina de resultado através de uma declaração Server.Transfer e recebida através de uma diretiva PreviousPageType referenciando a pagina origem para que a mensagem possa ser corretamente exibida para o usuário utilizando ainda a técnica de código C# na pagina ASPX chamada de In-line:

Diretiva PrevioiusPageType e In-Line Code

Diretiva PrevioiusPageType e In-Line Code

Exemplo:

Neste exemplo criamos duas paginas ASPX e utilizamos o CodeBehind no qual processa um resultado para uma seleção do usuário e o exibe através de parâmetros e uma propriedade publica. Os dados são processados na pagina de resultado por meio de código In-line.

ASPX- default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="DaWeb003._default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Desenvolvimento Aberto - Passando Parâmetros Entre Paginas</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2>Desenvolvimento Aberto - Passando Parâmetros</h2>
        <br />
      <fieldset>
      <legend>Escolha o vocalista da banda correspondente:</legend>
        <br />
        <br />
        Escolha um vocalista:<br />
        <asp:DropDownList ID="DropDownList1" runat="server" Width="200px">
            <asp:ListItem>Eddie Vedder</asp:ListItem>
            <asp:ListItem>Kurt Cobain</asp:ListItem>
            <asp:ListItem>Scott Weiland</asp:ListItem>
            <asp:ListItem>Layne Staley</asp:ListItem>
        </asp:DropDownList>
        <br />
        <br />
        Escolha a banda:<br />
        <asp:DropDownList ID="DropDownList2" runat="server" Width="200px">
            <asp:ListItem>Stone Temple Pilots</asp:ListItem>
            <asp:ListItem>Alice in Chains</asp:ListItem>
            <asp:ListItem>Nirvana</asp:ListItem>
            <asp:ListItem>Pearl Jam</asp:ListItem>
        </asp:DropDownList>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Enviar" />
        <br />
        <br />
    </fieldset>
    </div>
    </form>
</body>
</html>

C#- default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DaWeb003
{
    public partial class _default : System.Web.UI.Page
    {

        // Declara variáveis para os parâmetros
        private string nome;
        private String banda;
        private Boolean valida = false;

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        // Define uma propriedade para transferencia
        public Boolean  Resultado
        {
            get
            {
                return valida;
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {

            // Recupera parametros
            nome = Request.Form["DropDownList1"];
            banda = Request.Form["DropDownList2"];

            // Se nome e banda são iguais OK ou proxima tentativa senão falso
            if ((nome.Equals("Eddie Vedder") && banda.Equals("Pearl Jam")) ||
                (nome.Equals("Kurt Cobain") && banda.Equals("Nirvana")) ||
                (nome.Equals("Scott Weiland") && banda.Equals("Stone Temple Pilots")) ||
                (nome.Equals("Layne Staley") && banda.Equals("Alice in Chains")))
            {
                valida = true;
            }

            // Transfere dados para a pagina de resultado
            Server.Transfer("resultado.aspx");

        }
    }
}

ASPX- resultado.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="resultado.aspx.cs" Inherits="DaWeb003.resultado" %>

<!-- Diretiva que aponta para a pagina origen -->
<%@ PreviousPageType VirtualPath="~/default.aspx" %> 

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Desenvolvimento Aberto - Resultado</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <h2>Desenvolvimento Aberto - Resultado</h2>
        <%
            Boolean resultado = PreviousPage.Resultado;
            String nome       = PreviousPage.Request.Form["DropDownList1"];
            String banda = PreviousPage.Request.Form["DropDownList2"];

            if (resultado)
            {
                Response.Write("Você acertou!!! O vocalista: " + nome + " pertence a banda: " + banda);
            }
            else
            {
                Response.Write("Você errou!!! O vocalista: " + nome + " não pertence a banda: " + banda);
            }

        %>
    </div>
    </form>
</body>
</html>

No contexto de um Servlet é possível definir um objeto que recebe as solicitações do cliente e envia-os para qualquer recurso (como um outro servlet, arquivo HTML ou arquivo JSP) no servidor. O container do servlet cria o objeto RequestDispatcher, que é usado como um wrapper em torno de um recurso de servidor localizado em um determinado caminho ou dado por um nome particular. Este método permite que um servlet faça o processamento preliminar de um pedido e outro recurso gere a resposta.

Passando Parâmetros Entre um Servlet e Duas Paginas JSP

Crie uma aplicação Web dinâmica chamada DaWeb002 e uma pagina JSP chamada index.jsp e outra chamada resultado.jsp. Crie um Servlet com o método service chamado MeuResultado, utilize o código abaixo para completar cada respectivo arquivo.

1 – A pagina inicial da aplicação oferece duas combinações na qual você pode selecionar, as opções pertencem umas as outras e o Servlet processa a camada de negocio, avalia os resultados e os envia para a pagina de resultado:

Passando Parâmetros

Passando Parâmetros

2 – O Servlet envia três parâmetros para a pagina JSP, dois são os parâmetros que você escolheu, somente a nível de descrição, pois o processamento já foi efetuado no servlet, o terceiro parâmetro é o resultado da combinação escolhida é uma variável criada no próprio servlet e enviada para a pagina de resultado para que a mensagem possa ser corretamente exibida para o usuário utilizando ainda um código Java através de um Scriptlet:

Exibe Resultado

Exibe Resultado

Exemplo:

Neste exemplo criamos duas paginas JSP e um Servlet no qual processa um resultado para uma seleção do usuário e o exibe através de parâmetros processados na pagina de resultado por meio de Scriptlet.

JSP – index.jsp

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Desenvolvimento Aberto</title>
</head>
<body>
<p>
        <!-- Este é o modo de escrever código Java em uma pagina html -->
        <!-- utilize a marcação abaixo: -->
        <%
            out.println("Desenvolvimento Aberto - Usando Servlets");
        %>
    </p>
    <br />
    <form action="MeuResultado">
        <fieldset>
            <legend>Escolha o vocalista da banda correspondente:</legend>

            <br /> Vocalistas:  <br />

            <select name="vocalistas">
                    <option value="Eddie Vedder">Eddie Vedder</option>
                    <option value="Kurt Cobain">Kurt Cobain</option>
                    <option value="Scott Weiland" selected>Scott Weiland</option>
                    <option value="Layne Staley">Layne Staley </option>
            </select> <br>
            <br /> Bandas: <br /> 

            <select name="bandas">
                    <option value="Stone Temple Pilots">Stone Temple Pilots</option>
                    <option value="Alice in Chains">Alice in Chains</option>
                    <option value="Nirvana" selected>Nirvana</option>
                    <option value="Pearl Jam">Pearl Jam</option>
            </select> <br></br> 

            <input type="submit" value="Enviar">
        </fieldset>
    </form>
</body>
</html>

JSP – resultado.jsp

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Desenvolvimento Aberto - Resultado</title>
</head>
<body>
<!-- Imprime Resultado -->
 <h2>Desenvolvimento Aberto - Resultado</h2>
 <%

    boolean valida = (boolean) request.getAttribute("valida");
    String  nome   = (String)  request.getAttribute("vocalistas");
    String  banda  = (String)  request.getAttribute("bandas");

    if (valida == true)
    {
    	out.println("Você acertou!!!");
    	out.println("O vocalista: " + nome + " pertence a banda: " + banda);
    }
    else
    {
    	out.println("Você errou!!!");
    	out.println("O vocalista: " + nome + " não pertence banda: " + banda);
    } 

 %>
</body>
</html>

Java – MeuResultado.java

package org.desenvolvimento.aberto;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MeuResultado")
public class MeuResultado extends HttpServlet {
	private static final long serialVersionUID = 1L;       

    public MeuResultado() {
        super();

    }

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		// Validador do resultado
		boolean valida = false;

        // Recupera parametros
        String nome = request.getParameter("vocalistas");
        String banda = request.getParameter("bandas");

        // Se nome e banda são iguais OK ou proxima tentativa senão falso
        if ((nome.equals("Eddie Vedder") && banda.equals("Pearl Jam")) ||
        	(nome.equals("Kurt Cobain") && banda.equals("Nirvana")) ||
        	(nome.equals("Scott Weiland") && banda.equals("Stone Temple Pilots")) ||
        	(nome.equals("Layne Staley") && banda.equals("Alice in Chains")))
        {
        	valida = true;
        }

        // Verifica saida no console
        System.out.println(nome);
        System.out.println(banda);
        System.out.println(valida);

        // Define parametros para a sessão
        request.setAttribute("vocalistas", nome);
        request.setAttribute("bandas", banda);
        request.setAttribute("valida", valida);

        // Chama pagina de resposta
        getServletContext().getRequestDispatcher("/resultado.jsp").forward(request, response); 

	}

}

O protocolo HTTP define oito métodos (GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS e CONNECT) que indicam a ação a ser realizada no recurso especificado. O método determina o que o servidor deve fazer com a URL fornecida no momento da requisição de um recurso.  O . NET Framework é muito similar ao conceito da maquina virtual Java, entretanto a linguagem Java Enterprise Edition nos possibilita criar aplicativos Java que rodam em um servidor de aplicação Java através do encapsulamento de métodos do protocolo HTTP chamados Servlets que lida com as solicitações HTTP padrão, enviando-os para os métodos de manipulador para cada tipo de solicitação HTTP utilizando uma classe Java em uma aplicação para exibir uma pagina web, sem utilizar uma pagina web estática, o conceito de CodeBehind do ASP.NET necessita que uma classe C# rode atrás de pelo menos uma pagina ASPX.

Deste modo o Microsoft ASP.NET não fornece um equivalente direto para a classe servlet. Em vez disso, existem duas alternativas. A primeira alternativa, que é usado pelo Assistente de Conversão de Linguagem Java (JLCA), é encapsular a funcionalidade de um servlet no code-behind de uma página ASP.NET não gráfica. A outra alternativa é o de criar um novo HttpHandler e dirigir um pedido de URL para uma classe especificada. O HTTPHandler é realmente o mais perto da nova funcionalidade do filtro na especificação servlet.

Se você deseja fornecer sua própria implementação de servlets, você precisa criar uma página WebForm. No entanto, você vai estender a classe de pagina e na maioria dos casos, você simplesmente vai incluir a funcionalidade do seu servlet dentro do método Page_Load(). Mas se você deseja examinar o tipo de solicitação HTTP e sua respectiva resposta, você pode criar métodos similares ao métodos de um Servlet. Mais informações sobre ASP.NET e técnicas de migração:

ASP.NET – Java Servlet: http://msdn.microsoft.com/en-us/library/aa478987.aspx

Métodos doGet e doPost

Basicamente você utiliza o método doGet sempre que a requisição que você faz não altere o estado do servidor, como uma consulta, uma busca e etc. O método doPost envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. Os dados são incluídos no corpo do comando.

Utilizando os métodos doGet e doPost

1 – Crie uma aplicação do tipo ASP.NET Web Application com o modelo C# Empty e chame seu projeto de DaWeb002, crie uma nova pagina WebForms chamada default. Na pagina default.aspx comente todo o código HTML exceto a primeira linha, veja a figura abaixo:

WebForm - default.aspx

WebForm – default.aspx

2 – Na implementação do código C# da pagina, vamos simular uma aplicação Web que utiliza os métodos do protocolo HTTP, utilize o código abaixo para completar seu código gerado automaticamente. Rode o programa, como você pode ver nós criamos uma pagina html através do método doGet, ele é automaticamente disparado assim que o servidor processa a url da nossa aplicação 

doGet - url - ASP.NET

doGet – url – ASP.NET

3 – Porem, o método doGet é utilizado para passar informações do navegador para o servidor, isto significa que vamos efetuar uma requisição Client-Server, vamos passar um parâmetro através do nosso browser para que o valor seja processado no servidor de aplicação ASP.NET, vamos fazer isto de um modo manual. O método para se passar parâmetros para o servidor é utilizando o caractere de “?” (interrogação) seguido sem espaço pelo nome do parâmetro adicionado do sinal de “=” (igual) e o valor desejado, caso haja mais que um parâmetros separe-os como o caractere “&” (E comercial ou Ampersand). Apenas adicione o parâmetro no final na URL gerada pelo seu navegador, atente-se a porta do seu servidor web:

http://localhost:29193/default.aspx?Parametro1=Meu parametro teste

Assim que a aplicação executar o método doGet novamente ela vai automaticamente identificar o parâmetro utilizando na requisição GET e imprimir uma linha na pagina HTML.

Aplicação - WebForm

Aplicação – WebForm

4 – O método doPost é disparado quando você clica no botão do formulário html e a ação solicita uma requisição a aplicação, o nosso método apenas imprime uma linha no navegador:

Servlet - doPost

Servlet – doPost

Exemplo:

Neste exemplo nos criamos uma aplicação web dinâmica simulando um Servlet Java e utilizamos os métodos doGet e doPost estendendo a classe da pagina. Utilizamos também a manipulação simples de um parâmetro para a requisição doGET.

Para ver esta mesma aplicação utilizando um Java Servlet: clique aqui.

Html – aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="DaWeb002._default" %>

<!--

<!DOCTYPE html>

*** Comentar as todas instruções da pagina ASP.NET - WebForm ***

    Não comente a primeira linha pois a pagina é utilizada sob o
    conceito CodeBehind e necessita da ligação da pagina ao arquivo
    de código fonte csharp: CodeBehind="default.aspx.cs"

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

--!>

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DaWeb002
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.HttpMethod.Equals("GET"))
            {
                // HTTP transfere dados quando o método é "GET"
                doGet();
            }
            if (Request.HttpMethod.Equals("POST"))
            {
                // HTTP transfere dados quando o método é "POST"
                doPost();
            }
        }

        // Executa método HTTP GET
        private void doGet()
        {
            String meuHtml = "<html xmlns=\"http://www.w3.org/1999/xhtml\">" +
                           "<head><title>Desenvolvimento Aberto</title></head>" +
                           "<body>" +
                           "<h1>Desenvolvimento Aberto</h1> <br />" +
                           "<h3>C# - HTTP GET - doGet</h3>" +
                           "Pagina criada pelo metodo do GET <br />" +

                           // Para que o método post seja disparado
                           // o form precisa saber o método - method="post"
                           // também funciona com o metodo get

                           "<form id=\"form1\" runat=\"server\" method=\"post\"> <br />" +
                           "<input type=\"submit\" value=\"Enviar\">" +
                           "</form>" +
                           "</body>" +
                           "</html>";

            Response.Write(meuHtml);

            string parametro = Request.QueryString["Parametro1"];

            if (parametro != null)
            {
                Response.Write("O parametro digitado foi: " + parametro);
            }

        }

        // Executa método HTTP POST
        private void doPost()
        {
            Response.Write("O método POST foi disparado!!!!");
        }
    }
}

Servlet – Entendendo o doGet e doPost – Java

Publicado: 13 de outubro de 2014 em Java

O protocolo HTTP define oito métodos (GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS e CONNECT) que indicam a ação a ser realizada no recurso especificado. o método determina o que o servidor deve fazer com a URL fornecida no momento da requisição de um recurso. A classe HTTPServlet Fornece uma classe abstrata para ser uma subclasse de um servlet HTTP adequados a um website. A subclasse de HTTPServlet deve substituir pelo menos um método, normalmente um deles é doGet, se o servlet suporta solicitações HTTP GET ou  doPost, para solicitações HTTP POST ou os outros método suportados pela classe HTTPServlet.

HTTPServlet: http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServlet.html

Basicamente você utiliza o método doGet sempre que a requisição que você faz não altere o estado do servidor, como uma consulta, uma busca e etc. O método doPost envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. Os dados são incluídos no corpo do comando.

Utilizando os métodos doGet e doPost

1 – Crie uma aplicação do tipo Dynamic Web Project e chame seu projeto de DaServlet001, crie um novo Servlet chamado MeuServlet, você pode deixar que ele herde os métodos padrões do Wizard da IDE Eclipse que são o doGet e  o doPost, copie o programa abaixo e rode sua aplicação:

Servlet - doGet e doPost

Servlet – doGet e doPost

2 – Como você pode ver nós criamos uma pagina html através do método doGet, ele é automaticamente disparado assim que o servidor processa a url da nossa aplicação :

doGet - url - servlet

doGet – url – servlet

3 – Porem, o método doGet é utilizado para passar informações do navegador para o servidor, isto significa que vamos efetuar uma requisição Client-Server, vamos passar um parâmetro através do nosso browser para que o valor seja processado no servidor de aplicação Java, vamos fazer isto de um modo manual. O método para se passar parâmetros para o servidor é utilizando o caractere de “?” (interrogação) seguido sem espaço pelo nome do parâmetro adicionado do sinal de “=” (igual) e o valor desejado, caso haja mais que um parâmetros separe-os como o caractere “&” (E comercial ou Ampersand). Coloque a seguinte url e digite a tecla enter, mas atente-se a porta correta do seu servidor Tomcat:

http://localhost:9080/DAServlet001/MeuServlet?Parametro1=Meu parametro de teste

Assim que o Servlet executar o método doGet novamente ele vai automaticamente identificar o parâmetro utilizando na requisição GET e imprimir uma linha na pagina HTML.

Parâmetros - doGet

Parâmetros – doGet

4 – O método doPost é disparado quando você clica no botão do formulário html e a ação solicita uma requisição ao Servlet, o nosso método apenas imprime uma linha no navegador:

Servlet - doPost

Servlet – doPost

Exemplo:

Neste exemplo nos criamos uma aplicação web dinâmica e um Servlet e utilizamos os métodos doGet e doPost da classe HTTPServlet. Utilizamos também a manipulação simples de um parâmetro para a requisição doGET.

Java

package org.desenvolvimento.aberto;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MeuServlet
 *
 * Classe do Servlet
 */
@WebServlet("/MeuServlet")
public class MeuServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     *
     * Construtor do Servlet
     */
    public MeuServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 *
	 * Método GET
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String meuHtml = "<html xmlns=\"http://www.w3.org/1999/xhtml\">" +
						 "<head><title>Desenvolvimento Aberto</title></head>" +
						 "<body>" +
						 "<h1>Desenvolvimento Aberto</h1> <br />" +
						 "<h3>Java - Servlet - doGet</h3>" +
						 "Pagina criada pelo metodo do Servlet <br />" +

						 // Para que o método post seja disparado
						 // o form precisa saber o método - method="post"
						 // também funciona com o metodo get

						 "<form action=\"MeuServlet\" method=\"post\"> <br />" +
						 "<input type=\"submit\" value=\"Enviar\">" +
						 "</form>" +
						 "</body>" +
						 "</html>";

		PrintWriter imprimir = response.getWriter();

		imprimir.println(meuHtml);      

		// Recupera Parametros da URL

		String parametro = request.getParameter("Parametro1");	

		if (parametro != null )
		{
			imprimir.println("O parametro digitado foi: " + parametro);
		}

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 *
	 * Método POST
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		PrintWriter imprimir = response.getWriter();

		imprimir.println("Método POST foi disparado!");
	}

}