Java Server Pages (JSP)

Java Server Pages (JSP) é uma tecnologia que ajuda os desenvolvedores de software a criarem páginas web geradas dinamicamente baseadas em HTML, XML ou outros tipos de documentos.

Lançada em 1999 pela Sun Microsystems, JSP é similar ao PHP, mas usa a linguagem de programação Java.

Para implantar e executar JavaServer Pages, um servidor web compatível com um container servlet, como Apache Tomcat, Jetty ou Glassfish, é requerido.

Por ser baseada na linguagem de programação Java, tem a vantagem da portabilidade de plataforma, que permite a sua execução em diversos sistemas operacionais, como o Windows da Microsoft, Unix e Linux.

Esta tecnologia permite ao desenvolvedor de páginas para Internet produzir aplicações que acessem o banco de dados, manipulem arquivos no formato texto, capturem informações a partir de formulários e captem informações sobre o visitante e sobre o servidor.

Uma página criada com a tecnologia JSP, após instalada em um servidor de aplicação compatível com a tecnologia Java EE, é transformada em um Servlet.

Arquitetonicamente, a JSP pode ser vista como uma abstração de alto nível de servlets Java. JSPs são traduzidas em servlets em tempo de execução. Cada servlet JSP é armazenado em cache e reutilizado até que a JSP original seja modificada.

JSP pode ser usada independentemente ou como o componente de visão de um projeto modelo-visão-controlador do lado do servidor, normalmente com JavaBeans como modelo e servlets Java (ou um framework como o Apache Struts) como o controlador. Este é um tipo de arquitetura Modelo 2.

web server support jsp

JSP permite que o código Java e algumas ações pré-definidas sejam intercalados com conteúdo de marcação web estático, com a página resultante sendo compilada e executada no servidor que irá entregar um documento.

As páginas compiladas, assim como as bibliotecas Java dependentes, utilizam o bytecode Java em vez de um formato de software nativo.

Como qualquer outro programa Java, elas devem ser executadas em uma máquina virtual Java (JVM), que se integra com o sistema operacional do host servidor para fornecer um ambiente de plataforma neutra abstrato.

JSPs são normalmente utilizadas para entregar documentos HTML e XML, mas através do uso de OutputStream, elas também podem proporcionar outros tipos de dados.

O recipiente web cria objetos JSP implícitos como pageContext, servletContext, session, request & response.

A linguagem

Em relação a arquitetura, JSP pode ser visto como uma abstração de alto nível dos Java servlets. Páginas JSP são carregadas dentro do servidor e processado a partir de uma estrutura especial do servidor Java, chamada Java EE Web Application, muitas vezes como um arquivo .war .ear.

JSP permite que código Java e certas ações pré-definidas sejam intercaladas com conteúdo de marcação estático, resultando na página sendo compilada e executada no servidor para ser entregue num documento HTML ou XML.

As páginas compiladas e qualquer dependência de biblioteca Java usa os bytecodes primeiro que o formato nativo de software, e deve assim ser executado com uma JVM, a máquina virtual Java, integrada com o host do sistema operacional para prover um ambiente de abstração de plataforma.

A sintaxe de JSP é uma mistura de dois tipos básicos de conteúdo: scriptlet elements e markup. Markup é tipicamente um padrão HTML ou XML, enquanto os elementos scriptlet são blocos de código Java os quais podem ser unidos com o tipo de marcação, markup.

Quando a página é requisitada o código Java é executado e sua saída é adicionada, in loco, com o ambiente de marcação para gerar a página final.

Códigos JSP devem ser compiladas para criação das classes bytecodes antes de serem executadas, mas essa compilação é necessária apenas quando é feita uma mudança no código.

Sintaxe

Páginas JSP utilizam vários delimitadores para funções de script. A mais básica é <% … %>, que delimita um scriptlet JSP. Um scriptlet é um fragmento de código Java que é executado quando o usuário solicita uma página.

Outros delimitadores comuns incluem <%= … %> para expressões, onde o valor da expressão é colocado na página entregue ao usuário, e diretivas, denotadas com <%@ … %>.

O código Java não é necessário ser completo ou auto-contido dentro de seu bloco de elemento scriptlet, mas pode abranger conteúdos de marcação fornecendo a página como um todo é sintaticamente correto.

Por exemplo, quaisquer bloco Java if/for/while aberto em um elemento scriptlet deve ser corretamente fechado em um elemento posterior para que a página seja compilada com sucesso.

A marcação que cai dentro de um bloco de código quebrado está sujeito aquele código, desta forma a marcação dentro do bloco if aparecerá apenas na saída quando a condição if for avaliada como verdadeira (true).

Do mesmo modo, a marcação dentro de uma construção de loop pode aparecer várias vezes na saída dependendo de quantas vezes o corpo do loop for executado.

O código seguinte seria um loop for válido em uma página JSP:

<p>Contando até três:</p>
<% for (int i=1; i<4; i++) { %>
    <p>Este número é <%= i %>.</p>
<% } %>
<p>Contagem concluída.</p>

A saída mostrada no navegador web do usuário seria:

Contando até três:
Este número é 1.
Este número é 2.
Este número é 3.
Contagem concluída.

Comentários JSP

O JSP tem um tipo de comentário próprio, por exemplo:

<%-- comentário --%>

Nota: este comentário só aparece do lado do servidor, não aparecendo por isso no código-fonte do browser.

Tags JSP

No JSP existem 5 tags:

1 – Declaration tag

Esta tag permite declarar variáveis e métodos. A sua sintaxe é:

<%! …mais alguma coisa.. %>

Um exemplo:

<%!
      private int contador= 0 ;
 %>

2 – Expression tag

Esta tag permite mostrar algum resultado. A sua sintaxe é: <%=..algo para mostrar…%> Por exemplo, para mostrar o valor da variável contador bastava apenas:

<%=contador %>

3 – Directive tag

Esta tag permite dar informação sobre a página ao motor JSP. Existe 3 tipos de directivas:

page: Processa informação para esta página. Existem 11 atributos opcionais. Sintaxe: <%@ page atributo=”valor” %>

Include: Arquivos para serem incluidos. Sintaxe: <%@ include file=”pagina.jsp” %>

Taglib: Define uma biblioteca a ser usada. Precisa de um prefixo e de um url: Sintaxe: <%@ taglib prefix = “prefixo” uri = “taglib.tld” %>

4 – Scriptlet tag;

Todo o código entre <% %> é chamado de scriptlet. Sintaxe: <% …código %>

5 – Action tag

Esta tag tem como principais funcionalidades:

1. Acessar e alterar propriedades de JavaBeans (jsp:useBean, jsp:getProperty e jsp:setProperty);

2. Redirecionar a requisição para outra página JSP (jsp:forward);

3. Uma única tag para a inclusão de applets Java em páginas, independentemente do browser cliente (jsp:plugin e jsp:fallback). 

DOMINE O JAVA WEB ATRAVÉS DE AULAS PASSO A PASSO, DO BÁSICO AO AVANÇADO!

Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.

Clique na imagem abaixo e conheça mais detalhes do nosso curso:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: | |

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *