Desenvolvimento para Web com Java Server Pages

JSP é um acrônimo de Java Server Pages, uma tecnologia que ajuda os desenvolvedores de software  a criarem páginas web dinâmicas.
Sumário:
  1. Desenvolvimento Java para web
  2. Entendendo Java EE
  3. Introdução aos Servlets
  4. Trabalhando com JSP
  5. Modelo MVC
  6. Criação de um projeto web
  7. BootStrap

Desenvolvimento Java para web

O desenvolvimento web com java não trivial: É necessário conhecer as APIs de Servlets e JSP (mesmo que sua equipe trabalhe com frameworks).
Além disso conceitos importantes como HTTP, Session e Cookies são essenciais para um bom projeto Java.
Independente de serem web ou desktop os sistemas possuem regras de negócios que devem ser atendidas:
Os chamados requisitos funcionais!
Porém além desses existem outros que devemos cumprir na estrutura:
Persistência de dados, transações, threads, sessões, balanceamento de carga, etc.
Daí vem o conceito de Java EE. O que seria isso?
Nem sempre temos tempo para tratar tantos detalhes de estrutura, e para auxiliar a esse gerenciamento a Sun criou uma série de especificações... Que podem ser usadas por nós!
Assim o Java EE (Enterprise Edition) é uma coleção de especificações.
E o JSP é uma delas!
  • Como fazer o download do Java EE?
  • Como instalar?
Bem... o Java EE é apenas um grande PDF com aquelas especificações já mensionadas.
O que você deve baixar e instalar, na verdade, é a implementação dessas especificações.
Você já as conhece... São chamadas de Servidores de Aplicação! (ex: Tomcat)
 
Veja abaixo o passo a passo para baixar e instalar o Tomcat:
  • Baixar o Tomcat
  • Tutorial de Instalação
  • Configurações Básicas

 

Acesse o site oficial do Tomcat em https://tomcat.apache.org/;

No menu lateral selecione a opção de download desejada, de preferência as mais recentes;

Selecione a distribuição Core de 32 ou 64 bits de acordo com seu sistema operacional;

Extraia e copie para sua pasta de programas, e na pasta bin execute o arquivo startup para iniciar o serviço;

Por fim acesse o diretório raiz do tomcat em https://localhost:8080/ ou https://localhost:8084/

Introdução aos Servlets

Quando a Web surgiu, seu objetivo era a troca de conteúdos através, principalmente, de páginas HTML estáticas.
Mas logo percebemos que a web tem muito mais potencial, sendo preciso servir também conteúdo dinâmico, ou seja, com base nas requisições do usuário. (Req -> Proc -> Resp).
Na plataforma Java, a primeira e principal tecnologia capaz de gerar páginas dinâmicas são os Servlets.
São basicamente classes java da API Java Servlet.
E que geram conteúdo dinâmico (HTML).
 
 
Veja um exemplo usando o servlet:
Lempre-se de que devemos sempre mapear o servlet criado para que o container  possa processar a requisição.
Faremos isso no arquivo web.xml do diretório WEB-INF.

Trabalhando com JSP

Como vimos anteriormente os servlets até fazem bem o seu trabalho: gerar conteúdo dinâmico!
Porém possui sérias desvantagens: Forte acoplamento do código Java ao HTML, exigência de muito código, e dificuldade de manutenção.

Esquematizando:

  • Servlet = HTML no Java
  • JSP = Java no HTML
Mas... O que isso implica? Veja o código abaixo:

Percebam que o JSP é bem mais semelhante ao PHP.
Ou seja é um HTML com extensão .JSP
E que podemos adicionar comportamento com os códigos em Java!
Os Scriptlets
Para que funcione o código Java precisa estar inserido em um bloco específico de código:
Os Scriptlets!
Sintaxe = <% código java %>
Comentário JSP = <% -- digite aqui -- %>
EL: Expression Language
Para remover um pouco do código Java que fica na página JSP, a Sun desenvolveu uma linguagem chamada Expression Language que é interpretada pelo servlet container.
Ela é a forma mais elegante hoje em dia para trabalhar no JSP.
Como fazer isso?  Simples! Por exemplo: 
Existe uma variável chamada param que, na EL é responsável pelos parâmetros enviados pelo cliente.
Para ler o parâmetro chamado X basta usar:
  • ${param.X}.

Modelo MVC

Model-view-controller (MVC), em português modelo-visão-controlador, é um padrão de arquitetura de software que separa a representação da informação da interação do usuário com ele.

O Modelo

O modelo (model) consiste nos dados da aplicação, regras de negócios, lógica e funções.

A visão

Uma visão (view) pode ser qualquer saída de representação dos dados, como uma tabela ou um diagrama. É possível ter várias visões do mesmo dado, como um gráfico de barras para  gerenciamento e uma visão tabular para contadores. 
 
O Controlador
O controlador (controller) faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão.
 

BootStrap

Bootstrap é um framework front-end que facilita a vida dos desenvolvedores web a criar sites com tecnologia mobile (responsivo)
Você pode utilizá-lo no seu projeto em conjunto com suas páginas JSP!