O objeto Response transmite principalmente os resultados processados pelo contêiner JSP de volta ao cliente. Você pode definir o status HTTP e enviar dados ao cliente por meio da variável de resposta, como cookies, informações de cabeçalho do arquivo HTTP, etc.
Uma resposta típica é assim:
HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ...HeaderN: ... (Linha em branco)<!doctype ...><html><head>...</head><body> ... </body></html>
A linha de status contém informações de versão HTTP, como HTTP/1.1, um código de status, como 200, e uma mensagem muito curta correspondente ao código de status, como OK.
A tabela a seguir resume as partes mais úteis dos cabeçalhos de resposta HTTP 1.1, que você verá frequentemente na programação de rede:
cabeçalho de resposta | descrever |
---|---|
Permitir | Especifique os métodos de solicitação suportados pelo servidor (GET, POST, etc.) |
Controle de cache | Especifica as circunstâncias sob as quais os documentos de resposta podem ser armazenados em cache com segurança. Geralmente o valor é public , private ou no-cache , etc. Público significa que o documento pode ser armazenado em cache e Privado significa que o documento só é servido a um único usuário e só pode usar cache privado. Sem cache significa que o documento não está armazenado em cache. |
Conexão | Instrui o navegador se deve usar conexões HTTP persistentes. O valor close instrui o navegador a não usar conexões HTTP persistentes, enquanto keep-alive significa usar conexões persistentes. |
Disposição de conteúdo | Deixe o navegador pedir ao usuário para armazenar a resposta no disco com o nome fornecido |
Codificação de conteúdo | Especifique as regras de codificação da página durante a transmissão |
Idioma do conteúdo | O idioma usado para expressar o documento, como en, en-us, ru, etc. |
Comprimento do conteúdo | Indica o número de bytes na resposta. Útil apenas se o navegador usar conexões HTTP keep-alive |
Tipo de conteúdo | Indica o tipo MIME usado pelo documento |
Expira | Indique quando expirar e remover do cache |
Última modificação | Indica quando o documento foi modificado pela última vez. O cliente pode armazenar o documento em cache e fornecer um cabeçalho de solicitação If-Modified-Since em solicitações subsequentes |
Localização | Dentro de 300 segundos, incluindo todos os endereços de resposta com um código de status, o navegador se reconectará automaticamente e recuperará novos documentos. |
Atualizar | Indica com que frequência o navegador solicita atualizações na página. |
Tentar novamente depois | Usado com 503 (Serviço Indisponível) para informar ao usuário quanto tempo levará até que a solicitação seja respondida |
Definir cookie | Indique o cookie correspondente à página atual |
O objeto de resposta é uma instância da classe javax.servlet.http.HttpServletResponse. Assim como o servidor cria o objeto de solicitação, ele também cria uma resposta do cliente.
O objeto de resposta define a interface para lidar com a criação de cabeçalhos HTTP. Ao usar este objeto, os desenvolvedores podem adicionar novos cookies ou carimbos de data/hora, códigos de status HTTP e muito mais.
A tabela a seguir lista os métodos usados para definir cabeçalhos de resposta HTTP. Esses métodos são fornecidos pela classe HttpServletResponse:
SN | Método e Descrição |
---|---|
1 | String encodeRedirectURL(String url) codifica o URL usado pelo método sendRedirect() |
2 | String encodeURL(String url) codifica o URL e retorna o URL que contém o ID da sessão. |
3 | boolean containsHeader(String name) retorna se o cabeçalho de resposta especificado existe |
4 | boolean isCommitted() retorna se a resposta foi enviada ao cliente |
5 | void addCookie(Cookie cookie) adiciona o cookie especificado à resposta |
6 | void addDateHeader(String name, long date) adiciona o cabeçalho de resposta e o valor de data do nome especificado |
7 | void addHeader(String name, String value) adiciona o cabeçalho de resposta e o valor do nome especificado |
8 | void addIntHeader(String name, int value) adiciona o cabeçalho de resposta e o valor int do nome especificado |
9 | void flushBuffer() grava o conteúdo de qualquer cache no cliente |
10 | void reset() limpa todos os dados em qualquer cache, incluindo códigos de status e vários cabeçalhos de resposta |
11 | void resetBuffer() limpa os dados básicos do cache, excluindo cabeçalhos de resposta e códigos de status |
12 | void sendError(int sc) envia uma resposta de erro ao cliente usando o código de status especificado e, em seguida, limpa o cache |
13 | void sendError(int sc, String msg) envia uma resposta de erro ao cliente usando o código de status e a mensagem especificados |
14 | void sendRedirect(String location) envia uma resposta indireta temporária ao cliente usando o URL especificado |
15 | void setBufferSize(int size) define o tamanho do buffer do corpo da resposta |
16 | void setCharacterEncoding(String charset) especifica o conjunto de codificação de resposta (conjunto de caracteres MIME), como UTF-8 |
17 | void setContentLength(int len) especifica o comprimento do conteúdo da resposta em servlets HTTP. Este método é usado para definir o cabeçalho de informações HTTP Content-Length. |
18 | void setContentType(String type) define o tipo de conteúdo da resposta, se a resposta ainda não tiver sido enviada |
19 | void setDateHeader(String name, long date) define o nome e o conteúdo do cabeçalho de resposta usando o nome e o valor especificados |
20 | void setHeader(String name, String value) define o nome e o conteúdo do cabeçalho de resposta usando o nome e valor especificados |
vinte e um | void setIntHeader(String name, int value) define o nome e o conteúdo do cabeçalho de resposta usando o nome e o valor especificados |
vinte e dois | void setLocale(Locale loc) define a localidade da resposta, se a resposta ainda não tiver sido enviada |
vinte e três | void setStatus(int sc) define o código de status da resposta |
O exemplo a seguir usa o método setIntHeader() e o método setRefreshHeader() para simular um relógio digital:
<%@ page import="java.io.*,java.util.*" %><html><head><title>Exemplo de cabeçalho de atualização automática</title></head><body><center><h2 >Exemplo de cabeçalho de atualização automática</h2><% //Definir atualização automática a cada 5 segundos response.setIntHeader("Refresh", 5 //Obter a hora atual Calendar calendar = new GregorianCalendar(); am_pm;int hora = calendário.get(Calendário.HORA); int minuto = calendário.get(Calendário.AM_PM) == 0) am_pm = "AM"; else am_pm = "PM"; String CT = hora+":"+ minuto +":"+ segundo +" "+ am_pm; out.println("A hora atual é: " + CT + "n");
Salve o código acima como main.jsp e acesse-o através do seu navegador. Ele exibirá a hora atual do sistema a cada 5 segundos.
Os resultados da execução são os seguintes:
Exemplo de cabeçalho de atualização automática O horário atual é: 21h44:50
Você também pode modificar o código acima e tentar outros métodos para obter uma compreensão mais profunda.