素材巴巴 > 程序开发 >

request方式请求post中文乱码处理

程序开发 2023-09-20 18:56:27

1.详解

Request接收参数时有get和post两种请求方式,但是处理中文的编码却不一样,我们在做项目时会全站都采用统一的编码,最常用的就是UTF-8,在UTF-8编码的项目中当我们使用post请求时:

处理post编码问题,请求信息中,只有POST存在正文,所谓POST参数编码就是请求正文的编码。

默认情况下,使用getParameter()获取POST请求参数时,使用的是ISO-8859-1编码。

 

 

每个请求在开头只需要调用request的setCharacterEncoding()一次,便可所有的编码都会以这种方式来解读,但要注意,只对请求正文有效(POST参数)。

2.演示

第一种方式:

import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;public class test01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}/** post方式请求处理中文乱码* */@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String name = req.getParameter("name");String introduce = req.getParameter("introduce");// 第一种方式name = new String(name.getBytes("ISO-8859-1"), "UTF-8");System.out.println(name);}
 }
 

第二种方式:

import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;public class test02 extends HttpServlet {/** post方式请求处理中文乱码* */@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 第二种方式  给request设置编码为:UTF-8(必须在getParameter之前使用)req.setCharacterEncoding("UTF-8");String name = req.getParameter("name");String introduce = req.getParameter("introduce");System.out.println(name);System.out.println(introduce);}
 }

 


标签:

上一篇: Spring MVC教程四 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。