客户端发送请求到服务器的过程:
浏览器会把url按照自身的设置进行编码(在浏览器高级选项中 用utf-8 发送url ,否则用gbk发送)
如:http://localhost:8080/work/释放.jsp?
会被encode(utf8)为:http://localhost:8080/work//%E9%87%8A%E6%94%BE.jsp?
如果是get方式 参数会按照gbk的方式encode ,如username='释放'&password='释放'
会被encode 为username=%CA%CD%B7%C5&password=%CA%CD%B7%C5
服务器端
get方式在服务端requset.setCharacterEncoding是不起作用的,可以再tomcat的server.xml中 URIEncoding="gbk"配置.
post方式可以设置equset.setCharacterEncoding ,编码要统一,发送到客户端的编码要统一.
request.getRequestURI()得到的是utf8编码后的uri,request.getRequestURL()同样也是
jsp页面的头部contentType="text/html; charset=gbk" 编码要统一.该编码是告诉浏览器将要以什么编码方式来解析从服务端发送的内容
jsp页面自身的编码要与pageEncoding的编码一致.否则jsp页面被编译为servlet后 java文件中的汉字是乱码.