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>");
}
}
risposta
I tipi di contenuto sono inclusi nelle risposte HTTP perché lo stesso byte per la sequenza di byte di valori nel contenuto potrebbe essere interpretato in più di un modo. (*)
Ricordare che http può trasportare più di un semplice HTML (js, css e immagini sono esempi ovvi), e in alcuni casi, il ricevitore non saprà quale tipo di oggetto riceverà.
(*) l'ovvio è XHTML, che è XML. Se viene fornito con un tipo di contenuto di application/xml
, il destinatario dovrebbe essere per considerarlo come XML. Se viene pubblicato come application/xhtml+xml
, dovrebbe essere trattato come XHTML.
Dove potrei trovare un elenco di tutti i tipi di contenuto? Ad esempio, se volessi restituire un valore booleano, dovrei impostarlo come oggetto JSON e quindi convertirlo di conseguenza (cioè utilizzando GSON)? – tccpg288
@ tccpg288 qui: https://www.iana.org/assignments/media-types/media-types.xhtml e domande correlate: https://stackoverflow.com/questions/23714383/what-are-all-the- possibili-valori-per-http-content-type-header – ylka
È uno del tipo MIME
, in questo caso si è risposta all'intestazione MIME
digitare su text/html
significa che visualizza il tipo html. È un'informazione per il browser. Ci sono altri tipi che si possono impostare per visualizzare excel, zip ecc Si prega di consultare MIME Type
per ulteriori informazioni
Significa che tipo di risposta che si desidera inviare al cliente, alcuni tipi di contenuti come:
res.setContentType("image/gif");
res.setContentType("application/pdf");
res.setContentType("application/zip");
response.setContenType("text/html");
Sopra il codice dovrebbe essere incluso in "risposta HTTP" per informare il browser sul formato della risposta, in modo che il browser possa interpretarlo.
Da docs JavaEE ServletResponse#setContentType
Imposta il tipo di contenuto della risposta viene inviata al client, se la risposta non è stato ancora commesso.
Il dato tipo di contenuto può includere una specifica codifica dei caratteri, ad esempio,
response.setContentType("text/html;charset=UTF-8");
codifica dei caratteri del risposta è impostata solo da un dato tipo di contenuto se questo metodo viene chiamato prima di chiamare
getWriter
.Questo metodo può essere chiamato più volte per modificare il tipo di contenuto e la codifica dei caratteri.
Questo metodo non ha effetto se chiamato dopo che la risposta è stata commessa. Non imposta la codifica dei caratteri della risposta se viene chiamata dopo che è stato chiamato lo
getWriter
o dopo che la risposta è stata confermata.I contenitori devono comunicare il tipo di contenuto e la codifica di carattere utilizzata per il writer della risposta della servlet al client se il protocollo fornisce un modo per farlo. Nel caso di HTTP, viene utilizzata l'intestazione Content-Type.
Qualche idea sul contenuto predefinito Tipo e codifica dei caratteri se uno non è specificato esplicitamente? – Bateman
Devi dire al browser che si sta inviando indietro in modo che il browser può prendere i provvedimenti opportuni, come il lancio di un visualizzatore PDF se un file PDF che è in fase di ricezione o il lancio di un lettore video per riprodurre file video , restituendo l'HTML se il tipo di contenuto è semplice risposta HTML, salva i byte della risposta come file scaricato, ecc.
alcuni tipi MIME comuni sono text/html, application/pdf, video/quicktime, application/java , image/jpeg, application/jar etc
Nel tuo caso dal momento che stai inviando HTML r Per quanto riguarda il client, devi impostare il tipo di contenuto come text/html
Oltre a dire all'OP ciò che devono realizzare, dovresti in realtà spiegare come farlo (generalmente, questo significa con il codice.) Inoltre, questo post ha già cinque risposte, una delle quali è accettata, ed è di quattro anni fa. Pertanto, ti consiglio di provare a rispondere a domande più recenti. – ostrichofevil
- 1. .designer.cs a cosa serve?
- 2. A cosa serve OverrideAuthenticationAttribute?
- 3. A cosa serve `classe A [_]`?
- 4. A cosa serve object()?
- 5. A cosa serve Subject.asObservable?
- 6. System.Web.Abstractions: a cosa serve?
- 7. A cosa serve #pragma?
- 8. A cosa serve Control.IsHandleCreated?
- 9. A cosa serve AnyVal.types?
- 10. A cosa serve __RequestVerificationToken?
- 11. A cosa serve Control.Category?
- 12. A cosa serve Enum?
- 13. CGRectIntegral a cosa serve?
- 14. A cosa serve $ # in Bash
- 15. A cosa serve - [NSUserDefaults registerDefaults:]?
- 16. Lucene SpanQuery: a cosa serve?
- 17. Android: a cosa serve Android.R.id.content?
- 18. A cosa serve `tipo_info :: before`?
- 19. A cosa serve il clientID?
- 20. A cosa serve l'indirizzamento WS?
- 21. A cosa serve "echo || true"?
- 22. A cosa serve sql-dump?
- 23. a cosa serve la parola chiave final?
- 24. JSON RPC - A cosa serve "id"?
- 25. Discussioni denominate in Delphi: a cosa serve?
- 26. A cosa serve TMonitor nell'unità Delphi System?
- 27. A cosa serve il nome enum?
- 28. HipHop di Facebook: a cosa serve?
- 29. A cosa serve Reflection in .NET?
- 30. sem_init (...): A cosa serve il parametro pshared?
In pratica dice al client (il browser) quale tipo di contenuto è in modo che sappia cosa fare con esso. Notato dovrebbe essere che il codice mostrato finora è considerato una cattiva pratica. Il codice HTML appartiene a un file JSP. Vedi anche http://stackoverflow.com/tags/servlets/info – BalusC