Comment utiliser getOutputStream() et getWriter() dans la même requête de servlet?Comment utiliser getOutputStream() et getWriter() dans la même requête de servlet?
Répondre
Vous pouvez les utiliser tous les deux, mais pas en même temps, ou plutôt pas pour la même réponse. Si vous avez besoin d'utiliser un Writer après avoir déjà commencé à utiliser le OutputStream, enveloppez juste un OutputStreamWriter autour du flux de sortie. Toutefois, si vous avez besoin d'utiliser un flux de sortie après avoir déjà utilisé l'éditeur, vous ne pouvez pas. Vous pouvez toujours obtenir le flux de sortie en premier, envelopper l'écrivain autour comme ci-dessus, faire votre écriture, vider, puis faire votre flux de sortie.
Vous ne pouvez pas les utiliser en même temps. Si vous avez d'abord fait getOutputStream()
vous ne pouvez pas par conséquent dans la même demande faire getWriter()
et vice versa. Vous pouvez cependant envelopper votre ServletOuptputStream
dans un PrintWriter
pour obtenir le même type d'écrivain que vous auriez de getWriter()
.
ServletOutputStream out = response.getOutputStream();
// Notice encoding here, very important that it matches that of
// response.setCharacterEncoding();
PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, "utf-8"));
Une autre solution à ne pas utiliser getWriter()
est d'utiliser un PrintStream
qui est un peu similaire, mais vous n'avez pas la compatibilité de type avec Writer
ou PrintWriter
.
// Encoding again very important to match that of your output.
PrintStream print = new PrintStream(os, true, "utf-8");
comment puis-je utiliser getwriter pour imprimer le graphique dans jfreechart? – faree
@Parith, postez cela comme une nouvelle question à la place. –
Veuillez fournir plus de détails. En particulier, parlez-vous de certaines demandes traitées avec getWriter et d'autres avec getOutputStream, ou essayez-vous de les utiliser pour la même requête? –