Arquivo de outubro, 2014

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!");
	}

}

O ASP.NET é um framework web livre para a construção de sites e aplicativos da Web usando HTML, CSS e JavaScript. Você também pode criar APIs Web, sites móveis, utilizar as tecnologias em tempo real como Web Sockets e muito mais. O Framework ASP.NET oferece três modelos para a criação de aplicações para a internet: Web Forms, ASP.NET MVC e páginas da Web ASP.NET. Todos os três modelos são estáveis ​​e maduros, e você pode criar grandes aplicações web com qualquer um deles. Não importa o framework que você escolher, você vai ter todos os benefícios e recursos do ASP.NET em todos os lugares.

Cada Framework tem como alvo um estilo de desenvolvimento diferente. O que você escolher depende de uma combinação de seus ativos de programação (conhecimento, habilidades e experiência em desenvolvimento), o tipo de aplicação que você está criando, segundo a Microsoft todos os três modelos serão apoiados, atualizados e melhorados em futuras versões do ASP.NET.

Para programar gratuitamente utilizando o framework ASP.NET utilize o Visual Studio Express for Web:

VS Express Web: http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-web

Sobre ASP.NET e a Microsoft

Como sabemos a Microsoft é uma empresa de softwares proprietários ou seja sistemas que não estão sobre uma licença aberta, então é muito comum novos desenvolvedores ou até desenvolvedores experientes que migraram das antigas tecnologias do Windows para o .NET Framework pensarem que toda tecnologia e as técnicas que estão utilizando são de propriedade da Microsoft, mas não são, a maioria dos padrões estabelecidos que você usa quando utiliza o .NET Framework não são da Microsoft, por exemplo, o .NET Framework e a linguagem de programação C# são muito, mas muito parecidos com a tecnologia Java, utilizando vários de seus padrões, se analisarmos os programas mais básicos quase não se nota diferença de sintaxe e quando a sintaxe é diferente os objetos ainda possuem um proposito muito semelhantes. Utilize o link a seguir para saber sobre este assunto:

C# para desenvolvedores Java: http://msdn.microsoft.com/en-us/library/ms228602(v=vs.90).aspx

Com o ASP.NET a coisa funciona do mesmo jeito só que um pouco mais acentuado, pois a internet utiliza vários padrões e tecnologias de código aberto, tornando o ASP.NET dependente destas tecnologias e padrões para se tornar competitivo, entre os mais básicos estão o HTML, CSS, Javascript até os padrões e frameworks mais avançados como os que estão sob a licença Apache (principal concorrente do servidor web Microsoft para ASP.NET o IIS). Entre estas tecnologias e padrões estão também os Design Patterns como o MVC, isto, MVC não é uma tecnologia da Microsoft e nem é uma tecnologia em si, e sim um Desing Pattern, para que você tenha uma ideia o Pattern MVC existe desde 1979  e após ser amplamente utilizado por vários frameworks de código aberto, só em 2009 foi adotado pela Microsoft, como uma novidade para a tecnologia ASP.NET:

Para saber mais sobre as tecnologias e padrões externos do ASP.NET utilize o link a seguir:

ASP.NET Open Source: http://www.asp.net/open-source

Criando uma Aplicação ASP.NET com C#

Quando você cria uma aplicação ASP.NET pelos Templates do Visual Studio, é gerado uma aplicação completa, utilizando vários elementos da tecnologia ASP.NET, no entanto as paginas ASP.NET são um pouco mais pesadas do que outras tecnologias da web, para resolver este problema você pode criar projetos à partir de modelos vazios ou utilizar alguns frameworks baseados em javascript, caso tenha intuito de fazer uma aplicação rápida e enxuta. Para criar uma aplicação ASP.NET a partir do zero siga os seguintes passos:

1 – Abra o Visual Studio e crie um novo projeto C# para web do tipo ASP.NET Web Application, dê um nome para sua solução e clique em OK:

Web Application

Web Application

2 – Escolha um projeto C# Empty (vazio) e clique em OK:

Projeto Vazio

Projeto Vazio

3 – Para criar uma pagina Aspx, clique no seu projeto com o botão direito na janela Solution Explorer e selecione ADD, Webform. Uma pagina XHTML com código HTML básico será criado para você. A IDE para ASP.NET é muito semelhante aos Windows Forms, utilizando as abas Design e Code para alternar entre a IDE Visual e a IDE de código ou ainda Split, para ter as duas visões ao mesmo tempo. Utilize o código HTML abaixo para completar seu código gerado automaticamente:

Página ASP.NET

Página ASP.NET

4 – O ASP.NET utiliza um conceito de Code-Behind, a cada pagina ASPX você tem uma classe com código C#, isso permite uma separação limpa de seu HTML de sua lógica de apresentação e também o conceito de código in-line que é o código que está incorporado diretamente dentro da página ASP.NET. Uma pagina WebForms nada mais é que uma pagina ASPX que utiliza FORM HTML e também componentes criados pelo framework WebForms do ASP.NET. Vamos utilizar para este exemplo objetos HTML e não ASP.NET. Você pode notar que quando utilizou o código HTML abaixo e clicou no botão de Design, automaticamente os componentes do formulário HTML foram reconhecidos, exceto pelo código in-line dinâmico que utilizamos na pagina ASPX:

Design - HTML

Design – HTML

5 – Complete a classe C# com o código abaixo e rode o programa, o resultado será exibido no navegador web padrão:

Navegador - Web - ASPX

Navegador – Web – ASPX

6 – Assim que você clica no botão o código da classe por traz da sua pagina é executado, capturando os valores do código HTML para serem utilizados em sua pagina:

Code-behind

Code-behind

Exemplo:

Neste exemplo criamos uma aplicação ASP.NET à partir de um modelo de projeto vazio e utilizamos uma pagina WebForms para criar nossa pagina web com formulários do tipo HTML, utilizamos C# para executar as ações da nossa pagina através do conceito de código ASP.NET chamados de code-behind e in-line.

XHTML

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <fieldset>
            <p>
               <!-- Este é o modo de escrever código C# em uma pagina html -->
               <!-- utilize a marcação abaixo: -->
               <%
                  Response.Write("Desenvolvimento Aberto (Titulo C# Dinâmico)");
               %>
            </p>
            <br />
            <legend>Escolha uma banda:</legend>
            <br /> Seu Nome:<br /> <input type="text" name="Nome" /> <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="Screaming trees" selected>Screaming trees</option>
                    <option value="Mother Love bone">Mother Love bone</option>
            </select> <br /> <br />

        <!-- Cria um botão HTML para ASP.NET!-->
       <input id="Meubotao" runat="server" class="button right" onserverclick="Meubotao_ServerClick" type="button" value="Enviar" />
    </fieldset>
    </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 DaAspNet1
{
    public partial class _default : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Meubotao_ServerClick(object sender, EventArgs e)
        {
            // Recupera dados do HTML
            String nome = Request.Form["Nome"];
            String banda = Request.Form["bandas"];

            // Cria HTML Dinâmico
            Response.Write("Desenvolvimento Aberto ASP.NET: <br />" );
            Response.Write("Nome: " + nome + " <br />");
            Response.Write("Banda escolhida: " + banda + " <br />");
        }        

    }
}

JSP – JavaServer Pages – Java

Publicado: 10 de outubro de 2014 em Java

A tecnologia JavaServer Pages (JSP) permite que você crie facilmente conteúdo da web de modo estático e dinâmico. A Tecnologia JSP disponibiliza todas as capacidades dinâmicas da tecnologia Java Servlet, mas fornece uma abordagem mais natural para a criação de conteúdo estático. Uma página JSP é um documento de texto que contém dois tipos de texto: dados estáticos, que podem ser expressos em qualquer formato baseado em texto como o HTML, SVG, WML e XML, e elementos JSP, que constroem conteúdo dinâmico.

Um Scriptlet pode conter instruções da linguagem Java, declarações de variáveis, método, ou expressões que são válidas na língua e podem ser utilizadas em páginas JSP.

Para saber mais sobre a linguagem de scripts utilizada neste exemplo, em especial HTML Forms, você pode utilizar a documentação aberta para web fornecida pela Mozilla no seguinte link:

MDN: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms

Criando um Projeto JSP Utilizando Servlet

1 – Crie um novo projeto do tipo Dynamic Web Project, e o nomeie de DaJSP. Com o botão direito no nome do projeto escolha New e selecione JSP File, o nomeie de index.jsp e clique em Next:

Arquivo JSP

Arquivo JSP

2 – Escolha o arquivo do tipo JSP (xhtml):

JSP - XHTML

JSP – XHTML

3 – Crie um novo Servlet chamado de ServletAcao apenas com o método service, utilize o código abaixo para completar os dois arquivos gerados automaticamente pela IDE Eclipse, o index.jsp e a classe ServletAcao. Clique em Run com o arquivo index.jsp aberto na IDE e o teste:

Rodando a Página JSP

Rodando a Página JSP

4 – Utilize a URL do Eclipse no navegador para ver como a pagina JSP se comporta em um Browser:

Index.jsp

Index.jsp

5 – Após clicar no botão da pagina o Servlet é utilizado através da ação do formulário HTML e o conteúdo Java da classe ServletAcao é executado:

Servlet - Java

Servlet – Java

Exemplo:

Neste exemplo criamos um projeto para web dinâmico que utiliza uma pagina JSP e um Servlet, utilizamos o Java no HTML através de declarações de Scriptlets e utilizamos o Servlet em conjunto com a ação da tag Form da pagina XHTML para que classe do Servlet execute seu conteúdo.

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 - Servlet & Java Server Pages</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 (Titulo Java Dinâmico)");
		%>
	</p>
	<br />
	<form action="servletacao">
		<fieldset>
			<legend>Escolha uma banda:</legend>
			<br /> Seu Nome:<br /> <input type="text" name="Nome"> <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="Screaming trees" selected>Screaming trees</option>
					<option value="Mother Love bone">Mother Love bone</option>
			</select> <br></br> <input type="submit" value="Enviar">
		</fieldset>
	</form>
</body>
</html>

Java – Servlet

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 ServletAcao Classe do Servlet
 */
@WebServlet("/servletacao")
public class ServletAcao extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet() Construtor do Servlet
	 */
	public ServletAcao() {
		super();

	}

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
	 *      response) Metodo de serviço do Servlet
	 * 
	 *      Utilizando Request e Response
	 */
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		PrintWriter imprimir = response.getWriter();

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

		// Você também pode criar html dinâmico utilizando o Servlet
		imprimir.println("Desenvolvimento Aberto Servlet/JSP:");
		imprimir.println("Nome: " + nome);
		imprimir.println("Banda escolhida: " + banda);

	}

}

 

O Apache Tomcat Project mais recente inclui várias correções para problemas identificados em suas versões anteriores, bem como uma série de outras melhorias e mudanças. Configurar o Tomcat no Eclipse é fácil pois a IDE já comtempla uma integração com a empresa Apache tornando todo o procedimento muito simples. Atente-se que para utilizar a versão 8 do Tomcat no Eclipse você precisa ter a ultima versão do Eclipse ou atualizar a sua IDE com os releases mais recentes.

Configurando o Tomcat

Para configurar o Tomcat com sucesso, primeiro você precisa atribuir os direitos para que seu usuário possa acessar as configurações do Tomcat através da IDE Eclipse, digite o seguinte comando no terminal do Linux:

sudo chown -R user1 /var/local/apache-tomcat-8.0.14

1 – Abra a IDE Eclipse e no menu Window, na opção Show View e escolha Servers. A janela de servidores aparecerá no canto inferior do Eclipse dizendo que não há nenhum servidor disponível, clique em novo servidor e expanda a pasta Apache e selecione a opção Apache Tomcat V8.0 Server, em seguida clique em Next:

Apache Tomcat - Novo Servidor

Apache Tomcat – Novo Servidor

2 – Na janela seguinte escolha a pasta onde se encontra a instalação do Tomcat, em seguida o JRE de sua maquina e clique em Finish:

Local da Instalação e JRE

Local da Instalação e JRE

3 – Com o servidor já criado precisamos inicia-lo, porem o Tomcat roda por instancia e se a instancia principal do servidor já estiver rodando em seu computador encontraremos um conflito nas portas de comunicação do servidor, você pode parar (Stop) a instancia principal, ou modificar as portas da sua instancia dinâmica clicando duas vezes no seu servidor, na aba Serves, localizado no painel inferior do Eclipse, e mudar as portas para que não exista conflito entre instancias do Tomcat:

Tomcat - Instancia e Portas

Tomcat – Instancia e Portas

Pronto, basta iniciar o servidor clicando na seta verde ou na opção Start e já temos uma configuração básica do Tomcat para criar nossos programas web em Java.

 

Criando uma Aplicação Java Servlet e testando o Tomcat

A API Java Servlet encontrada no pacote javax.servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a plataforma Java. Os Servlets são classes Java usadas para estender as funcionalidades de um servidor. Apesar dos Servlets poderem responder a quaisquer tipos de requisições, eles normalmente são usados para estender as aplicações hospedadas por servidores web. Podemos dizer que Servlets são os equivalentes Java a outras tecnologias de conteúdo Web dinâmico, como PHP, ASP.NET e muitos outros.

1 – Crie um novo projeto dinâmico para a web, para isto abra no menu a opção Project, New e escolha Dynamic Web Project, coloque o nome do projeto de DaServets e clique em Next:

Servlet - Novo Projeto

Servlet – Novo Projeto

2 – Na tela seguinte marque o cheque Generate web.xml deployment descriptor e clique em Finish:

Xml

Xml

3 – Agora precisamos criar um novo Servlet que é nada mais que uma classe no qual vamos programar. No nome do projeto na janela Project Explorer, clique com o botão direito, escolha New e escolha Servlet. Para o pacote nomeie como org.desenvolvimento.aberto e para a classe, MeuServlet e clique em Next:

Novo servlet

Novo servlet

4 – Na opção url mappings, para padronizar você pode editar a url e mudar todas as letras para caracteres em minúsculos e clique em Next:

Url - Mappings

Url – Mappings

5 – Na opção seguinte você pode escolher quais métodos serão criados automaticamente, desmarque o doPost e doGet e deixe somente service:

Métodos Automaticos

Métodos Automaticos

6 – Utilize o código abaixo para completar seu código gerado automaticamente e clique em Run para rodar o programa, escolha o servidor Tomcat e clique em Finish:

Escolhe Servidor

Escolhe Servidor

7 – Pronto, sua primeira aplicação web dinâmica foi executada com sucesso:

Hello World - Servlet Tomcat

Hello World – Servlet Tomcat

8 – Você pode abrir o seu navegador web e digitar a url do servidor para ver sua aplicação, utilize o seguinte endereço: http://localhost:9080/DaServets/meuservlet

Servlet - Navegador

Servlet – Navegador

Agora você já pode utilizar outros exemplos Java EE para saber mais sobre Java Enterprise.

Java

package com.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
 */
@WebServlet("/meuservlet")
public class MeuServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

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

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 * Metodo service
	 */

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

		PrintWriter imprimir = response.getWriter();
		imprimir.println("Desenvolvimento Aberto - Hello World");

	}
}

O Apache Tomcat Project mais recente inclui várias correções para problemas identificados em suas versões anteriores, bem como uma série de outras melhorias e mudanças. Configurar o Tomcat no Eclipse é fácil pois a IDE já comtempla uma integração com a empresa Apache tornando todo o procedimento muito simples. Atente-se que para utilizar a versão 8 do Tomcat no Eclipse você precisa ter a ultima versão do Eclipse ou atualizar a sua IDE com os releases mais recentes.

Configurando o Tomcat

1 – Abra a IDE Eclipse e no menu Window na opção Show View e escolha Servers. A janela de servidores aparecerá no canto inferior do Eclipse dizendo que não há nenhum servidor disponível, clique em novo servidor e expanda a pasta Apache e selecione a opção Apache Tomcat V8.0 Server, em seguida clique em Next:

Apache Tomcat - Novo Servidor

Apache Tomcat – Novo Servidor

2 – Na janela seguinte escolha a pasta onde se encontra a instalação do Tomcat, em seguida o JRE de sua maquina e clique em Finish:

Local e JRE

Local e JRE

3 – Com o servidor já criado precisamos inicia-lo, porem o Tomcat roda por instancia e se a instancia principal do servidor já estiver rodando em seu computador encontraremos um conflito nas portas de comunicação do servidor, você pode parar (Stop) a instancia principal, ou modificar as portas da sua instancia dinâmica clicando duas vezes no seu servidor, na aba Serves, localizado no painel inferior do Eclipse, e mudar as portas para que não exista conflito entre instancias do Tomcat:

Tomcat - Instancias e portas

Tomcat – Instancias e portas

Pronto, basta iniciar o servidor clicando na seta verde ou na opção Start e já temos uma configuração básica do Tomcat para criar nossos programas web em Java.

 

Criando uma Aplicação Java Servlet e testando o Tomcat

A API Java Servlet encontrada no pacote javax.servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a plataforma Java. Os Servlets são classes Java usadas para estender as funcionalidades de um servidor. Apesar dos Servlets poderem responder a quaisquer tipos de requisições, eles normalmente são usados para estender as aplicações hospedadas por servidores web. Podemos dizer que Servlets são os equivalentes Java a outras tecnologias de conteúdo Web dinâmico, como PHP, ASP.NET e muitos outros.

1 – Crie um novo projeto dinâmico para a web, para isto abra no menu a opção Project, New e escolha Dynamic Web Project, coloque o nome do projeto de DaServets e clique em Next:

Dynamic Web Project

Dynamic Web Project

2 – Na tela seguinte marque o cheque Generate web.xml deployment descriptor e clique em Finish:

xml.web

xml.web

3 – Agora precisamos criar um novo Servlet que é nada mais que uma classe no qual vamos programar. No nome do projeto, na janela Project Explorer, clique com o botão direito, escolha New e escolha Servlet. Para o pacote nomeie como org.desenvolvimento.aberto e para a classe, MeuServlet e clique em Next:

New Servlet

New Servlet

4 – Na opção url mappings, para padronizar você pode editar a url e mudar todas as letras para caracteres em minúsculos e clique em Next:

Url Mappings

Url Mappings

5 – Na opção seguinte você pode escolher quais métodos serão criados automaticamente, desmarque o doPost e doGet e deixe somente service:

Métodos automaticos

Métodos automáticos

6 – Utilize o código abaixo para completar seu código gerado automaticamente e clique em Run para rodar o programa, escolha o servidor Tomcat e clique em Finish:

Servidor

Servidor

7 – Pronto, sua primeira aplicação web dinâmica foi executada com sucesso:

Hello World - Servlet - Tomcat

Hello World – Servlet – Tomcat

8 – Você pode abrir o seu navegador web e digitar a url do servidor para ver sua aplicação, utilize o seguinte endereço: http://localhost:9080/DaServets/meuservlet

Navegador Web

Navegador Web

Agora você já pode utilizar outros exemplos Java EE para saber mais sobre Java Enterprise.

Java

package com.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
 */
@WebServlet("/meuservlet")
public class MeuServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

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

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 * Metodo service
	 */

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

		PrintWriter imprimir = response.getWriter();
		imprimir.println("Desenvolvimento Aberto - Hello World");

	}
}