小弟初学java, 不太明白这几个地方设置字符集分别有什么用途? 可以相互替换的吗?
用过滤器设置字符集, 比如通过org.springframework.web.filter.CharacterEncodingFilter
在jsp页面里面写: <%@ page language="java" import="java.util.*" contentType="text/html; CHARSET=utf-8" pageEncoding="UTF-8"%>
在jsp页面里面写:
我现在初步感觉3是html的写法.
2是给java的一个指令, 服务器最后生成html发送相应的时候会翻译成3? (但我测试了一下, 在浏览器里看源码, 貌似又不是的)
1是为了方便, 不用每个jsp里都写那些东西?
不知道我的认识对不对.
Spring里的字符过滤器CharacterEncodingFilter是针对请求的,forceEncoding=true是意思是指无论客户端请求是否包含了编码,都用过滤器里的编码来解析请求。
1,是针对浏览器发过来的请求数据进行的编码转换。
2、是服务器发给浏览器的响应时,告诉浏览器响应内容的编码。
3、是浏览器中对http响应头的模拟,即在本地打开页面时,浏览器要用什么编码显示内容。
在浏览器与服务器交互过程中,2的优先级要大于3。