在jsp中的form post,contentType header没有charset,为什么?

时间:2014-01-14 18:06:40

标签: java forms jsp

我有一个像这样的jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>POST</title>
</head>
<body>
    <form action="FormServlet" method="post">
        name: <input type="text" name="name"/>
        <input type="submit" name="submit"/>
    </form>
</body>
</html>

当我发帖时,我是由Fiddler调试的,但我发现contentType中没有charset defind,为什么?我在jsp文件顶部定义了contentType,当我发布我的表单时,它没有使用charset?

当我发帖时,这是小提琴手的结果:

enter image description here

我在Tomcat类中调试,我发现因为contentType没有charset,所以tomcat使用它的默认字符集,我想知道结果是否正确,contentType没有包含charset,或者我在某个地方有些不对劲?

1 个答案:

答案 0 :(得分:3)

您在

中提供的字符集
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

是当前响应的内容类型(不一定是标题,而是作为客户端的提示),即。渲染的JSP。它与未来的任何请求无关。

您可以按照here的说明设置表单提交的字符集。