servlet获取后台数据乱码处理

 时间:2026-02-15 03:24:44

1、第一步:新建一个javaweb项目。

打开myeclipse file --》new--》web project 

具体操作如下图所示:

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

2、第二步:搭建servlet开发环境。

新建一个servlet UserServlet.java,index.jsp在web.xml中配置servlet

代码如下:

package com.test.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class UserServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String sex = request.getParameter("sex");

String[] bobby = request.getParameterValues("bobby");

System.out.println("性别 :"+sex);

for (int i = 1; i <= bobby.length; i++) {

System.out.println("爱好"+i+" :"+bobby[i-1]);

}

}

}

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

3、第三步:问题分析,解决思路。

1、乱码产生原因是get请求在前端处理时将中使用ISO-8859-1进行编码而java文件和jsp文件一般都是使用UTF-8编码,如下图1所示

2、确认了问题解决起来也就简单,只要使用对应的编码对其解码就可以解决此问题。

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

4、第四步:解决方案1在后台使用ISO-8859-1解码。

具体实现代码如下所示:

package com.test.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class UserServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String sex = request.getParameter("sex");

String[] bobby = request.getParameterValues("bobby");

System.out.println("性别 :"+new String(sex.getBytes("ISO-8859-1"),"utf-8"));

for (int i = 1; i <= bobby.length; i++) {

System.out.println("爱好"+i+" :"+new String(bobby[i-1].getBytes("ISO-8859-1"),"utf-8"));

}

}

}

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

5、第五步:使用post方式提交表单。

<form action="/servlet/userServlet.do" method="post">

    爱好1:<input type="text" name="bobby"><br/>

    爱好2:<input type="text" name="bobby"><br/>

    爱好3:<input type="text" name="bobby"><br/>

    爱好4:<input type="text" name="bobby"><br/>

    性别:<input type="text" name="sex"><br/>

    <input type="submit" value="提交">

    </form>

servlet获取后台数据乱码处理

servlet获取后台数据乱码处理

6、第六部:传输之前使用编码。

1、js前端编码

encodeURI 方法  编码

decodeURI 方法 解码

2、java后台编码

import java.net.URLDecoder;

import java.net.URLEncoder;

//URLEncoder.encode("乱码","UTF8");编码

//URLDecoder.decode("乱码","UTF-8")解码

  • MessageBox函数中的第四个参数uType详解
  • Myeclipse快速复制行移动行
  • SQLyog如何创建视图,详细教程
  • java开发中经常看中文乱码问题全解决方案
  • 如何使用ListView显示10行文字在手机界面上
  • 热门搜索
    威海旅游攻略 武功山旅游攻略 乐山旅游攻略 南极旅游 泰国旅游景点 怀化旅游 商务旅游 凯里旅游 5.1旅游 济南旅游景点大全