Notion de réponse

La réponse d'une servlet à un client est un flux HTTP modélisé par deux classes : ServletResponse et HttpServletResponse. Ces deux classes exposent des méthodes qui permettent de fixer cette réponse et de la paramétrer, notamment de fixer le type MIME de cette réponse, ou l'encodage des caractères dans le cas d'une réponse textuelle.

Le contenu de la réponse d'une servlet n'est pas envoyé au client directement ; il est tout d'abord enregistré dans un buffer. La classe Response expose quelques méthodes qui permettent de contrôler ce buffer.

Une réponse peut être contrôlée en mode caractère, via un PrintWriter, ou en mode binaire, via un ServletOutputStream.

Enfin, la classe HttpServletResponse expose quelques méthodes qui permettent de contrôler les en-têtes HTTP associés à cette réponse. Voyons tout ceci en détails.

Le buffer de sortie est contrôlé par la classe ServletResponse. Cette classe expose les méthodes suivantes :

Enfin les deux méthodes getWriter() et getOuputStream() permettent d'accéder au contenu de la réponse au travers d'un objet de type PrintWriter (extension de Writer), ou d'un objet ServletOutputStream (extension de OutputStream).

La classe HttpServletResponse offre trois contrôles sur la réponse HTTP :