web-dev-qa-db-fra.com

quelle est l'utilisation de "response.setContentType (" text / html ")" dans servlet

public class HelloWorld extends HttpServlet{ 
      public void doGet(HttpServletRequest request, 
      HttpServletResponse response)
      throws ServletException,IOException{
      **response.setContentType("text/html");**
      PrintWriter pw = response.getWriter();
      pw.println("<html>");
      pw.println("<head><title>Hello World</title></title>");
      pw.println("<body>");
      pw.println("<h1>Hello World</h1>");
      pw.println("</body></html>");
      }
    }
18
gowthaman

Les types de contenu sont inclus dans les réponses HTTP car le même octet pour la séquence d'octets de valeurs dans le contenu peut être interprété de plusieurs manières. (*)

N'oubliez pas que http peut transporter plus que du HTML (js, css et images en sont des exemples évidents) et que, dans certains cas, le destinataire ne saura pas quel type d'objet il va recevoir.


(*) l’évidence ici est XHTML - qui est XML. S'il est servi avec un type de contenu de application/xml, le destinataire devrait simplement le traiter comme XML. Si c'est servi comme application/xhtml+xml, alors il devrait être traité comme XHTML.

18

De la documentation JavaEE ServletResponse#setContentType

  • Définit le type de contenu de la réponse envoyée au client, si la réponse n'a pas encore été validée.

  • Le type de contenu donné peut inclure une spécification de codage de caractères, par exemple:

response.setContentType("text/html;charset=UTF-8");

  • Le codage de caractères de la réponse est uniquement défini à partir du type de contenu donné si cette méthode est appelée avant l'appel de getWriter.

  • Cette méthode peut être appelée à plusieurs reprises pour modifier le type de contenu et le codage des caractères.

  • Cette méthode n'a aucun effet si elle est appelée après la validation de la réponse. Il ne définit pas le codage de caractères de la réponse s'il est appelé après l'appel de getWriter ou après la validation de la réponse.

  • Les conteneurs doivent communiquer au client le type de contenu et le codage de caractères utilisés pour l'écrivain de la réponse du servlet si le protocole permet de le faire. Dans le cas de HTTP, l'en-tête Content-Type est utilisé.

13
Aniket Kulkarni

Cela signifie quel type de réponse que vous souhaitez envoyer au client, certains types de contenu tels que:

 res.setContentType("image/gif");
 res.setContentType("application/pdf");
 res.setContentType("application/Zip");
5
Ayaz Ali Khatri
response.setContentType("text/html");

Le code ci-dessus serait inclus dans "Réponse HTTP" pour informer le navigateur du format de la réponse, afin que le navigateur puisse l'interpréter.

2
venky

C’est l’un des types MIME, dans ce cas, vous êtes un en-tête de réponse MIME un type à text/html _ cela signifie qu’il affiche le type HTML. C'est une information pour le navigateur. Vous pouvez définir d’autres types d’affichage pour Excel, Zip, etc. Veuillez consulter MIME Type pour plus d'informations

1
Pradeep Simha

Vous devez dire au navigateur ce que vous envoyez en retour afin que le navigateur puisse prendre les mesures appropriées, telles que le lancement d'un PDF spectateur s'il s'agit d'un PDF en cours de réception) ou lancer un lecteur vidéo pour lire un fichier vidéo, restituer le code HTML si le type de contenu est une réponse html simple, enregistrez les octets de la réponse sous forme de fichier téléchargé, etc.

certains types MIME courants sont text/html, application/pdf, video/quicktime, application/java, image/jpeg, application/jar, etc.

Dans votre cas, puisque vous envoyez une réponse HTML au client, vous devrez définir le type de contenu text/html.

1
nagesh