在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 ...
随机推荐
- 如何在 Jenkins CI/CD 流水线中保护密钥?
CI/CD 流水线是 DevOps 团队软件交付过程的基本组成部分.该流水线利用自动化和持续监控来实现软件的无缝交付.通过持续自动化,确保 CI/CD 流水线每一步的安全性非常重要.在流水线的各个阶段 ...
- 《Java基础——抽象与接口》
Java基础--抽象与接口 一.抽象: 规则: 关键字 abstract 修饰的类称为抽象类. 子类通过关键字extends实现继承. 关键字 abstract 修饰的方法称为抽象方法,抽 ...
- 在UniApp的H5项目中,生成二维码和扫描二维码的操作处理
在我们基于UniApp的H5项目中,需要生成一些二维码进行展示,另外也需要让用户可以扫码进行一定的快捷操作,本篇随笔介绍一下二维码的生成处理和基于H5的扫码进行操作.二维码的生成,使用了JS文件wea ...
- 第二章:视图层 - 7:HttpResponse对象
类定义:class HttpResponse[source] HttpResponse类定义在django.http模块中. HttpRequest对象由Django自动创建,而HttpRespons ...
- 设置HTTP请求自动跳转HTTPS
第一种方式,分两种情况: 第一种情况:修改Nginx安装目录/conf/nginx.conf文件 server { listen 80; server_name localhost; #将localh ...
- docker搭建yapi接口文档系统、Idea中上传接口、在线调用
一.前言 在我们后端开发中,必不可少的是接口的交接,有很多种方式,常见的就是swagger,不过这个侵入性太强了.还有就是接口文档的框架,比如今天小编带大家一起搭建的yapi,在公司还是挺常见的! 今 ...
- 自主创建mybtis管理应用,用以横向管理数据源
这个是我写的第一个随手小记,一晃眼做后端开发也有7年多了,现在也准备将一些杂七杂八的资料整理下.也算是回顾这7年中做的比较有意思的东西了. 这个需求是我17年做的,当时的应用场景是仓储库比较多,随时会 ...
- Linux安装oracle 12C
安装虚拟系统CentOS6.5,分配给至少1G的内存,其他条件适当高些,具体参考官方文档 环境准备 vim /etc/profileexport JAVA_HOME=/opt/jdk1.7.0_79e ...
- python实现鼠标手动截图(类似于QQ截图)
由于在网上找了很久,只找到按像素位置截图和全屏截图的,所以决定自己写一个. 本程序实现原理是现用PIL里的ImageGrab进行全屏截图,然后通过模拟鼠标操作,进行截图,最后删除全屏截图,只留下鼠标截 ...
- Docker之介绍与安装
Docker 说明 本章,我们主要从Docker简介.Docker中几个核心概念和Docker安装这几个方面对Docker进行介绍! 1. Docker 简介 1.1. 什么是 Docker Dock ...