gpt4 book ai didi

html - 为什么我需要在这个 Java Servlet 中将内容类型设置为 html?

转载 作者:可可西里 更新时间:2023-11-01 13:17:40 24 4
gpt4 key购买 nike

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.util.Date;

public class HelloServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html><head><title>only for test</title></head><body>Hello, world!html version</body></html>");
out.flush();
out.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
doGet(request, response);
}
}

如果我将内容类型设置为xhtml,则网络浏览器会自动打开保存文件对话框。为什么会这样?

最佳答案

首先,请注意 xhtml 的正确内容类型不是 xhtmltext/xhtml,而是 application/xhtml+xml.

无论如何,您需要通过检查 Accept HTTP 请求 header 来检查用户代理是否真的可以接受此内容类型。根据the W3C recommendation :

  1. 如果 Accept header 明确包含 application/xhtml+xml(没有“q”参数或正“q”值)使用该媒体类型传送文档。
  2. 如果 Accept header 明确包含 text/html(没有“q”参数或正“q”值)使用该媒体类型传送文档。
  3. 如果接受 header 包含“/”(某些用户代理用来表示他们将接受任何内容的约定),则使用 text/html 传送文档。

关于html - 为什么我需要在这个 Java Servlet 中将内容类型设置为 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com