【Java】解决Servlet编程中出现的中文乱码问题

1、引言

前面两篇文章我们讲述了编写Servlet程序的基本步骤和修改一个Servlet程序

【Java】编写一个简单的Servlet程序​​​​​​

【Java】SmartTomcat的配置及使用 

 上面两篇文章的示例代码都是使用的全英文,当我们编写中文,发现似乎出了一点点问题🤔

2、问题的出现及原因

(1)问题的产生

将Java代码改为下面代码

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("hello world");resp.getWriter().write("你好 java");}
}

再次运行程序,发现浏览器页面上出现乱码🫣

(2)原因 

问题产生的原因

        IDEA构建字符的编码方式是utf-8

        而浏览器解析字符的编码方式是GBK

        两者不一致,导致最终页面出现乱码😵

3、问题的解决

要解决上述编码不一致的问题,我们对代码进行修改

在http响应报文中,显式地告诉浏览器,返回的body字符集是什么

添加下面这句代码

resp.setContentType("text/html;charset=utf8");

运行程序 

中文显示正常,修改代码成功👏 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【100个 Unity实用技能】☀️ | UGUI中 判断屏幕中某个坐标点的位置是否在指定UI区域内

🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 &…

PCA主成分分析算法

在数据分析中,如果特征太多,或者特征之间的相关性太高,通常可以用PCA来进行降维。比如通过对原有10个特征的线性组合, 我们找出3个主成分,就足以解释绝大多数的方差,该算法在高维数据集中被广泛应用。 算法&#xff08…

【一文搞懂JVM的内存屏障】

要命的问题: 什么是线程的安全性?怎么保证?jvm什么是的内存屏障?他有什么作用? **线程的安全性是指:**指在多线程环境下,多个线程同时访问同一资源时不会产生意外结果或导致数据出错的状态。其…

在线ai扩图是什么?有什么工具?分享3个好用的工具。

在线ai扩图是什么?有什么工具?分享3个好用的工具。 在当今数字化的时代,图像处理成为了我们日常生活和工作中不可或缺的一部分。有时候,我们需要将图像放大以获取更多的细节,但传统的方法往往会导致图像质量的损失。幸…

Invalid bound statement(只有调用IService接口这一层会报错的)

问题描述:controller直接调用实现类可以,但是一旦调用IService这个接口这一层就报错. 找遍了大家都说是xml没对应好,但是我确实都可以一路往下跳,真的对应好了.结果发现是 MapperScan写错了,如下才是对的. MapperScan的作用是不需要在mapper上一直写注解了,只要启动类上写好就放…

无货源电商哪个平台比较适合新手?

我是电商珠珠 近年来电商平台层出不穷,无论是传统平台像是拼多多、淘宝、京东,还是短视频电商平台:快手、抖音小店、视频号小店。 都成为了兼职乃至全职人群心中的香饽饽,有人选择去做拼多多、有人选择去做抖音小店,…

算法训练营Day38

#Java #完全背包 #动态规划 Feeling and experiences: 动态规划:完全背包理论基础 之前学习的是01背包,其特点在于:每个物品都只能取一个 而完全背包则是可以一个物品取多个。 有N件物品和一个最…

高级分布式系统-第6讲 分布式系统的容错性--故障/错误/失效/异常

分布式系统容错性的概念 分布式系统的容错性: 当发生故障时, 分布式系统应当在进行恢复的同时继续以可接受的方式进行操作, 并且可以从部分失效中自动恢复, 且不会严重影响整体性能。 具体包括以下4个方面的内容: 可…

如何将后端带过来的字符串通过‘,’号作为判断依据,分割字符串然后生成数组

在实际开发工程中我们会遇到我们调用后端接口获取图片、文件、视频甚至选择的对象时,如果是这样的: 这种数据类型如果想渲染在html中的话就会很麻烦,我们可以通过","号为切割点将它放入数组中,通过列表进行渲染 由于实…

vue使用elementui select下拉库组件鼠标hover出现下拉框

mounted 生命周期里去监听 鼠标进入和鼠标移出事件 this.$refs.mySelect.addEventListener(mouseenter, function () {this.querySelector(.selectel .el-select-dropdown).style.display block})this.$refs.mySelect.addEventListener(mouseleave, function () {this.querySe…

STM32入门教程-2023版【3-4】总结GPIO使用方法

三、总结GPIO使用方法 总体上来说是比较简单的 首先初始化时钟,然后定义结构体,赋值结构体 GPIO_Mode可以选择那8种输入输出模式,GPIO_Pin选择引脚,可以用按位或的方式同时选中多个引脚,GPIO_Speed选择输出速度,最后使…

全网最全持续集成接口自动化-jmeter+ant+jenkins

ant 批量执行Jmeter 一、环境准备 1、JDK环境:Java Downloads | Oracle 2、ANT环境:Apache Ant - Binary Distributions 3、Jmeter:Apache JMeter - Download Apache JMeter 4、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant…

c语言中scanf的用法

通过键盘&#xff0c;将数据输入到变量中 #include<stdio.h>int main(void){int a;scanf("%d",&a);printf("%d",a);return 0; }scanf("%d",&a);: 从键盘输入数据的时候&#xff0c;输入的是一个个字符而不是数字等与已经定义好的…

【开发篇】一、内存泄漏的分析工具

文章目录 1、内存泄漏2、解决内存泄漏3、工具一&#xff1a;Top4、工具二&#xff1a;VisualVM5、工具三&#xff1a;阿尔萨斯Arthas6、工具四&#xff1a;Promethus Grafana7、图像分析 1、内存泄漏 一个对象不再使用后&#xff0c;&#xff08;因其从GC Root仍有引用链可达…

2023下半年软考证书什么时候发放?怎么领取?

已经确定领取时间的地区&#xff1a; 广东&#xff1a; 电子版&#xff1a;2024年1月8日上线 纸质版&#xff1a;预计24年2月开始 重庆&#xff1a; 邮寄申领&#xff1a;2024年1月15日0:00-3月1日23:00 现场领取&#xff1a;2024年1月15日-2月7日 贵州&#xff1a; 邮…

vue Element Plus Cascader级联选择器点击标签选中复选框

element-plus原功能 element-plus的Cascader级联选择器点击标签时是不会选中复选框的&#xff0c;我们想要实现点击标签时也能选中复选框这个效果&#xff0c;那么就要用到一些原生的方法 实现效果 mounted() {// Cascader 级联选择器: 点击文本就让它自动点击前面的input就可…

PPT自动化处理

python-pptx模块 可以创建、修改PPT(.pptx)文件非Python标准模块&#xff0c;需要单独安装 在线安装方式 pip install python-pptx 读取slide幻灯片 .slides 获取shape形状 slide.shapes 判断一个shape中是否存在文字 shape.has_text_frame 获取文字框 shape.text_f…

记录汇川:H5U与Fctory IO测试10

主程序&#xff1a; 子程序&#xff1a; IO映射 子程序&#xff1a; 自动程序 Fctory IO配置&#xff1a; HMI配置&#xff1a; 实际动作如下&#xff1a; Fctory IO测试10

Java Websocket发送文件给Vue客户端接收并上传,实现检测U盘插入并将指定文件上传到服务器功能

应用环境&#xff1a; B/S架构 需求描述&#xff1a; 1、判断U盘接入 2、扫描U盘指定文件&#xff0c;将满足条件的文件发送给服务器 解决思路&#xff1a; 1、因为bs架构&#xff0c;无法获取本机资源&#xff0c;计划在U盘所在服务器部署websocket服务 2、websocket服务扫描u…