当前位置: 首页 > news >正文

JSP页面+Servlet乱码问题解决方法


> 本文首发于CSDN:JSP页面+Servlet乱码问题解决方法
jsp产生乱码,从以下4个完整流程方面找原因:

- 前端jsp传值设置编码格式
- 后台servlet接收请求参数request设置编码格式
- 后台servlet返回参数response设置编码格式
- 前端jsp接收后台返回参数

1、对于前端jsp传值设置编码格式:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

这个默认在jsp页面的第一行,设置如上。本文以utf-8格式编码为例

对于这个编码设置,应理解为:该jsp页面显示的文本等编码格式,比如页面标题,文本框标题等。

`

<strong>*</strong>
`

接着是在标签下的设置utf-8编码格式,对于这个编码设置,应理解为:该jsp页面携带的请求参数向后台传值时的

编码格式。

2、后台servlet接收request请求参数和返回response参数,归为一类讲解。

     对于GET请求和POST请求同样设置:

` @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("application/json; charset=utf-8");
doGet(req,resp);
}`

在servlet的HttpServletRequestHttpServletResponse参数设置编码格式:

HttpServletRequest 设置:req.setCharacterEncoding("UTF-8");

是用来接收jsp请求的参数并转码;跟第一步中在jsp页面请求参数中设置编码格式互为:编码——>解码。

HttpServletResponse 设置:resp.setContentType("application/json; charset=utf-8");

是用来设置后台servlet处理完请求返回给前端jsp页面的编码格式,跟第4步中的jsp页面接收后台返回参数设置的解码格式互为:

编码——>解码。

3、前端jsp页面接收后台servlet处理请求完后设置编码

      通常这个可以忽略,拿出来讲解只是为了让大家更好的理解整个前端+后台编码解码逻辑流程。

对于这里接收的编码格式,无需做特别处理,按照原本的编码设置就好:

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>

解析后台传值的编码,设置为utf-8统一整个编码格式设置就好了。

 

凡是遇到jsp乱码的问题,先从以上几个方面入手分析,看到网上有什么关乎到tomcat应用服务器里server.xml的编码格式设置之类的,把问题弄得太复杂了。

 

![](https://i-blog.csdnimg.cn/blog_migrate/0f7906e1c4b39dbd956fce79f8c364d2.jpeg)同名原创公众号:程序大视界

 





$(function() {
setTimeout(function () {
var mathcodeList = document.querySelectorAll('.htmledit_views img.mathcode');
if (mathcodeList.length > 0) {
for (let i = 0; i ');
curSpan.text(alt);
$(mathcodeList[i]).before(curSpan);
$(mathcodeList[i]).remove();
}
} else {
mathcodeList[i].onerror = function() {
var alt = mathcodeList[i].alt;
alt = '\\(' + alt + '\\)';
var curSpan = $('');
curSpan.text(alt);
$(mathcodeList[i]).before(curSpan);
$(mathcodeList[i]).remove();
};
}
}
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}
}, 500)
});




![](https://csdnimg.cn/release/blogv2/dist/pc/img/vip-limited-close-newWhite.png)

确定要放弃本次机会?

福利倒计时


:

:




![](https://csdnimg.cn/release/blogv2/dist/pc/img/vip-limited-close-roup.png)
立减 ¥

普通VIP年卡可用

立即使用





![

程序大视界

](https://blog.csdn.net/Follow_24)


关注
关注



-

![](https://csdnimg.cn/release/blogv2/dist/pc/img/tobarThumbUpactive.png)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/like-active.png)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/like.png)

1


点赞

-

![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/unlike-active.png)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/unlike.png)



-
[
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/collect-active.png)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/collect.png)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectActive.png)

1

](javascript:;)



收藏





觉得还不错?

一键收藏

![](https://csdnimg.cn/release/blogv2/dist/pc/img/collectionCloseWhite.png)


-

![](https://csdnimg.cn/release/blogv2/dist/pc/img/guideRedReward01.png)
知道了

[
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/comment.png)

2

](#commentBox)
评论

-
[
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/share.png)
分享
](javascript:;)



复制链接


分享到 QQ


分享到新浪微博




![](https://csdnimg.cn/release/blogv2/dist/pc/img/share/icon-wechat.png)扫一扫




-
[
![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/reward.png)
打赏
](javascript:;)
打赏

-

![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/more.png)





![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/reward.png)
打赏


![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/report.png)
举报




![](https://csdnimg.cn/release/blogv2/dist/pc/img/toolbar/report.png)
举报






专栏目录

http://www.jsqmd.com/news/772246/

相关文章:

  • 5步在PC上运行任天堂Switch游戏:Ryujinx模拟器完全指南
  • LayaAir音视频处理:打造沉浸式游戏体验的完整方案
  • radare2自动化脚本:批量处理二进制文件的终极指南
  • Needle实战案例:TicTacToe项目依赖注入完整实现
  • Python Web开发实战:构建现代Web应用
  • 充电桩销售厂家口碑推荐:靠谱货源哪里找? - 品牌企业推荐师(官方)
  • JBoss应用服务器清理缓存
  • 5步打造你的高品质音乐收藏:TIDAL-dl-ng开源工具完全指南
  • WarcraftHelper终极指南:让你的魔兽争霸3在现代电脑上重生
  • Flink实时数据处理终极指南:从零构建企业级流处理系统
  • 开源频道插件架构解析:从插件化设计到高可用消息通信实践
  • 智能家居动画革命:如何用libpag打造物联网设备交互新体验
  • 手把手教你用Logisim搞定汉字编码:从国标码到机内码的实战转换
  • 简单快速的KrkrzExtract:终极krkrz引擎XP3资源解包工具完全指南
  • 终极PHP性能优化指南:10个提升应用速度的设计模式实战技巧
  • 洛阳魏与亓物资回收:打造本地诚信、专业的资源循环服务标杆 - 品牌企业推荐师(官方)
  • Python 数据科学实战:从数据到洞察
  • 独立开发者如何利用Taotoken构建具备多模型切换能力的AI应用
  • GoPro视频GPS数据提取终极指南:三招解锁隐藏的运动轨迹
  • 2025最权威的五大降重复率方案解析与推荐
  • 医学影像分割终极指南:如何用MedSAM快速实现精准器官识别
  • 终极指南:揭秘spicetify-cli彩色终端输出的7个核心技术实现原理
  • 如何快速掌握强连通分量算法:面向初学者的完整指南
  • 答辩前24小时降AI率工具速度横评:哪款2分钟出稿最快? - 我要发一区
  • 2026年最新同城靠谱相亲平台选型分析与合规优质平台推荐 - 产业观察网
  • Python 数据可视化实战:让数据说话
  • Linux内核漏洞利用实战指南:如何编译和运行漏洞利用代码的终极教程
  • FreedomGPT本地AI对话工具:基于Electron+React与llama.cpp的离线部署指南
  • 现代C++移动语义终极指南:C++11右值引用与完美转发技术详解
  • MCP协议实战:为AI智能体构建安全可控的本地与网络操作能力