在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 ...
随机推荐
- spark 读取hive 计算后写入hive
package com.grady import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, Row, Spa ...
- 在终端启动Python时报错的解决
最近,在终端启动Python时,报了一个错误: 1 Failed calling sys.__interactivehook__ 2 Traceback (most recent call last) ...
- 关于使用kubeoperator搭建k8s集群使用containerd作为容器运行时,从自己搭建的habor仓库拉取镜像的有关说明
1.kubepi界面添加habor仓库信息,并授权给k8s集群 这一步的操作是当在工作负载选择从harbor仓库拉取镜像时会自动创建有关的secrets信息,从而不用事先手动创建了(有别于kuboar ...
- MinIO 快速入门指南
官方文档地址:http://docs.minio.org.cn/docs/ MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon S3 云存 ...
- 静态文件:Static Files
官方文档地址:https://fastapi.tiangolo.com/zh/tutorial/static-files/ from fastapi import FastAPI from fasta ...
- CentOS7添加永久路由
CentOS7永久静态路由需要写到 /etc/sysconfig/network-scripts/route-****** 文件中,故在/etc/sysconfig/network-scripts/下 ...
- Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能
转载自:https://cloud.tencent.com/developer/article/1508319 文章目录1.Micrometer 介绍2.环境.软件准备3.Spring Boot 工程 ...
- Module加载的详细说明-保证你有所收获
模块 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本. <!-- 页面内嵌的脚本 --> <script type="appl ...
- PAT (Basic Level) Practice 1018 锤子剪刀布 分数 20
大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入 ...
- HDU1423 Greatest Common Increasing Subsequence (DP优化)
LIS和LCS的结合. 容易写出方程,复杂度是nm2,但我们可以去掉一层没有必要的枚举,用一个变量val记录前一阶段的最优解,这样优化成nm. 1<=k<j,j增加1,k的上界也增加1,就 ...