在Java Web中setContentType与setCharacterEncoding中设置字符编码格式的区别
在Java Web中setContentType与setCharacterEncoding中设置字符编码格式的区别
通用解释
setCharacterEncoding只是设置字符的编码方式
setContentType除了可以设置字符的编码方式还能设置文档内容的类型
详细区别
request.setCharacterEncoding(“utf-8”);
是设置从request中取得的值或从数据库中取出的值,
比如我在浏览器输入中文,在表单提交,浏览器是UTF-8编码,获取到的值在后台,如果你在代码中没有加上request.setCharacterEncoding(),输出格式又不是UTF-8的话,就会输出问好,加上设置编码的代码,就会输出正确的中文。
由此可得,request.setCharacterEncoding(“utf-8”)是设置请求的编码格式,让下面的代码知道requset中的数据要以什么编码进行解析。
response.setCharacterEncoding(“utf-8”);
由1可知,setCharacterEncoding是设置编码格式的,那requset和response的设置有什么区别,response的设置编码具体又有什么作用和体现呢?
response.setCharacterEncoding(“utf-8”)是设置HTTP响应的编码,是告诉服务器,响应里面的数据和信息现在是UTF-8格式,这时候响应被返回前端的话,直接用UTF-8解码,就可以显示出正确的中文数据。
response.setContentType(“text/html;charset=utf-8”);
response.setContentType(“text/html;charset=utf-8”)是用来告诉用户的浏览器或相关设备,如何显示将要加载的数据,或者如何处理将要加载的数据页面的编码方式的。
contentType的charset是指服务器发送给客户端时的内容编码。
因为浏览器很强大,你几乎返回什么他都能给你解析出来,比如图片,或者PDF,当然还有网页。
这一切的前提是你得告诉它你传的的是什么:
- 这时候就是第一个参数的作用:
text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。 - 第二个参数也是设置编码格式:
基本上和setCharacterEncoding是一个作用,我做过实验,在2中,我只设置setCharacterEncoding和只设置content-type前端都能正常显示,都不加就会显示乱码。
setCharacterEncoding和setContentType在字符设置上的优先级。
response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用 response.setCharacterEncoding指定的编码格式覆盖之前的设置。
就是response.setCharacterEncoding的优先级比setContentType高。
使用注意事项
与response.setContentType相同的是,调用setCharacterEncoding方法,必须在getWriter执行之前或者response被提交之前。
总之就是,先设置,再使用。
是学生,正在学习,自己遇到的问题写点博客,如有错误,请谅解,如果发现了错误可以评论一下。
在Java Web中setContentType与setCharacterEncoding中设置字符编码格式的区别的更多相关文章
- 转:Java Web 项目发布到Tomcat中三种部署方法
首先整理项目文件,文件内包含jsp.js等和class编译后的文件及lib包,如: 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: ...
- Java Web 项目发布到Tomcat中三种部署方法
第一种方法:在tomcat中的conf目录中,在server.xml中的,节点中添加: <Context path="/" docBase="E:\TOMCAT\a ...
- JAVA WEB 过滤器(Filter)中向容器 Spring 注入 bean
如果直接使用 @Autoware 获取 bean 会直接使该 bean 为 null,这是因为这种配置过滤器的方法无法在过滤器中使用 Spring bean,因为 Filter 比 bean 先加载, ...
- servlet setCharacterEncoding setHeader 设置字符区别
1. response.setCharacterEncoding("UTF-8"); 设置内容的字符集 2. response.setHeader("content-ty ...
- java web项目导入到eclipse中变成了java项目的一种情况的解决办法
前提,我把代码上传到github上之后,在另外一台电脑上拉下之后,先报出现的是jre不对,然后换成了当前的jre,然后红色的感叹号消失了但是之前项目上那个小地球不见了,也就是说变成了java项目. - ...
- (备忘)Java web项目迁移到Centos7中验证码无法显示
每天多学一点知识. 今天部署项目的时候出现验证码无法显示的问题,如下图所示:
- java web项目去除项目名称访问设置方法及tomcat的<Host>标签讲解
本文为博主原创,未经允许不得转载. 在集群项目中,为了方便用户可以更快捷的访问,即只需要输入IP和端口号,就可以直接访问项目,因为 模块比较多,记住项目名称并不容易,所以在网上查看和学习了下设置的方法 ...
- Java Web开发 之小张老师总结GET和POST区别
get和post区别1.传输方式不同,get在request-line中传输(即在URL中传输).post在request-line及 request-body中传输(可认为隐藏传输)2.get传输长 ...
- JavaScript中.、[]与setAttribute()在设置属性上的区别
.和[] javaScript.和[]既可以对所有js对象设置属性,但是对于DOM对象它设置的属性有些特殊.对于元素DOM标准属性,实现属性值的设置/更改;对于元素DOM非标准属性,仅在js中有效,在 ...
- 怎么将java web 项目导入idea 中
1.将 java web 项目导 入idea 中, 显示 然后进行 Configure 配置. 2. 点击 open module settings. 3. 4. 选择jar包. 5. 6. 配置to ...
随机推荐
- re.sub()用法
原文链接:https://blog.csdn.net/jackandsnow/article/details/103885422
- 三分钟,带你了解PLM
PLM应用于单一地点或者多个地点的企业内部.以及在产品研发领域具有协作关系的企业之间的.支持产品全生命周期的信息的创建.管理.分发和应用的综合性的应用解决方案,能够集成与产品相关的流程.应用系统和信息 ...
- 【疑难杂症】关于pytorch安装的一些问题
问题一:选用哪个版本 直接下载Anaconda,会自动给你附加最合适的python版本,再去pytorch官网直接找到自己需要的版本下载 问题二:下载pytorch速度太慢 直接把下载代码最后面的-c ...
- Logstash:在 Docker 中部署 Logstash
文章转载自:https://elasticstack.blog.csdn.net/article/details/116516923 创建一个目录 docker-logstash.在该目录下,有如下的 ...
- 使用Docker搭建Fluentd
说明: 1.该镜像内默认配置文件路径是/fluentd/etc/fluent.conf 2.该镜像默认启用tcp的5140和24224端口 3.镜像dockerhub地址:https://hub.do ...
- 源码学习之MyBatis的底层查询原理
导读 本文通过MyBatis一个低版本的bug(3.4.5之前的版本)入手,分析MyBatis的一次完整的查询流程,从配置文件的解析到一个查询的完整执行过程详细解读MyBatis的一次查询流程,通过本 ...
- python_flask开发环境设置
flask开发环境设置,在powershell终端窗口,可以通过一下方式设置: # 设置当前app实例 $env:FLASK_APP="app:create_app()" #将当前 ...
- day08-MySQL事务
MySQL事务 先来看一个例子 有一张balance表: 需求:将tom的100块钱转到King账户中 执行的操作是: update balance set money = money -100 wh ...
- SpringBoot-JavaMailSender接口实战
相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送,在Spring Boot的Starter模块中也为此提供了自动化配置. 下面通过实例来 ...
- 微光互联 TX800-U 扫码器无法输出中文到光标的问题
问题背景 某检测场有一批扫码器,购于微光互联,型号 TX800-U,用于在不同办理窗口间扫描纸质材料上的二维码,简化录入过程.扫码器通过 USB 接入 PC 系统 (windows),自动安装驱动,接 ...