Desenvolvimento para Web com Java Server Pages
07/04/2015 18:00

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:
- Desenvolvimento Java para web
- Entendendo Java EE
- Introdução aos Servlets
- Trabalhando com JSP
- Modelo MVC
- Criação de um projeto web
- 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!
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!
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!