整理一下jsp编码问题

1.页面上的contentType= "text/html;charset=UTF-8"
作用

和html静态页面的<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 相对应
它告诉浏览器应该用什么方式来解码
对应serverlet中response.setContentType(“text/html;charset=utf-8”);

2.页面上的pageEncoding="UTF-8"
作用

是设置JSP编译成Servlet时使用的编码,他和我们些在jsp页面上的中文关系紧密

3. response.setCharacterEncoding("UTF-8")
作用

是指定对服务器响应进行重新编码的编码,主要是对javabean和response.out()写出去的中文编码

4.编码流程
首先  浏览器编码-----------传到服务端--------》request.setCharacterEncoding("UTF-8"),设置解码方式来解码
然后  服务器response.setCharacterEncoding("UTF-8")设置编码方式,编码------------传到客户端--------》客户端解码

客户端解码时是根据<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>的

5.对get和post方式一般服务器是进行不同处理
get方式参数是在URL中传送的,在tomcat5中是配置server.xml设置来实现的
设置方式:在connector部分加上useBodyEncodingForURI="true"(推荐)或 URIEncoding="UTF-8"属性
post方式参数是隐式传送的解码是request.setCharacterEncoding("UTF-8")在起作用

6.语言国际化Locale
这个和编码其实没有什么关系,它涉及到的是服务端应该用什么语言包来返回显示

客户端:选择一种语言 如设置locale=en_US(可以在登陆时给个选择列表)
服务端:根据接到的客户端的locale的值我为en_US,
就会创建一个Locale对象,存到session中,留作以后使用
这样每当涉及到显示文字时就会根据Locale对象,找到相应的语言包

你可能感兴趣的:(html,jsp,xml,浏览器,servlet)