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

jsp产生乱码,从以下4个完整流程方面找原因:

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

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

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

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

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

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>*****</title>
</head>

接着是在<head>标签下的<meta>设置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的编码格式设置之类的,把问题弄得太复杂了。

 

同名原创公众号: 程序大视界

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序大视界

原创不易,请给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值