JavaWeb——响应编码与请求编码
一、引言
以前非常怵头web中编码问题,如今没办法必须搞了,硬着头皮把里面的东西搞清楚了,供大家分享下==务必先了解原理,再扎进代码==
二、编码基础
这里主要理解字符集与字符编码问题。
字符集就像一个字库,类似英文,中文,日文等,只是一个库;
字符编码就像一个映射关系,将字符集映射为一个个数用计算机存储;如utf,注意utf-8,utf-6等都是一个字符集,不同的字符编码==
三、响应编码
一般tomcat服务器默认解码ios-8859-1,从tomcat8以后默认utf-8不用再修改,浏览器默认解码是gbk,这里所以我们一般都自己设置,这样比较好控制。
这里response.setHeader("content-type", "text/html;charset=utf-8");有两个作用:1返回数据按照utf-8编码;2设置contenttype告知浏览器编码格式,然后浏览器就会用相应的格式解码,从而不会出现乱码==
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setHeader("content-type", "text/html;charset=utf-8");//request.setCharacterEncoding("utf-8");response.getWriter().println("哈哈哈");}
四、请求编码
这里分为get请求和post请求:
1、get请求
直接使用getParameter()就可以,不用转换,要是tomcat7及之前的可能要设置注释代码,因为之间的tomcat默认gbk,要转换一下。
然后设置返回编码格式即可setHeader,这里只能用gbk和utf-8,我开始设置了iso-8859-1除了乱码,后来发现自己脑子water了,iso-8859-1根本不支持中文==
String name=request.getParameter("name");
/* byte[]bytes=name.getBytes("iso-8859-1");name=new String(bytes,"utf-8");response.setHeader("content-type", "text/html;charset=utf-8");*/response.setHeader("content-type", "text/html;charset=utf-8");response.getWriter().print(name);
2、post请求
post请求要设置相应的解码方式,这个一般由发出post请求的界面决定,比如有表单的jsp界面它默认编码utf-8,发送的请求也是utf-8的。
request.setCharacterEncoding("utf-8");String name=request.getParameter("name");response.setHeader("content-type", "text/html;charset=utf-8");//response.setHeader("content-type", "text/html;charset=utf-8");response.getWriter().print(name);
五、URL编码
URL编码,就是将中文转换为16进制表示,为了防止网络传输中数据丢失。
get一般不会对中文编码,post会对中文进行编码,然后在浏览器自动编码,在服务器自动解码。
四、总结
- 设置响应编码;
- 设置请求编码,get与post;
- URL编码;
JavaWeb——响应编码与请求编码相关推荐
- 请求编码和响应编码乱码原因及解决方案
1. 响应编码 * 当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso,因为iso不支持中文,一定乱码 * 在使用response.ge ...
- Spring/SpringBoot 过滤器修改、获取http 请求request中的参数 和 response返回值,比如修改请求体和响应体的字符编码
通过自定义filter,RequestWrapper,ResponseWrapper 处理请求和响应数据,比如修改请求体和响应体的字符编码 1.request 和 response 中的数据都是 存在 ...
- JSP页面请求响应过程中的编码解码
该片简要讲述:JSP页面传输过程中,浏览器与服务器的编码解码以及HTTP协议对URL进行的编码解码. 问题如下: //所有的JSP页面的编码都是UTF-8的格式 //test1.jsp <%@ ...
- Drf从入门到精通四(Drf请求与响应、Drf能够解析的请求编码与响应编码、Drf视图、Drf视图基类)
文章目录 一.Drf请求与响应 1.Request类和Response类 2.Drf能够解析的请求编码与相应编码 二.Drf视图组件 四.Drf视图基类 1.基于APIView写5个接口 2.基于Ge ...
- unix系统编码 java_JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- python url编码_python url编码和解码
一.为什么要进行Url编码 url带参数的请求格式为(举例): http://www.baidu.com/s?k1=v1&k2=v2 当请求数据为字典data = {k1:v1, k2:v2} ...
- 学习笔记之51单片机键盘篇(非编码键盘与编码键盘、非编码键盘的扫描方式、独立键盘、矩阵键盘)
这篇博文主要记录51单片机键盘篇(非编码键盘与编码键盘.非编码键盘的扫描方式.独立键盘.矩阵键盘.键盘消抖等)包含原理图.代码等 (一)基础补充 1.键盘的任务 2.键盘的识别 3.如何消除按键的抖动 ...
- java http编码_java httprequest编码/解码
http://jiapumin.iteye.com/blog/1006144 在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通OS下,返回 ...
- java万能编码转换_java编码转换的详细过程
常见的JAVA程序包括以下类别: *直接在console上运行的类(包括可视化界面的类) *JSP代码类(注:JSP是Servlets类的变型) *Servelets类 *EJB类 *其它不可以直接运 ...
最新文章
- Android Support library
- 对linux文件权限的理解,理解linux文件权限2
- Replication的犄角旮旯(五)--关于复制identity列
- Python——你应该知道这些
- HTML中的全局属性
- HTML框架标签的使用-lt;framesetgt;
- 使用bakefile编译C工程代码
- 开机流程与主引导分区(MBR)——鸟哥私房菜
- State_状态模式_PHP语言描述
- nodejs+express开发blog(2)
- Nodejs与Java通用AES加解密
- php urlencode 大写,HttpUtility.UrlEncode 编码输出的字母替小写,怎样改成大写呢
- mac电脑安装mysql
- 录播系统服务器大全,专业高清录播服务器 全高清录播系统 系统设计精美
- Python 并发编程
- python如何用一行代码生成[1,4,9,16,25,36,49,64,81,100]
- 交通标志牌的检测与识别
- xx壳通过外网远程访问本地SQLServer服务器(原创)
- 机器学习-数据科学库day2
- sqlite的下载安装和配置使用(非常详细)
热门文章
- python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)
- 洛谷——P1567 统计天数
- 洛谷——P1085 [NOIP2004 普及组] 不高兴的津津
- sql同时修改两个表的数据_如何用SQL做数据透视表?
- 《强化学习》中的第15章:神经科学
- 【强化学习】表格型求解方法总结:基于表格型方法(Tabular Methods)的规划(Planning)和学习(Learning)
- mysql 锁监视器_MySQL锁监视器
- 指向结构体变量的指针变量
- mysql库垂按照模块_前任都能看懂的分库分表方案
- mysql开发平台_搭建mysql编程平台