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

Réponse serveur JSP

L'objet Response renvoie principalement les résultats traités par le conteneur JSP au client. Vous pouvez définir l'état HTTP via la variable response et envoyer des données au client, telles que des cookies, des informations d'en-tête HTTP, etc.

Une réponse typique ressemble à ce qui suit :

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

La ligne d'état contient des informations sur la version HTTP, par exemple HTTP/1.1, un code d'état, par exemple200, il y a aussi un message très court correspondant au code d'état, par exemple OK.

Le tableau suivant résume HTTP1.1C'est la partie la plus utile de l'en-tête de réponse, que vous verrez souvent dans le développement réseau :

En-tête de réponseDescription
Allow Spécifier les méthodes de requête prises en charge par le serveur (GET, POST, etc.)
Cache-Control Spécifier les cas où le document de réponse peut être stocké en toute sécurité en cache. Habituellement, les valeurs public,private ouno-cache etc. Public signifie que le document peut être mis en cache, Private signifie que le document est pour un seul utilisateur et ne peut être utilisé qu'avec un cache privé. No-Cache signifie que le document n'est pas mis en cache.
Connection Commander au navigateur s'il doit utiliser une connexion HTTP persistante.closevaleur Commander au navigateur de ne pas utiliser de connexion HTTP persistante, mais keep-Keep alive signifie qu'une connexion persistante est utilisée.
Content-Disposition Permettre au navigateur de stocker la réponse sur le disque sous un nom donné
Content-Encoding Spécifier les règles de codage de la page lors de la transmission
Content-Language Indiquer la langue utilisée par le document, par exemple en, en-us, ru, etc.
Content-Length Indiquer le nombre d'octets de la réponse. Seulement lorsque le navigateur utilise la persistance (keep-c'est utile uniquement pour les connexions HTTP persistantes (keep alive)
Content-Type Indiquer le type MIME utilisé par le document
Expires Indiquer quand le document expire et doit être supprimé du cache
Last-Modifié Indiquer la date de dernière modification du document. Le client peut mettre en cache le document et fournir Si-Modifié-DepuisEn-tête de requête
Location Dans3Dans 00 secondes, toutes les adresses de réponse contenant un code d'état, le navigateur se reconnectera automatiquement et récupérera le nouveau document
Refresh Indiquer combien de temps le navigateur doit attendre avant de demander à actualiser la page
Retry-Après Avec503 Utilisé avec (Service Unavailable) pour informer l'utilisateur de la durée avant que la requête soit traitée
Set-Cookie Indiquer le cookie correspondant à la page actuelle

Classe HttpServletResponse

L'objet response est un exemple de la classe javax.servlet.http.HttpServletResponse. Comme le serveur crée un objet request, il crée également une réponse client.

L'objet response définit l'interface de traitement des en-têtes HTTP. En utilisant cet objet, les développeurs peuvent ajouter de nouveaux cookies ou timestamps, ainsi que des codes d'état HTTP, etc.

Le tableau suivant liste les méthodes utilisées pour configurer les en-têtes de réponse HTTP, fournies par la classe HttpServletResponse :

S.N.Méthode & Description
1String encodeRedirectURL(String url) Encoder l'URL utilisée par la méthode sendRedirect()
2String encodeURL(String url) Encoder l'URL, renvoyer une URL contenant l'ID de session
3boolean containsHeader(String name) Retourner si l'en-tête spécifié existe
4boolean isCommitted() Retourner si la réponse a déjà été soumise au client
5void addCookie(Cookie cookie) Ajouter un cookie spécifié à la réponse
6void addDateHeader(String name, long date) Ajouter un en-tête de réponse avec le nom spécifié et une valeur de date
7void addHeader(String name, String value) Ajouter un en-tête de réponse avec le nom spécifié et une valeur
8void addIntHeader(String name, int value) Ajouter un en-tête de réponse avec le nom spécifié et une valeur int
9void flushBuffer() Écrire tout le contenu du cache au client
10void reset() Effacer toutes les données du cache, y compris les codes d'état et les en-têtes de réponse
11void resetBuffer() Effacer les données de cache de base, sans inclure les en-têtes de réponse et les codes d'état
12void sendError(int sc) Envoyer une réponse d'erreur au client en utilisant un code d'état spécifié, puis effacer le cache
13void sendError(int sc, String msg) Envoyer une réponse d'erreur au client en utilisant un code d'état et un message spécifiés
14void sendRedirect(String location) Envoyer une réponse indirecte temporaire au client à l'aide d'une URL spécifiée
15void setBufferSize(int size) Définir la taille du tampon du corps de réponse
16void setCharacterEncoding(String charset) Spécifier le jeu de caractères de codage de la réponse (jeu de caractères MIME), par exemple UTF-8
17void setContentLength(int len) Spécifier la longueur du contenu de la réponse dans les servlets HTTP, cette méthode est utilisée pour définir le HTTP Content-En-tête de longueur
18void setContentType(String type) Définir le type de contenu de la réponse, si la réponse n'a pas encore été soumise
19void setDateHeader(String name, long date) Définir le nom et la date de l'en-tête de réponse en utilisant un nom et une date spécifiés
20void setHeader(String name, String value) Définir le nom et le contenu de l'en-tête de réponse en utilisant un nom et une valeur spécifiés
21void setIntHeader(String name, int value) Spécifier une valeur de type int pour l'en-tête name
22void setLocale(Locale loc) Définir l'environnement linguistique de la réponse, si la réponse n'a pas encore été soumise
23void setStatus(int sc) Définir le code d'état de la réponse

Exemple de programme d'en-tête HTTP

Les exemples suivants utilisent les méthodes setIntHeader() et setRefreshHeader() pour simuler une horloge numérique :

<%@ 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 tutoriels de base (oldtoolbag.com)</title>/<title>
</<head>
<body>
<h2>Exemple de rafraîchissement automatique</h2>
<%
   // Définir toutes les5secondes automatiques de rafraîchissement
   response.setIntHeader("Refresh", 5);
   // Obtenir l'heure actuelle
   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("Heure actuelle: \" + CT + "\n");
%>
</body>
</html>

Enregistrer le code ci-dessus sous le nom de main.jsp, puis accédez à ce fichier via un navigateur. Il rafraîchira toutes les5Les secondes affichent l'heure actuelle du système.

Vous pouvez également modifier le code ci-dessus vous-même, essayez d'utiliser d'autres méthodes, vous obtiendrez une compréhension plus profonde.