CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

Java - O que é Java Server Pages (JSP)?

Por Benedito Silva Júnior - publicado em 15/07/2016



JavaServer 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.

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). 

 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo