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:
- Fora
- solicitação
- resposta
- config
- inscrição
- sessão
- pageContext
- página
- 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.