English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Resposta do Servidor JSP

O objeto Response é responsável por retornar o resultado processado pelo contêiner JSP ao cliente. Pode ser configurado através da variável response para definir o estado HTTP e enviar dados ao cliente, como Cookie, informações de cabeçalhos HTTP, etc.

Uma resposta típica parece assim:

HTTP/1.1 200 OK
Conteúdo-Tipo: ...text/html
Cabeçalho2: ...
...
HeaderN: ...
  (linha em branco)
<!doctype ...>
<html>
<head>.../<head>
<body>
...
</body>
</html>

A linha de status contém informações sobre a versão do HTTP, como HTTP/1.1,um código de status, como200, e há mensagens muito curtas correspondentes aos códigos de status, como OK.

A tabela a seguir resume o HTTP1.1Parte mais útil do cabeçalho de resposta, que você verá frequentemente na programação de rede:

Cabeçalho de respostaDescrição
Permitir Especifica os métodos de solicitação suportados pelo servidor (GET, POST, etc.).
Cache-Controle Especifica as condições em que a resposta do documento pode ser armazenada em cache de forma segura. Normalmente públicoprivado ounão-Cache Etc. Public significa que o documento pode ser armazenado em cache, Private significa que o documento é para uso de um único usuário e pode usar apenas cache privado. No-Cache significa que o documento não será armazenado em cache.
Conexão Comando o navegador a usar ou não conexão HTTP persistente.FecharValor Comando o navegador para não usar conexão HTTP persistente, em vez de-Viva significa usar conexão persistente.
Conteúdo-Disponibilidade Permite que o navegador armazene a resposta com o nome fornecido no disco rígido
Conteúdo-Codificação Especifica as regras de codificação da página durante a transmissão
Conteúdo-Idioma Descreve o idioma utilizado pelo documento, por exemplo, en, en-us, ru e outros
Conteúdo-Comprimento Indica o número de bytes da resposta. Apenas quando o navegador usa-Conexão HTTP viva) é útil apenas quando há uma conexão
Conteúdo-Tipo Indica o tipo MIME utilizado pelo documento
Expira Indica quando expirar e ser removido do cache
Último-Modificado Indica a data da última modificação do documento. O cliente pode armazenar o documento em cache e fornecer Se-Modificado-DesdeCabeçalho de solicitação
Location No3Dentro de 00 segundos, todas as respostas com um código de status, o navegador se reconectará automaticamente e buscará o novo documento
Recarregar Especificar quanto tempo o navegador deve atualizar a página.
Re tentar-Após E503 Usado juntamente com (Service Unavailable) para informar ao usuário quando a solicitação será respondida
Set-Cookie Especificar o cookie correspondente à página atual

Classe HttpServletResponse

O objeto response é um exemplo da classe javax.servlet.http.HttpServletResponse. Assim como o servidor cria o objeto request, ele também cria uma resposta do cliente.

O objeto response define a interface para manipulação de cabeçalhos de informações HTTP. Usando esse objeto, os desenvolvedores podem adicionar novos cookies, timestamps e códigos de status HTTP, entre outros.

A tabela a seguir lista os métodos usados para configurar cabeçalhos de resposta HTTP, fornecidos pela classe HttpServletResponse:

N.S.Método & Descrição
1String encodeRedirectURL(String url) Codificar URL usada pelo método sendRedirect()
2String encodeURL(String url) Codificar URL, retornar URL contendo Session ID
3boolean containsHeader(String name) Retornar se o cabeçalho específico existe
4boolean isCommitted() Retornar se a resposta já foi enviada ao cliente
5void addCookie(Cookie cookie) Adicionar cookie específico à resposta
6void addDateHeader(String name, long date) Adicionar cabeçalho de resposta com nome especificado e valor de data
7void addHeader(String name, String value) Adicionar cabeçalho de resposta com nome especificado e valor
8void addIntHeader(String name, int value) Adicionar cabeçalho de resposta com nome especificado e valor int
9void flushBuffer() Escrever todo o conteúdo do cache para o cliente
10void reset() Limpar todos os dados de qualquer cache, incluindo códigos de status e cabeçalhos de resposta
11void resetBuffer() Limpar os dados básicos do cache, exceto os cabeçalhos de resposta e o código de estado
12void sendError(int sc) Enviar uma resposta de erro para o cliente usando o código de estado especificado, em seguida, limpar o cache
13void sendError(int sc, String msg) Enviar uma resposta de erro para o cliente usando o código de estado e mensagem especificados
14void sendRedirect(String location) Enviar uma resposta temporária indireta para o cliente usando o URL especificado
15void setBufferSize(int size) Definir o tamanho do buffer do corpo da resposta
16void setCharacterEncoding(String charset) Especificar o conjunto de caracteres de codificação da resposta (conjunto de caracteres MIME), por exemplo, UTF-8
17void setContentLength(int len) Especificar o comprimento do conteúdo da resposta do HTTP servlet, este método é usado para definir o HTTP Content-Cabeçalho de informações de comprimento
18void setContentType(String type) Definir o tipo de conteúdo da resposta, se a resposta ainda não foi enviada
19void setDateHeader(String name, long date) Usar o nome e a data especificados para definir o nome e a data do cabeçalho de resposta
20void setHeader(String name, String value) Usar o nome e o valor especificados para definir o nome e o conteúdo do cabeçalho de resposta
21void setIntHeader(String name, int value) Especificar um valor do tipo int para o cabeçalho name
22void setLocale(Locale loc) Definir o ambiente de linguagem da resposta, se a resposta ainda não foi enviada
23void setStatus(int sc) Definir o código de estado da resposta

Exemplo de programa de cabeçalho de resposta HTTP

O próximo exemplo utiliza os métodos setIntHeader() e setRefreshHeader() para simular um relógio digital:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Site de Tutorial Básico (oldtoolbag.com)</title>/<title>
</<head>
<body>
<h2>Exemplo de Atualização Automática</h2>
<%
   // Configurar a cada5segundos automaticamente atualizar
   response.setIntHeader("Refresh", 5);
   // Obter o tempo atual
   Calendar calendar = new GregorianCalendar();
   String am_pm;
   int hour = calendar.get(Calendar.HOUR);
   int minute = calendar.get(Calendar.MINUTE);
   int second = calendar.get(Calendar.SECOND);
   if(calendar.get(Calendar.AM_PM) == 0)
      am_pm = "AM";
   else
      am_pm = "PM";
   String CT = hour+:",+ minute +:",+ second +" ",+ am_pm;
   out.println("Tempo atual: ", + CT + "\n");
%>
</body>
</html>

Salve o código acima como main.jsp e acesse-o através do navegador. Ele atualizará a cada5Os segundos mostrarão o tempo atual do sistema.

Você também pode modificar manualmente o código acima, experimente usar outros métodos, você pode obter uma compreensão mais profunda.