jsp连接数据库的乱码问题 servlet请求参数编码处理get post
1.在所有需要读取数据的地方用下面的方式。同时jsp必须统一编码,如我都是UTF-8
String userName= new String(request.getParameter("userName").getBytes("ISO-8859-1"),"utf-8");
插入数据库的也需要先转换再插入。
上面句子的意思是:把name的值用“ISO-8859-1”字符集获取他的字节,“name.getBytes("ISO-8859-1")”这里面返回的是一个ISO-8859-1的字节数组,最后创建一个String对象,在把它赋值给name;
即就是字符编码转换,把字符集转换成用UTF-8编码的字节码。
ISO-8859-1:是国际字符集之一,比如我们常用的UTF-8和GBK等都是的。
2 上面之所以能解决的原理是:一般浏览器使用的是uTF-8处理字符(可通过网页右击--编码来查看),而WEB容器默认使用ISO-8859-1编码。
这样的话客户端使用UTF-8发送非ASCII字符的请求参数(如果请求参数是ASCII字符,没什么问题,因为都是按一个字节的编码处理,是兼容的,但是中文不同编码方式处理不同),servlet直接使用getParameter()等方法取得该请求参数时就会乱码。
举例,假设网页编码是UTF-8,通过窗体使用post发送“林”这个这个中文字符,相当于浏览器做了这个操作:
String text =java.net.URLEncoder.encode("林" ,“UTF-8”);(编码后为%e6%9e%97)
在Servlet 中取得请求参数时,容器默认使用ISO-8859-1来处理编码,相当于做了这个操作:
String text =java.net.URLEncoder.decode("%e6%9e%97" ,“ISO-8859-1”);自然显示的就不对了。
那该怎么办呢?
下面是servlet的get请求和post请求的不同处理:
jsp文件统一都是UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
//get处理编码的方式
String name = req.getParameter("username");
name = new String (name.getBytes("ISO-8859-1"),"UTF-8"); //合在一起就是String name= new String(request.getParameter("username").getBytes("ISO-8859-1"),"utf-8");
.....
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
//post处理编码的方式
req.setCharacterEncoding("UTF-8");
String name = req.getParameter("username");
。。。。
}
2 sql server 2008数据库默认是GBK编码。
查看SQLserver编码格式的SQL语句 :
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8
默认都是936即 简体中文GBK
jsp连接数据库的乱码问题 servlet请求参数编码处理get post的更多相关文章
- Servlet请求参数编码处理(POST & GET)
小巧,但在中文语境下,还是要注意的. 以下是关键语句,注意转码的先后顺序,这源于GET是HTTP服务器处理,而POST是WEB容器处理: String name = request.getParame ...
- Servlet请求参数的方式
今天整理了以下几种常用的Servlet请求参数的方式,下面简单地介绍 1)getParameter(String key)返回一个字符串,获得name和key 一样的表单控件的数据,如果有重复的nam ...
- js处理url中的请求参数(编码/解码)
在处理 a 链接跳转其他页面时,总会遇到需要传递一些当前页面的信息到其他页面,然后其他页面利用这些信息进行相关操作.利用 get 请求或 hash 传递是常见的方式. 首先,需要对传递的参数进行编码, ...
- 入门servlet:request获取请求参数通用方式
一.获取请求参数通用方式 1. String getParameter(String name):根据参数名称获取参数值 例:username=flypig&password=2343 2. ...
- Http协议入门、响应与请求行、HttpServletRequest对象的使用、请求参数获取和编码问题
1 课程回顾 web入门 1)web服务软件作用: 把本地资源共享给外部访问 2)tomcat服务器基本操作 : 启动: %tomcat%/bin/startup.bat 关闭: %tomcat%/ ...
- JSP中解决获取请求参数中文乱码问题
分两种情况: 1.获取访问请求参数时乱码 解决方法:构造一个新的String String user = new String(request.getParameter("user" ...
- servlet请求编码与响应编码问题(编码不一致可能会导致乱码)
html中的编码 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&g ...
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
前述: 在写这篇笔记之前,对笔记中的设计模式进行介绍: 本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式 (1)装饰(包装)设计模式口诀: ...
- javaweb请求编码 url编码 响应编码 乱码问题 post编码 get请求编码 中文乱码问题 GET POST参数乱码问题 url乱码问题 get post请求乱码 字符编码
乱码是一个经常出现的问题 请求中,参数传递的过程中也是经常出现乱码的问题 本文主要整理了请求乱码中的问题以及解决思路 先要理解一个概念前提: 编码就是把图形变成数值码所以说: 图形的字符 -- ...
随机推荐
- (实用)Linux下安装JDK和Eclipse
安装Eclipse时前需要确保系统中已经具备Java运行环境,本文以干净系统初次安装Eclipse为例,同时安装JDK和Eclipse. 1.下载JDK压缩包: http://www.oracle.c ...
- MyMVC配置
<system.webServer> <validation validateIntegratedModeConfiguration="false"/> & ...
- CSS z-index优先级
可以设置div层与层之间的优先级,上下层覆盖优先情况. 当你定义的CSS中有position属性值为absolute.relative或fixed, 用z-index取值方可生效. 如果想要一个小的d ...
- Linux 查看系统硬件信息
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...
- 关于SpringMVC Json使用
很简单的一个东西,这里就不做过多介绍了,写一个小Demo,随手记录下. 首先,在搭好SpringMVC工程环境之后,如果想用Spring自带的Json,需要额外的添加2个JAR包: 1.jackson ...
- Java中级面试题及答案整理
1.webservice是什么? webservice是一种跨编程语言和跨操作系统的远程调用技术,遵循SOPA/WSDL规范. 2.springCloud是什么? springcloud是一个微服务框 ...
- mysql 直接拷贝data 目录下文件用不的解决方案
innodb 的表,直接复制文件是无法使用的,会提示 table doesn’t exists ,在复制的时候,应将data目录下的 ibdata1 文件一并复制过去,并且删除 ib_logfile0 ...
- 使用jquery操作session
摘要: 今天分享的是使用jquery来处理session.我们将使用sessionStorage对象,它类似与localStorage对象,只是sessionStorage是用来储存session数据 ...
- linux环境下pytesseract的安装和央行征信中心的登录验证码识别
首先是安装,我参考的是这个 http://blog.csdn.net/xinghun_4/article/details/47860645 我是centos,使用yum yum install pyt ...
- SpEL、PropertyPlaceholderConfigurer与@Value、#{}、${}
概念 SpEL:Spring EL表达式 PropertyPlaceholderConfigurer:即org.springframework.beans.factory.config.Propert ...