本系列博客汇总在这里:JSP 汇总


目录


JSP 指令

page 编码属性设置

  1. page 指令的 pageEncoding 和 contentType
    ​pageEncoding​​ 指定的是当前 JSP 页面的编码!Tomcat 编译系统会使用这个编码把 JSP 编译成 Java 文件。所以这个编译只需要与真实的页面编译一致即可!
    ​contentType​​ 指定的是响应给我客户端时使用的编码,即对应 response.setConteType() 方法的参数值! Tomcat 都会把响应正文转换成 UTF-8 编译,然后发送给我客户端,并且会在响应头中设置 Content-Type 头信息为 text/html;charset=utf-8,这样浏览器就知道使用服务器发送过来的正文使用了什么编码。
    无论是 page 指令的 pageEncoding 还是 contentType,它们的默认值都是 ISO-8859-1,我们知道 ISO-8859-1 是无法显示中文的,所以 JSP 页面中存在中文的话,一定要设置这两个属性。
    JSP(7)_ JSP 指令_page 编码属性设置_属性设置

  2. 其实 pageEncoding 和 contentType 这两个属性的关系很暧昧:
    当设置了 pageEncoding,而没设置 contentType 时:表示 contentType 的取值为 pageEncoding 的值;
    当设置了 contentType,而没设置 pageEncoding 时:表示 pageEncoding 的取值与 contentType 的值;
    也就是说,当 pageEncoding 和 contentType 只出现一个时,那么另一个的值与出现的值相同。如果两个都不出现,那么两个属性的值都是 ISO-8859-1。

  3. 处理乱码的方案:
    把 JSP 页面的编码设置为 UTF-8;
    把 contentType 和 pageEncoding 都设置为 UTF-8。

  4. jsp 全站统一编码设置:
    JSP(7)_ JSP 指令_page 编码属性设置_JSP 指令_02
    如有错误,欢迎指正!