Objetos implícitos JSP: tutorial completo

Índice:

Anonim

O que é objeto JSP Implícito?

  • Os objetos implícitos JSP são criados durante a fase de tradução de JSP para o servlet.
  • Esses objetos podem ser usados ​​diretamente em scriplets que vão no método de serviço.
  • Eles são criados pelo contêiner automaticamente e podem ser acessados ​​por meio de objetos.

Quantos objetos implícitos estão disponíveis no JSP?

Existem 9 tipos de objetos implícitos disponíveis no contêiner:

  1. Fora
  2. solicitação
  3. resposta
  4. config
  5. inscrição
  6. sessão
  7. pageContext
  8. página
  9. exceção

Vamos estudar um por um

Fora

  • Out é um dos objetos implícitos para gravar os dados no buffer e enviar a saída para o cliente em resposta
  • O objeto de saída nos permite acessar o fluxo de saída do servlet
  • Out é o objeto da classe javax.servlet.jsp.jspWriter
  • Ao trabalhar com servlet, precisamos do objeto printwriter

Exemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP1 implícito <% int num1 = 10; int num2 = 20;out.println ("num1 é" + num1);out.println ("num2 é" + num2);%>

Explicação do código:

Linha de código 11-12 - saída é usada para imprimir no fluxo de saída

Quando executamos o código acima, obtemos a seguinte saída:

Resultado:

  • Na saída, obtemos os valores de num1 e num2

Solicitação

  • O objeto de solicitação é uma instância de java.servlet.http.HttpServletRequest e é um dos argumentos do método de serviço
  • Ele será criado por contêiner para cada solicitação.
  • Ele será usado para solicitar informações como parâmetro, informações de cabeçalho, nome do servidor, etc.
  • Ele usa getParameter () para acessar o parâmetro de solicitação.

Exemplo:

Implicit_jsp2.jsp (formulário a partir do qual a solicitação é enviada para guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Formulário Guru implícito JSP2 

Guru.jsp (onde a ação é realizada)

Explicação do código:

Linha de código 10-13: Em implícito_jsp2.jsp (formulário), a solicitação é enviada, portanto, a variável nome de usuário é processada e enviada para guru.jsp, que é uma ação de JSP.

Guru.jsp

Linha de código 10-11: É a ação jsp onde a solicitação é processada e o nome de usuário é obtido do formulário jsp.

Ao executar o código acima, você obtém a seguinte saída

Resultado:

Quando você escreve o teste e clica no botão enviar, obtém a seguinte saída "Teste de boas-vindas".

Resposta

  • "Resposta" é uma instância de classe que implementa a interface HttpServletResponse
  • O container gera este objeto e passa para o método _jspservice () como parâmetro
  • O "objeto de resposta" será criado pelo contêiner para cada solicitação.
  • Representa a resposta que pode ser dada ao cliente
  • O objeto implícito de resposta é usado para tipo de conteúdo, adicionar cookie e redirecionar para página de resposta

Exemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP4 implícito <% response.setContentType ("text / html"); %>

Explicação do código:

Linha de código 11: No objeto de resposta, podemos definir o tipo de conteúdo

Aqui, estamos definindo apenas o tipo de conteúdo no objeto de resposta. Portanto, não há saída para isso.

Config

  • "Config" é do tipo java.servlet.servletConfig
  • É criado pelo contêiner para cada página jsp
  • É usado para obter o parâmetro de inicialização em web.xml

Exemplo:

Web.xml (especifica o nome e mapeamento do servlet)

Implicit_jsp5.jsp (obtendo o valor do nome do servlet)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP5 implícito <% String servletName = config.getServletName ();out.println ("Nome do servlet é" + nome do servlet);%>

Explicação do código:

Em web.xml

Linha de código 14-17: Em web.xml, temos o mapeamento de servlets para as classes.

Implicit_jsp5.jsp

Linha de código 10-11: Para obter o nome do servlet em JSP, podemos usar config.getServletName, que nos ajudará a obter o nome do servlet.

Ao executar o código acima, você obtém a seguinte saída:

Resultado:

  • O nome do servlet é "GuruServlet", pois o nome está presente em web.xml

Inscrição

  • O objeto de aplicativo (linha de código 10) é uma instância de javax.servlet.ServletContext e é usado para obter as informações de contexto e atributos em JSP.
  • O objeto de aplicativo é criado por um contêiner por aplicativo, quando o aplicativo é implementado.
  • O objeto servletcontext contém um conjunto de métodos que são usados ​​para interagir com o contêiner de servlet. Podemos encontrar informações sobre o contêiner de servlet

Exemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Implicit JSP6 <% application.getContextPath (); %>

Explicação do código:

  • No código acima, o atributo do aplicativo ajuda a obter o caminho do contexto da página JSP.

Sessão

  • A sessão está mantendo o objeto "httpsession" (linha de código 10).
  • O objeto de sessão é usado para obter, definir e remover atributos para o escopo da sessão e também para obter informações da sessão

Exemplo:

Implicit_jsp7 (o atributo está definido)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> JSP implícito <% session.setAttribute ("usuário", "GuruJSP"); %> Clique aqui para obter o nome de usuário 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP8 implícito <% String name = (String) session.getAttribute ("usuário");out.println ("Nome de usuário é" + nome);%>

Explicação do código:

Implicit_jsp7.jsp

Linha de código 11: estamos definindo o atributo user na variável de sessão, e esse valor pode ser obtido da sessão em qualquer jsp é chamado a partir desse (_jsp8.jsp).

Linha de código 12: Estamos chamando outro jsp em href, no qual obteremos o valor do atributo user definido.

Implicit_jsp8.jsp

Linha de código 11: estamos obtendo o valor do atributo do usuário do objeto de sessão e exibindo esse valor

Ao executar o código acima, você obtém a seguinte saída:

Quando você clica no link para o nome de usuário. Você obterá a seguinte saída.

Resultado:

  • Quando clicamos no link fornecido em implicit_jsp7.jsp, somos redirecionados para a segunda página jsp, ou seja, página (_jsp8.jsp) e obtemos o valor do objeto de sessão do atributo do usuário (_jsp7.jsp).

pageContext:

  • Este objeto é do tipo pagecontext.
  • É usado para obter, definir e remover os atributos de um escopo particular

Os escopos são de 4 tipos:

  • Página
  • Solicitação
  • Sessão
  • Inscrição

Exemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP9 implícito <% pageContext.setAttribute ("aluno", "gurustudent", pageContext.PAGE_SCOPE);Nome da string = (String) pageContext.getAttribute ("aluno");out.println ("o nome do aluno é" + nome);%>

Explicação do código:

Linha de código 11: estamos configurando o atributo usando o objeto pageContext, e ele tem três parâmetros:

  • Chave
  • Valor
  • Escopo

No código acima, a chave é aluno e o valor é "gurustudent", enquanto o escopo é o escopo da página. Aqui, o escopo é "página" e pode ser obtido usando apenas o escopo da página.

Linha de código 12: estamos obtendo o valor do atributo usando pageContext

Ao executar o código acima, você obtém a seguinte saída:

Resultado:

  • A saída imprimirá "o nome do aluno é gurustudent".

Página

  • A variável implícita da página contém o objeto servlet executado atualmente para o jsp correspondente.
  • Atua como este objeto para a página jsp atual.

Exemplo:

Neste exemplo, estamos usando o objeto de página para obter o nome da página usando o método toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP10 implícito <% String pageName = page.toString ();out.println ("Nome da página é" + pageName);%>

Explicação do código:

Linha de código 10-11: Neste exemplo, estamos tentando usar o método toString () do objeto da página e tentando obter o nome da string da Página JSP.

Ao executar o código, você obtém a seguinte saída:

Resultado:

  • A saída é o nome da string da página jsp acima

Exceção

  • A exceção é o objeto implícito da classe que pode ser lançada.
  • É usado para tratamento de exceções em JSP.
  • O objeto de exceção só pode ser usado em páginas de erro.

    Exemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Implícito Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = exceção%>

Explicação do código:

Linha de código 10-12 - Tem uma matriz de números, ou seja, num1 com quatro elementos. Na saída, estamos tentando imprimir o quinto elemento da matriz de num1, que não está declarado na lista de matrizes. Portanto, é usado para obter o objeto de exceção do jsp.

Resultado:

Estamos obtendo ArrayIndexOfBoundsException na matriz onde estamos obtendo uma matriz num1 do quinto elemento.