一、java web中涉及编解码的地方

(1)浏览器端向后台发起请求时:URL、Cookie、Parameter;

(2)后台响应返回数据时:页面编码,数据库数据编码;

二、在各处设置统一编码(以服务器tomcat,编码UTF-8为例)

(1)URL的编解码:在tomcat配置文件server.xml中设置<Connector URIEncoding="UTF-8" useBodyEncodingForURI="true">,可解决以Get方法提交参数中文乱码的问题。如果没有定义,那么tomcat将以默认编码ISO-8859-1解析,URIEncoding是对URI(即URL除掉端口之前的剩下部分)的解码,useBodyEncodingForURI是对QueryString(即URL?后的参数)的解码。另外,在filter中使用request.getRequestURI()出现乱码的话,可用URLDecoder.decode解码。

(2)POST表单的编解码:一定要在第一次调用request.getParameter之前,通过request.setCharacterEncoding(charset)来设置。POST表单参数是通过HTTP的BODY传递到服务端的,浏览器是根据ContentType的Charset对表单参数进行编码,而在服务端如果没有设置CharaterEncoding的话,将以ISO-8859-1编码解析参数。

(3)HTTP BODY的编解码:可通过response.setCharacterEncoding来设置,它是对服务器响应内容进行编码;还可在页面设置contentType="text/html;charset=UTF-8",也是指定对服务器响应内容的编码字符。而浏览器将通过Content-Type的charset来解码。另外,在jsp页面设置pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。

(4)访问数据库编码:主要设置JDBC URL来指定,添加useUnicode=true&characterEncoding=UTF-8即可。

最后,本文主要参照君山的博客:http://xulingbo.net/  。

JSP与Servlet的编解码的更多相关文章

  1. 【转】Java web 编解码

    几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言 ...

  2. Java Web中涉及的编解码

    用户从浏览器发起一个HTTP请求,存在编码的地方是URL.Cookie.Paramiter.服务器端接收到HTTP请求后要解析HTTP协议,其中URL.Cookie和POST表单参数要解码,服务器端可 ...

  3. JSP和Servlet的中文乱码处理

    JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...

  4. jsp、servlet笔记

    1.init    初始化Jsp&Servlet方法   destroy 销毁Jsp&Servlet之前的方法   service 对用户请求生成响应的方法2.Jsp文件必须在jsp服 ...

  5. JSP和Servlet中的几个编码的作用及原理

    首先,说说JSP和Servlet中的几个编码的作用. 在JSP和Servlet中主要有以下几个地方可以设置编码,pageEncoding="UTF-8".contentType=& ...

  6. 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例

    初步学习JavaEE,对其中jsp与Servlet之间的传值没弄清楚,查看网上资料,发现一篇超详细的文章,收获大大,特此记录下来.具体链接:http://blog.csdn.net/ssy_shand ...

  7. 一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)

    背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...

  8. iOS8系统H264视频硬件编解码说明

    公司项目原因,接触了一下视频流H264的编解码知识,之前项目使用的是FFMpeg多媒体库,利用CPU做视频的编码和解码,俗称为软编软解.该方法比较通用,但是占用CPU资源,编解码效率不高.一般系统都会 ...

  9. jsp和servlet中文乱码

    jsp和servlet之间出现中文乱码的集中原因和解决方法详解:http://blog.csdn.net/longyuhome/article/details/7856270

随机推荐

  1. Snail—iOS网络学习之得到网络上的数据

    在开发项目project中,尤其是手机APP,一般都是先把界面给搭建出来.然后再从网上down数据 来填充 那么网上的数据是怎么得来的呢,网络上的数据无非就经常使用的两种JSON和XML 如今 大部分 ...

  2. 利用BADI WORKORDER_INFOSYSTEM在COOIS中加入自己定义列办事处

    需求描写叙述:依据LC业务部门提出的需求.须要在COOIS中加入办事处一列. 1.在IOHEADER_TAB的CI_IOHEADER中加入字段办事处.如以下图所看到的:   watermark/2/t ...

  3. hibernate面试点

    1.谈谈你对hibernate的认识和理解 01.全自动的ORM框架 02.子项目 03.面向对象的思想来解决操作数据库 01.hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JD ...

  4. Latex 5: LaTeX资料下载

    转: LaTeX资料下载 最全latex资料下载   LaTeX命令速查手册1  

  5. 获取浏览器屏幕高度(js,jq)

    javascript IE中:document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度do ...

  6. mysql优化----大数据下的分页,延迟关联,索引与排序的关系,重复索引与冗余索引,索引碎片与维护

    理想的索引,高效的索引建立考虑: :查询频繁度(哪几个字段经常查询就加上索引) :区分度要高 :索引长度要小 : 索引尽量能覆盖常用查询字段(如果把所有的列都加上索引,那么索引就会变得很大) : 索引 ...

  7. NEU 1685: All Pair Shortest Path

    题目描述 Bobo has a directed graph G with n vertex labeled by 1,2,3,..n. Let D(i,j) be the number of edg ...

  8. CentOS 7.2 安装Gerrit 2.14.6

    1.环境 本文使用VMWare虚拟机进行实验. 2核CPU,4GB内存,20GB硬盘,IP:192.168.159.131 CentOS 7.2最小安装(CentOS-7-x86_64-Minimal ...

  9. Swift(二)控制流

    要处理条件逻辑,使用 if 和 switch ,要处理循环逻辑,使用 for-in, for, while, 和 do-while .包着条件或者循环的括号可加可不加.处理逻辑体的花括弧是必须加的. ...

  10. 为datanode配置多个数据存储地

    datanode配置多个数据存储地址,涉及到以下两个配置项 dfs.name.dir Determines where on the local filesystem the DFS name nod ...