Latest web development tutorials

JSP odpowiedzi serwera

Response to przede wszystkim wynikiem post-processingu JSP pojemnika, aby przejść z powrotem do klienta. Można ustawić odpowiedź HTTP w zależności od czynników państwowych i przesyłania danych, takich jak ciasteczka, informacje nagłówka HTTP do klienta.

Typowa reakcja wygląda następująco:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (空行)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>

Linia stanu zawiera informacje o wersji protokołu HTTP, takich jak HTTP / 1.1, kod stanu, takich jak 200, jest bardzo krótki komunikat odpowiadający kodowi statusu, takiej jak OK.

Poniższa tabela podsumowuje nagłówek odpowiedzi HTTP1.1 najbardziej przydatne części sieci Programowanie Będziesz często je zobaczyć:

nagłówek odpowiedzi opis
dopuszczać Określa, czy serwer obsługuje metody żądania (GET, POST, etc.)
Cache-Control Określa dokument odpowiedź może być buforowane sytuacji w zakresie bezpieczeństwa. Wartość ta jest zwykle publiczny, prywatny lub no-cache, i tak dalej. Publiczne oznacza, że ​​dokumenty mogą być buforowane, prywatna oznacza, że ​​dokument jest tylko pojedyncza usługa użytkownika i używać tylko do prywatnej pamięci podręcznej. No-cache oznacza, że ​​dokument nie będą buforowane.
połączenie Przeglądarka poleceń czy użyć trwałych połączeń HTTP. zamknij przeglądarek poleceń wartość nie używać stałych połączeń HTTP i keep-alive oznacza używanie stałych połączeń.
Content-Dyspozycja Niech przeglądarka wymaga od użytkownika odpowiedzi na danej nazwy zapisanej na dysku
Content-Encoding określono zasady kodowania Transmisja stronę
Content-Language Opis Język dokumentu używany, takie jak en, en-us ,, ru etc.
Content-Length Wskazuje na liczbę bajtów w reakcji. Tylko w przeglądarce aby korzystać trwałe pomocne if (Keep-alive) połączeń HTTP
Content-Type MIME dokumentu wskazuje, że wykorzystanie
wygasa Gdy podano upłynął i usuwane z pamięci podręcznej
Last-Modified Określone w dokumencie był ostatnio modyfikowany. Klienci mogą buforować dokumenty i dostarczyć If-Modified-Since w kolejnych żądań żądania nagłówek
lokalizacja W 300 sekund, w tym wszystkie mają kod stanu w odpowiedzi na adres, przeglądarka automatycznie ponownie, a następnie pobiera nowy dokument
Odśwież Wskazać, jak często przeglądarka żąda aktualizacji strony.
Retry-After I 503 (usługa niedostępna) stosowane razem poinformować użytkownika, jak długo wniosek otrzyma odpowiedź
Set-Cookie Odpowiadający cookies wskazuje aktualną stronę

Klasa HttpServletResponse

Obiekt odpowiedzi javax.servlet.http.HttpServletResponse jest instancją klasy. Podobnie jak serwer tworzy obiekty żądania, będzie to powodować reakcję klienta.

Obiekt odpowiedzi definiuje proces tworzenia informacje nagłówka HTTP interfejs. Za pomocą tego obiektu, programiści mogą dodawać nowe ciasteczko lub znacznik czasu, jak również kod stanu HTTP, i tak dalej.

Poniższa tabela służy do ustawiania metody nagłówki odpowiedzi HTTP, że przewidziane przez klasę HttpServletResponse:

SN Sposób i opis
1 encodeRedirectURL String (String url)

Na sendRedirect () Metoda URL używany do kodowania
2 encodeURL String (String url)

Kodowanie URL, powrót URL, który zawiera identyfikator sesji
3 logiczna containsHeader (String name)

Zwraca określony nagłówek odpowiedzi, jeśli istnieje
4 logiczna isCommitted ()

Zwraca czy odpowiedź została przesłana do klienta
5 void addCookie (Cookie cookie)

Dodaje określony plik cookie do odpowiedzi
6 void addDateHeader (String name, długa data )

Dodaj nagłówki odpowiedzi i datę podano nazwy
7 void AddHeader (String name, String value )

Dodaj nagłówki odpowiedzi i wartości podanej nazwie
8 void addIntHeader (String name, int value )

Dodaj nagłówki odpowiedzi INT wartość o podanej nazwie
9 unieważnić flushBuffer ()

Jakiejkolwiek zawartości pamięci podręcznej klienta zapisywane
10 void reset ()

Usuń wszelkie buforowania danych, w tym kody stanu i różnych nagłówków odpowiedzi
11 unieważnić resetBuffer ()

Usuń Podstawowa pamięć podręczna danych, nie licząc nagłówków odpowiedzi i kodów stanu
12 unieważnić sendError (int sc)

Przy użyciu określonego kodu statusu wysyłany do klienta odpowiedź błędu, a następnie wyczyścić pamięć podręczną
13 void sendError (int sc, msg String )

Przy użyciu określonego kodu stanu i komunikat o błędzie jest wysyłany w odpowiedzi do klienta
14 unieważnić sendRedirect (lokalizacja String)

Korzystanie z określonego adresu URL wysyłany do klienta tymczasowa odpowiedź pośrednia
15 void setBufferSize (int size)

Ustaw rozmiar bufora ciała odpowiedzi
16 void setCharacterEncoding (charset String)

Określa zestaw kodu odpowiedzi (zestawu znaków MIME), takie jak UTF-8
17 void setContentLength (int len)

Określa serwletów HTTP w odpowiedzi na długości zawartości, metoda służy do ustawiania HTTP Content-Length nagłówek
18 void setContentType (typu String)

Ustaw typ zawartości odpowiedzi, jeśli odpowiedź nie została jeszcze przedłożona, a następnie
19 void setDateHeader (String name, długa data )

O określonej nazwie i ustaw wartość nazwy nagłówka i treści odpowiedzi
20 void setHeader (String name, String value )

O określonej nazwie i ustaw wartość nazwy nagłówka i treści odpowiedzi
21 void setIntHeader (String name, int value )

O określonej nazwie i ustaw wartość nazwy nagłówka i treści odpowiedzi
22 void setlocale (Locale loc)

Locale odpowiedź ustawienie, jeśli odpowiedź nie została jeszcze przedłożona, a następnie
23 void setStatus (int sc)

Ustaw kod stanu odpowiedzi

nagłówka odpowiedzi HTTP Program Przykład

W poniższym przykładzie użyto setIntHeader () metodę i setRefreshHeader () aby symulować zegar cyfrowy:

<%@ 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>本教程(w3big.com)</title>
</head>
<body>
<h2>自动刷新实例</h2>
<%
   // 设置每隔5秒自动刷新
   response.setIntHeader("Refresh", 5);
   // 获取当前时间
   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("当前时间: " + CT + "\n");
%>
</body>
</html>

Zapisz powyższy kod main.jsp, a następnie uzyskać do niego dostęp za pomocą przeglądarki. Będzie on wyświetlany co pięć sekund w danym momencie.

Możemy spojrzeć na poniższych wykresach prezentacji GIF:

Można również zmodyfikować powyższy kod to sam, spróbuj użyć innych metod, będziemy w stanie uzyskać głębsze zrozumienie.