Primeiras aulas do curso Servlet Parte 1: Fundamentos da programação web Java

Servlet Parte 1: Fundamentos da programação web Java

Fundamentos da Web e a API de Servlets - Introdução ao curso

Bem-vinda e bem-vindo à Alura, e ao curso Servlet parte 1. Sou Nico Steppat, serei seu instrutor e acompanharei você nas próximas aulas.

Servlet é, talvez, a tecnologia mais importante no mundo web Java. Ainda que você não utilize diretamente o Servlet em uma aplicação, é fundamental criar uma boa base para, posteriormente, utilizar abstrações do mais alto nível.

Neste curso aprenderemos o que o Tomcat realiza com Servlet, e como fazer o mapeamento do protocolo HTTP para as chamadas, requisições e como devolver respostas.

Discutiremos sobre a organização de uma aplicação: como mudar a chamada para um modelo, e como criar visualizações HTML no navegador. Falaremos ainda sobre JSP, Expression Language, Tag Libs, e o modelo por trás dos despachadores de requisições e redirecionamento.

Temos um curso bem completo, com uma base interessante sobre o mundo Servlet. Vamos começar as aulas e conhecer todo esse conteúdo importante!

Fundamentos da Web e a API de Servlets - Criando Ambiente

Nesta primeira aula, aprenderemos como preparar o ambiente: o que precisamos instalar e configurar para acompanhar as aulas. Deveremos ter na máquina três itens: o Java propriamente, JRE ou JDK — a segunda opção possui mais documentação, mas para o nosso objetivo neste curso o JRE é o suficiente.

Usaremos a versão Java 10, mas as versões 8 ou 9 também são suficientes. Talvez, quando você realizar esse curso, já existam versões mais recentes, como 11 ou 12. Não há problema algum em utilizá-las pois o Java trabalha com servidor e as versões recentes sempre funcionam.

Observe a versão instalada na linha de comando:

C:\Users\Alura>java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+12,mixed mode)

Não usaremos o Java na linha de comando, então não há necessidade de utilizar quaisquer comandos por essa via. Nosso trabalho se dará no Eclipse, portanto é necessário que ele esteja instalado.

Diferentemente dos cursos básicos de Java, a versão do Eclipse necessária para esse curso mais avançado apresenta alguns recursos e ferramentas a mais.

Atualmente, quando realizamos o download do Eclipse, ele vem com um instalador a ser executado. A diferença dessa versão para as anteriores é que precisamos instalar o Eclipse IDE for Java EE Developers, um pacote de ferramentas para criação de aplicações web, como EE,JPA, JSF, Mylyn, entre outras.

Em seguida, iremos configurar o workspace, isto é, a pasta em que armazenaremos nossos projetos.

O último item que precisamos instalar é o servidor, que será necessário para trabalhar com Servlet. Nesse caso, usaremos o Tomcat , de longe o servidor mais famoso no mundo Java e que foi criado pela Apache, que é uma organização open source.

Usaremos a versão 9.0.11, que até o momento é a mais recente, mas você poderia utilizar a versão 7 ou 8 sem problemas. O que importa, de fato, é que a versão possa dar suporte para o Servlet 3.0 em diante.

Lembrando que o ideal é que você utilize as mesmas versões apresentadas no curso, para que tenhamos o máximo de sincronia e possamos desenvolver o projeto sem problemas.

No site do Tomcat você encontrará a versão para ser baixada em zip, e para os usuários de Linux está disponível o arquivo tar.gz. Trata-se de um arquivo pequeno, cerca de 10.268 KB. Depois de realizar o download do arquivo, basta extraí-lo.

Em seguida, precisaremos associar o Eclipse ao Tomcat, afinal não queremos inicializá-lo via linha de comando, pois no dia a dia nós inicializamos o servidor a partir do ambiente de desenvolvimento.

Com o Eclipse aberto, selecionaremos o ícone "Open Perspective", na parte superior direita da tela.

botão "open perspective", no canto direito da tela

Na nova janela, selecionaremos a opção "Java EE (default)", que é a opção padrão.

selecionando a opção "Java EE" na lista

A próxima etapa é configurarmos o Tomcat. Por meio do "Quick Access" — buscador na parte superior direita da tela — no Eclipse, digitaremos a palavra "Servers". Essa opção também pode ser acessada via aba "Servers".

aba "Servers" localizada na barra inferior do Eclipse

Clicaremos no link disponível na área "Servers" e começaremos a realizar a configuração.

Na nova janela de diálogo "Define a New Server", clicaremos sobre "Apache > Tomcat v9.0 Server". Existem algumas opções editáveis, como "Server's host name", que manteremos com o modelo padrão. Em seguida, pressionaremos o botão "Next".

Teremos a opção "Tomcat installation directory", na qual colocaremos o diretório em que o servidor foi salvo na máquina.

Na opção "JRE", selecionaremos "jre-10.0.2" (às vezes o Eclipse já detecta que estamos utilizando o Java 10). Feito isso, pressionaremos o botão "Finish".

Desse modo, na aba "Servers", será exibida a informação Tomcat v9.0 Server at localhost [Stopped, Republish]. O Eclipse automaticamente criará um novo projeto para guardar as configurações do servidor, como podemos ver na área "Project Explorer", "Servers > Tomcat v9.0 Server at localhost-config". Não podemos apagar ou fechar o projeto, pois, caso isso seja feito, o Eclipse não conseguirá mais acessar as configurações.

Para iniciar o servidor, clicaremos sobre o ícone "Start the server" ou usaremos o atalho "Ctrl + Alt + R".

Ao clicarmos na aba "Console", poderemos ver a saída em vermelho. Não devemos associar essa cor com alguma mensagem de erro, já que é possível verificar na última linha que o servidor foi inicializado com sucesso:

INFORMAÇÕES: Server startup in 520 ms

Com o Tomcat rodando, poderemos acessá-lo!

Mas por que escolhemos trabalhar com este servidor? Não sabemos ainda o que são os tais "Servlets", mas vamos esclarecer alguns pontos: estamos programando em Java, queremos trabalhar na web e, no que diz respeito ao Tomcat, o mais importante é que ele utiliza o protocolo HTTP e HTML.

A página da Alura, por exemplo, é acessada por meio do navegador e utiliza o protocolo HTTP. O que o navegador exibe ao usuário é o resultado de uma página HTML, portanto precisamos aprender mais a fundo sobre como esses sistemas operam.

De volta ao Eclipse, sabemos que o nosso servidor está no ar, portanto já temos um processo Java sendo executado. Dessa forma, é possível utilizar o protocolo HTTP para acessar o servidor.

Abriremos uma nova aba no navegador Chrome, mas você pode utilizar o Firefox ou qualquer outro de sua preferência. Em algum momento na configuração inicial, foi explicitado o endereço do servidor, que é http://localhost — o padrão de endereço para qualquer máquina, independentemente do sistema operacional. Porém, se escrevermos somente essa informação, não poderemos acessar o servidor e seremos levados a uma página de erro, alegando um problema de conexão. Isso ocorreu pois, além do endereço, faltou explicitarmos a porta específica.

Quando não explicitamos uma porta na configuração, a porta padrão 80, que faz parte do TCP utilizado pelo protocolo HTTP, é selecionada. Porém, o Tomcat não é executado na porta padrão, e sim na porta 8080. Portanto, precisamos explicitá-la.

Ao acessarmos o endereço http:\\localhost:8080 no navegador, teremos uma nova mensagem de erro, mas com um formato diferente: não há mais um erro de conexão, pois essa conexão com o servidor foi de fato estabelecida, observemos a mensagem:

HTTP Status 404 - Not Found

type Status Report

Message/

Desription The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

Apache Tomcat/9.0.11

O Tomcat recebeu a chamada do navegador, e respondeu que não há nada a ser exibido. No mundo do protocolo HTTP, o status "404" significa que nenhum conteúdo foi encontrado. Mesmo que acessássemos essa página por outra máquina, como outro computador ou um celular (por meio do IP da máquina que está rodando o servidor), teríamos a mesma mensagem de erro.

Conseguimos instalar e executar o Tomcat, e nas próximas aulas começaremos a discutir de fato sobre Servlet e a criar nosso projeto Java.

Fundamentos da Web e a API de Servlets - Primeiro projeto Java Web

Nosso ambiente de trabalho está configurado com os elementos Java, Tomcat e Eclipse. Já sabemos como executar o servidor Tomcat e acessá-lo, ainda que por enquanto só conseguimos visualizar uma mensagem de erro emitida por este mesmo servidor, alegando que não há conteúdo para ser exibido.

Criaremos um projeto com Java e o associaremos com este servidor para que tenhamos algo a ser exibido no navegador. No Eclipse, clicaremos sobre o "File" no cabeçalho de ferramentas, em seguida, selecionaremos as opções "New > Dynamic Web Project". Repare que temos uma gama vasta de opções para criar esse projeto, como "Maven Project", "Enterprise Application Project" e tantos outros. Não estamos lidando apenas com um simples projeto Java, afinal precisamos trabalhar com arquivos web, HTML e talvez alguma imagem. Exatamente por essa complexidade, escolhemos a opção "Dynamic Web Project".

Na nova caixa de diálogo "Dynamic Web Project", daremos um nome para este novo projeto ("Project name"), que será gerenciador. É importante que você utilize o mesmo nome, pois assim os links que criarmos estarão sincronizados com a documentação do curso e os exercícios que faremos.

Em seguida, definiremos o local do projeto ("Project location") e na opção "Target runtime" manteremos a configuração "Apache Tomcat v9.0". Na opção "Dynamic web module version" também manteremos a configuração "4.0".

Temos a opção "Configuration" que também não alteraremos, aliás, é muito raro que tenhamos de realizar qualquer tipo de alteração neste campo, mas clicaremos em "Modify" apenas para propósitos expositivos. Na nova janela teremos a opção de, por exemplo, especificar que o nosso projeto é executado com JavaServerFaces.

série de configurações avançadas do projeto. Temos uma coluna com o título "Project Facet" e opções a serem assinaladas, como "Axis2 Web Services", "CXF 2.x Web Services", "Dynamic Web Module" que está assinalado, "Java", também assinalado, "JavaScitp" e "JavaServer Faces". Teremos, ainda, uma segunda coluna intitulada "Version" que apresenta a versão de cada uma das opções disponíveis.

Voltaremos a janela "Dynamic Web Project" Poderíamos finalizar e de fato começar o projeto clicando sobre o botão "Finish", porém avançaremos ("Next") um pouco mais para que você conheça as outras configurações possíveis.

Na nova fase da caixa de diálogo, veremos na área "Source folders on build path" um arquivo src. Como criaremos um projeto Java, teremos uma pasta src que abrigará nossas classes. Por padrão, o Eclipse compila para uma pasta "build\classes".

Prosseguindo nas configurações, encontraremos o campo "Context root" que possui o nome gerenciador, isto é, o título do projeto. O context root é como o projeto é chamado na url. Em seguida, teremos o campo "Content directory", configurado como WebContent, isto é, os arquivos relacionados ao mundo web, como páginas HTML, serão armazenadas em uma pasta WebContent.

Mais abaixo, assinalaremos a opção "Generate web.xml deployment descriptor", a criação de um arquivo de configuração. Servlet é uma especificação Java, embora ainda não saibamos o que é isso exatamente, sabemos que cada especificação Java possui seu .xml. No mundo Servlet, esse arquivo é o web.xml. No mundo JPA - outra especificação -, por exemplo, esse arquivo é chamado persist.xml.

Atualmente, esses arquivos .xml são menos importantes e podemos criar nosso projeto sem ele. Contudo, geraremos o arquivo para posteriormente realizarmos algumas configurações. Finalmente, pressionaremos o botão "Finish". O Eclipse fará o processamento das configurações, o que pode levar alguns minutos.

Terminado o processamento, teremos na "Projec Explorer" o projeto gerenciador, e ao clicarmos no arquivo teremos alguns recursos criados automaticamente. O mais importante é te tempos a pasta src armazenada em Java Resources. Teremos, também, a pasta build e WebContent, que armazena alguns arquivos padrão, incluindo o web.xml. Não nos preocuparemos em detalhes com isso neste momento, cada ponto será explicado ao longo do curso.

A próxima etapa é associar o projeto gerenciador ao Tomcat. Podemos simplesmente arrastar a pasta gerenciador para a aba "Servers" ou clicar sobre ela com o botão direito e selecionar a opção "Add and Remove..." dessa forma será exibida uma caixa de diálogo com todos os projetos disponíveis e compatíveis com o Tomcat. Selecionaremos o projeto e clicaremos sobre o botão "Add".

gerenciador associado ao tomcat

Ao executarmos o Tomcat no Eclipse, veremos que o projeto gerenciador já está associado ao servidor. Contudo, ainda não temos nada a ser exibido. Clicaremos com o botão direito sobre a pasta WebContent e selecionaremos "New > File" para criar um novo arquivo chamado bem-vindo.html, o formato entendido pelo navegador.

Criaremos um código bem simples com elementos básicos, o elemento raiz <html> e o corpo da mensagem envolvido por<body>.

<html>

<body>
Bem-vindo no curso Servlets da Alura
</body>

</html>

Queremos acessar essa página a partir do navegador. Acessaremos o endereço localhost:8080, mas o que veremos é a mensagem de erro 404, como se ainda faltasse conteúdo a ser exibido. O problema é que precisamos especificar o acesso ao projeto gerenciador, logo, o endereço que digitaremos no navegador será localhost:8080/gerenciador/.

Ao pressionarmos "Enter" veremos a mesma mensagem de erro. Não estamos sendo específicos o suficiente, precisamos explicitar a página bem-vindo.html, logo localhost:8080/gerenciador/bem-vindo.html. Assim feito, teremos a mensagem Bem-vindo no curso Servlets da Alura!.

O Tomcat recebeu a chamada do navegador, isto é, uma requisição, e foi passado o conteúdo que criamos no projeto. Ao analisarmos o código fonte da página, veremos exatamente o código escrito no arquivo bem-vindo.html, armazenado na pasta WebContent.

Para acessar esse conteúdo no navegador, não precisamos escrever localhost:8080/gerenciador/WebContent/bem-vindo.html, e caso escrevêssemos dessa maneira, o conteúdo não seria exibido. O Tomcat realiza esse percurso de forma automática. O mesmo conteúdo pode ser exibido em outras máquinas, desde que saibamos seu IP.

Ainda não realizamos nenhum trabalho com Servlet, mas estamos avançando!

Sobre o curso Servlet Parte 1: Fundamentos da programação web Java

O curso Servlet Parte 1: Fundamentos da programação web Java possui 317 minutos de vídeos, em um total de 89 atividades. Gostou? Conheça nossos outros cursos de Java em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Java acessando integralmente esse e outros cursos, comece hoje!

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana