Diretivas JSP: Página, Incluir e Tutorial Taglib

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:

Existem três tipos de diretivas:

  1. Diretiva de página
  2. Incluir diretiva
  3. Diretiva Taglib

Cada um deles é descrito em detalhes abaixo com exemplos:

Neste tutorial, você aprenderá -

Diretiva de página JSP

Sintaxe da diretiva da página:

  • 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:

  1. Língua
  2. Estende
  3. Importar
  4. tipo de conteúdo
  5. informação
  6. sessão
  7. isThreadSafe
  8. autoflush
  9. amortecedor
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  13. isELIgonored

Mais detalhes sobre cada atributo

  1. língua : Define a linguagem de programação (linguagem subjacente) que está sendo usada na página.

    Sintaxe da linguagem:

    Aqui, o valor é a linguagem de programação (linguagem subjacente)

Exemplo:

Explicação do código: No exemplo acima, o valor da linguagem do atributo é Java, que é a linguagem subjacente neste caso. Conseqüentemente, o código nas tags de expressão seria compilado usando o compilador java.

  1. Estende : Este atributo é usado para estender (herdar) a classe como JAVA faz

Sintaxe de extends:

Aqui, o valor representa a classe da qual deve ser herdado.

Exemplo:

 

Explicação do código: No código acima, JSP está estendendo DemoClass, que está dentro do pacote demotest, e estenderá todos os recursos de classe.

  1. 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 o código de servlet. É semelhante a instruções de importação em classes java, interfaces.

Sintaxe de importação :

Aqui, o valor indica as classes que devem ser importadas.

Exemplo:

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.

  1. tipo de conteúdo :
  • 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:

Exemplo:

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.

  1. 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:

Aqui, o valor representa as informações do servlet.

Exemplo:

Explicação do código:

No código acima, a string 'Guru Directive JSP' pode ser recuperada pela interface do servlet usando getServletInfo ()

  1. 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 está definido como falso, podemos indicar ao compilador para não criar a sessão por padrão.

Sintaxe da sessão:

Aqui, neste caso, o atributo da sessão pode ser definido como verdadeiro ou falso

Exemplo:

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

  1. 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 qualquer objeto compartilhado e pode gerar inconsistência.

Sintaxe de isThreadSafe:

Aqui, verdadeiro ou falso representa se a sincronização existe, então defina como verdadeiro e defina-o como falso.

Exemplo:

 

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.

  1. AutoFlush:

Este atributo especifica que a saída armazenada 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:

Aqui, verdadeiro / falso representa se o armazenamento em buffer deve ser feito ou não

Exemplo:

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.

  1. 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 o buffer antes de gravar no objeto de resposta.

Sintaxe do buffer:

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:

Explicação do código:

No código acima, o tamanho do buffer é mencionado como 16 KB, em que o buffer seria desse tamanho

  1. 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:

 

Exemplo:

Explicação do código:

No código acima, isErrorPage é definido como verdadeiro. Portanto, ele verificará se qualquer outro JSPs possui o atributo errorPage (descrito no próximo atributo) definido e se ele pode tratar exceções.

  1. Codificação de página:
O atributo 'pageEncoding' define a codificação de caracteres para a página JSP.

O padrão é especificado como 'ISO-8859-1' se qualquer outro não for especificado.

Sintaxe de pageEncoding:

Aqui, o valor especifica o valor do conjunto de caracteres para JSP

Exemplo:

Explicação do código:

No código acima, 'pageEncoding' foi definido para o conjunto de caracteres padrão ISO-8859-1

  1. errorPage:
Este atributo é usado para definir a página de erro para a página JSP se JSP lançar uma exceção e, em seguida, redirecionar para a página de exceção.

Sintaxe de errorPage:

Aqui, o valor representa o valor da página JSP de erro

Exemplo:

Explicação do código:

No código acima, para lidar com exceções, temos errroHandler.jsp

  1. 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:

Aqui, verdadeiro / falso representa o valor de EL se deve ser ignorado ou não.

Exemplo:

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

 Directive Guru JSP1  Date is:  

Explicação do código:

Linha de código 1-2: Aqui, definimos quatro atributos, ou seja,

  • Linguagem: é definida 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 a 'classe Date', 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

Saída :

  • A data é: a data atual usando o método de data da classe de data

Diretiva de inclusão JSP

  • JSP 'incluir diretiva' (linha de código 8) é usado para incluir um arquivo para 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çalho e rodapé e ações da barra lateral.
  • Inclui arquivo durante a fase de tradução

Sintaxe da diretiva de inclusão:

Exemplo:

Directive_jsp2.jsp (arquivo principal)

 Guru Directive JSP2  This is the main file  

Directive_header_jsp3.jsp (que está incluído no arquivo principal)

  Header file :   : 

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 obter 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 então 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:

Saída:

  • 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 conclusã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 abordados 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:

Aqui, o atributo 'uri' é um identificador único no descritor da biblioteca de tags e o atributo 'prefix' é um nome de tag.

Exemplo:

 Guru Directive 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