English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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éponse | Description |
---|---|
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 |
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 |
---|---|
1 | String encodeRedirectURL(String url) Encoder l'URL utilisée par la méthode sendRedirect() |
2 | String encodeURL(String url) Encoder l'URL, renvoyer une URL contenant l'ID de session |
3 | boolean containsHeader(String name) Retourner si l'en-tête spécifié existe |
4 | boolean isCommitted() Retourner si la réponse a déjà été soumise au client |
5 | void addCookie(Cookie cookie) Ajouter un cookie spécifié à la réponse |
6 | void addDateHeader(String name, long date) Ajouter un en-tête de réponse avec le nom spécifié et une valeur de date |
7 | void addHeader(String name, String value) Ajouter un en-tête de réponse avec le nom spécifié et une valeur |
8 | void addIntHeader(String name, int value) Ajouter un en-tête de réponse avec le nom spécifié et une valeur int |
9 | void flushBuffer() Écrire tout le contenu du cache au client |
10 | void reset() Effacer toutes les données du cache, y compris les codes d'état et les en-têtes de réponse |
11 | void resetBuffer() Effacer les données de cache de base, sans inclure les en-têtes de réponse et les codes d'état |
12 | void sendError(int sc) Envoyer une réponse d'erreur au client en utilisant un code d'état spécifié, puis effacer le cache |
13 | void 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 |
14 | void sendRedirect(String location) Envoyer une réponse indirecte temporaire au client à l'aide d'une URL spécifiée |
15 | void setBufferSize(int size) Définir la taille du tampon du corps de réponse |
16 | void 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 |
17 | void 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 |
18 | void setContentType(String type) Définir le type de contenu de la réponse, si la réponse n'a pas encore été soumise |
19 | void 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 |
20 | void 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 |
21 | void setIntHeader(String name, int value) Spécifier une valeur de type int pour l'en-tête name |
22 | void setLocale(Locale loc) Définir l'environnement linguistique de la réponse, si la réponse n'a pas encore été soumise |
23 | void setStatus(int sc) Définir le code d'état de la réponse |
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.