O que são diretivas JSP?
- As diretivas JSP são as mensagens para o contêiner JSP. Eles fornecem informações globais sobre uma página JSP inteira.
- As diretivas JSP são usadas para fornecer instruções especiais a um contêiner para a conversão de JSP em código de servlet.
- Na fase do ciclo de vida do JSP, o JSP deve ser convertido em um servlet que é a fase de tradução.
- Eles fornecem instruções ao contêiner sobre como lidar com certos aspectos do processamento JSP
- As diretivas podem ter muitos atributos separados por vírgulas como pares de valores-chave.
- Em JSP, a diretiva é descrita em tags <% @%>.
Sintaxe da diretiva:
<%@ directive attribute %>
Existem três tipos de diretivas:
- Diretiva de página
- Incluir diretiva
- Diretiva Taglib
Cada um deles é descrito em detalhes abaixo com exemplos:
Neste tutorial, você aprenderá -
- Diretiva de página JSP
- Diretiva de inclusão JSP
- Diretiva JSP Taglib
Diretiva de página JSP
Sintaxe da diretiva da página:
<%@ page… %>
- Ele fornece atributos que são aplicados a toda a página JSP.
- Ele define os atributos dependentes da página, como linguagem de script, página de erro e requisitos de buffer.
- É usado para fornecer instruções a um contêiner que pertence à página JSP atual.
A seguir está sua lista de atributos associados à diretiva de página:
- Língua
- Estende
- Importar
- tipo de conteúdo
- informação
- sessão
- isThreadSafe
- autoflush
- amortecedor
- IsErrorPage
- pageEncoding
- errorPage
- isELIgonored
Mais detalhes sobre cada atributo
- linguagem : define a linguagem de programação (linguagem subjacente) que está sendo usada na página.
Sintaxe da linguagem:
<%@ page language="value" %>
Aqui, o valor é a linguagem de programação (linguagem subjacente)
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Explicação do código: No exemplo acima, o valor do idioma do atributo é Java, que é o idioma subjacente neste caso. Portanto, o código em tags de expressão seria compilado usando o compilador java.
- Extends : Este atributo é usado para estender (herdar) a classe como JAVA faz
Sintaxe de extends:
<%@ page extends="value" %>
Aqui, o valor representa a classe da qual deve ser herdado.
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Explicação do código: No código acima, JSP está estendendo DemoClass, que está dentro do pacote de teste, e irá estender todos os recursos de classe.
- Importar : Este atributo é o atributo mais usado em atributos de diretiva de página. É usado para dizer ao contêiner para importar outras classes java, interfaces, enums, etc., enquanto gera código de servlet. É semelhante a instruções de importação em classes java, interfaces.
Sintaxe de importação :
<%@ page import="value" %>
Aqui, o valor indica as classes que devem ser importadas.
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Explicação do código:
No código acima, estamos importando a classe Date do pacote java.util (todas as classes de utilitário) e ela pode usar todos os métodos da classe a seguir.
- contentType :
- Ele define o esquema de codificação de caracteres, ou seja, é usado para definir o tipo de conteúdo e o conjunto de caracteres da resposta
- O tipo padrão de contentType é "text / html; charset = ISO-8859-1".
Sintaxe do contentType:
<%@ page contentType="value" %>
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Explicação do código:
No código acima, o tipo de conteúdo é definido como text / html, ele define a codificação de caracteres para JSP e para a página de resposta gerada.
- informação
- Ele define uma string que pode ser acessada pelo método getServletInfo ().
- Este atributo é usado para definir a descrição do servlet.
Sintaxe da informação:
<%@ page info="value" %>
Aqui, o valor representa as informações do servlet.
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Explicação do código:
No código acima, a string "Guru Directive JSP" pode ser recuperada pela interface do servlet usando getServletInfo ()
- Sessão
- A página JSP cria sessão por padrão.
- Às vezes, não precisamos que uma sessão seja criada em JSP e, portanto, podemos definir esse atributo como falso nesse caso. O valor padrão do atributo da sessão é verdadeiro e a sessão é criada.
Quando definido como falso, podemos indicar ao compilador para não criar a sessão por padrão.
Sintaxe da sessão:
<%@ page session="true/false"%>
Aqui, neste caso, o atributo da sessão pode ser definido como verdadeiro ou falso
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Explicação do código:
No exemplo acima, o atributo da sessão é definido como "falso", portanto, estamos indicando que não queremos criar nenhuma sessão neste JSP
- isThreadSafe:
- Ele define o modelo de encadeamento para o servlet gerado.
- Ele indica o nível de segurança de thread implementado na página.
- Seu valor padrão é verdadeiro, então simultâneo
- Podemos usar este atributo para implementar a interface SingleThreadModel no servlet gerado.
- Se definirmos como false, ele implementará SingleThreadModel e pode acessar quaisquer objetos compartilhados e pode gerar inconsistência.
Sintaxe de isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Aqui, verdadeiro ou falso representa se a sincronização existe, então defina como verdadeiro e defina-o como falso.
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Explicação do código:
No código acima, isThreadSafe é definido como "true", portanto, a sincronização será feita e vários threads podem ser usados.
- AutoFlush:
Este atributo especifica que a saída em buffer deve ser descarregada automaticamente ou não e o valor padrão desse atributo é verdadeiro.
Se o valor for definido como false, o buffer não será descarregado automaticamente e, se estiver cheio, obteremos uma exceção.
Quando o buffer é nenhum, o falso é ilegítimo e não há armazenamento em buffer, portanto, ele será liberado automaticamente.
Sintaxe de autoFlush:
<% @ page autoFlush="true/false" %>
Aqui, verdadeiro / falso representa se o armazenamento em buffer deve ser feito ou não
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Explicação do código:
No código acima, o autoflush é definido como falso e, portanto, o armazenamento em buffer não será feito e ele liberou manualmente a saída.
- Amortecedor:
- Usando este atributo, o objeto de resposta de saída pode ser armazenado em buffer.
- Podemos definir o tamanho do buffer a ser feito usando este atributo e o tamanho padrão é 8 KB.
- Ele direciona o servlet para gravar no buffer antes de gravar no objeto de resposta.
Sintaxe do buffer:
<%@ page buffer="value" %>
Aqui, o valor representa o tamanho do buffer que deve ser definido. Se não houver buffer, podemos escrever como nenhum, e se não mencionarmos nenhum valor, o padrão é 8 KB
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Explicação do código:
No código acima, o tamanho do buffer é mencionado como 16 KB, em que o buffer seria desse tamanho
- isErrorPage:
- Indica que a página JSP que possui uma página de erro será verificada em outra página JSP
- Qualquer arquivo JSP declarado com o atributo "isErrorPage" é então capaz de receber exceções de outras páginas JSP que possuem páginas de erro.
- As exceções estão disponíveis apenas para essas páginas.
- O valor padrão é falso.
Sintaxe de isErrorPage:
<%@ page isErrorPage="true/false"%>
Exemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Explicação do código:
No código acima, isErrorPage é definido como verdadeiro. Conseqüentemente, ele verificará se qualquer outro JSPs possui o conjunto de atributos errorPage (descrito no próximo atributo) e se ele pode tratar exceções.
- Codificação de página:
O padrão é especificado como "ISO-8859-1" se qualquer outro não for especificado.
Sintaxe de pageEncoding:
<%@ page pageEncoding="vaue" %>
Aqui, o valor especifica o valor do conjunto de caracteres para JSP
Exemplo:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Explicação do código:
No código acima, "pageEncoding" foi definido para o conjunto de caracteres padrão ISO-8859-1
- errorPage:
Sintaxe de errorPage:
<%@ page errorPage="value" %>
Aqui, o valor representa o valor da página JSP de erro
Exemplo:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Explicação do código:
No código acima, para lidar com exceções, temos errroHandler.jsp
- isELIgnored:
- IsELIgnored é um atributo de sinalização onde temos que decidir se devemos ignorar as tags EL ou não.
- Seu tipo de dados é java enum e o valor padrão é false, portanto EL é habilitado por padrão.
Sintaxe de isELIgnored:
<%@ page isELIgnored="true/false" %>
Aqui, verdadeiro / falso representa o valor de EL se deve ser ignorado ou não.
Exemplo:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Explicação do código:
No código acima, isELIgnored é true e, portanto, Expression Language (EL) é ignorado aqui.
No exemplo abaixo, estamos usando quatro atributos (linha de código 1-2)
Exemplo com quatro atributos
<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%>Diretiva Guru JSP1 A data é: <% = new java.util.Date ()%>
Explicação do código:
Linha de código 1-2: aqui definimos quatro atributos, ou seja
- Linguagem: é definido como Java como linguagem de programação
- contentType: defina como text / html para informar ao compilador que html deve ser formatado
- pageEncoding: o conjunto de caracteres padrão é definido neste atributo
- isELIgnored: Expression Tag é falsa, portanto, não é ignorada
Linha de código 3: aqui usamos o atributo import, e ele está importando "Classe de data", que é do pacote de utilitários Java, e estamos tentando exibir a data atual no código.
Ao executar o código acima, você obterá a seguinte saída
Produto :
- A data é: a data atual usando o método de data da classe de data
Diretiva de inclusão JSP
- JSP "diretiva de inclusão" (linha de código 8) é usada para incluir um arquivo em outro arquivo
- Este arquivo incluído pode ser HTML, JSP, arquivos de texto, etc.
- Também é útil para criar modelos com as visualizações do usuário e dividir as páginas em cabeçalhos e rodapés e ações da barra lateral.
- Inclui arquivo durante a fase de tradução
Sintaxe da diretiva de inclusão:
<%@ include… .%>
Exemplo:
Directive_jsp2.jsp (arquivo principal)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "Directive_header_jsp3.jsp"%>Diretiva Guru JSP2 Este é o arquivo principal
Directive_header_jsp3.jsp (que está incluído no arquivo principal)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Arquivo de cabeçalho: <% int count = 1; contagem ++;out.println (contagem);%>:
Explicação do código:
Directive_jsp2.jsp:
Linha de código 3: neste código, usamos tags include onde estamos incluindo o arquivo Directive_header_jsp3.jsp no arquivo principal (_jsp2.jsp) e obtém a saída do arquivo principal e do arquivo incluído.
Directive_header_jsp3.jsp:
Linha de código 11-12: pegamos uma contagem de variável inicializada em 1 e a incrementamos. Isso dará a saída no arquivo principal conforme mostrado abaixo.
Ao executar o código acima, você obtém a seguinte saída:
Resultado:
- A saída é o arquivo de cabeçalho: 2: este é o arquivo principal
- A saída é executada a partir do arquivo Directive_jsp2.jsp enquanto o arquivo Directive_header_jsp3.jsp incluído será compilado primeiro.
- Após a finalização do arquivo incluído, o arquivo principal é executado, e a saída será do arquivo principal "Este é o arquivo principal". Portanto, você obterá a saída como "Arquivo de cabeçalho: 2" de _jsp3.jsp e "Este é o arquivo principal" de _jsp2.jsp.
Diretiva JSP Taglib
- A diretiva taglib JSP é usada para definir a biblioteca de tags com "taglib" como prefixo, que podemos usar em JSP.
- Mais detalhes serão cobertos na seção Tags personalizadas JSP
- A diretiva taglib JSP é usada nas páginas JSP usando as bibliotecas de tags padrão JSP
- Ele usa um conjunto de tags personalizadas, identifica a localização da biblioteca e fornece meios de identificar tags personalizadas na página JSP.
Sintaxe da diretiva taglib:
<%@ taglib uri="uri" prefix="value"%>
Aqui, o atributo "uri" é um identificador único no descritor da biblioteca de tags e o atributo "prefix" é um nome de tag.
Exemplo:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "gurutag" uri = "http://java.sun.com/jsp/jstl/core"%>Diretiva Guru JSP
Explicação do código:
Linha de código 3: aqui, "taglib" é definido com os atributos uri e prefixo.
Linha de código 9: "gurutag" é a tag personalizada definida e pode ser usada em qualquer lugar