Html表单提交到Servlet输出到页面乱码

2023-05-25编程技术133283

Html使用的编码是UTF-8编码显示页面,之后使用form表单提交字段到Servlet中,Servlet将利用getParamer方法获得form提交的字段,之后通过Respone中的writer将获取到的前台字段反馈到前台中去,出现中午乱码错误,这是因为添加了这个字段。
response.setContentType("text/html");
可见浏览器对后台提交的字段的一个识别作用,这个字段代表提交的字段是“文本/html”,给浏览器识别,这样后台提交文本时候的时候会出现中文字符是以文本的形式提交的,而提交的字段是使用GBK格式(因为能够在终端正确显示)必然因为输入和输出流的不同,导致中文字符出现编码问题,所以必须对输入和输出流进行编码通化,具体方法就是加如下代码:
// 设置输入的编码格式为utf-8
request.setCharacterEncoding("utf8");
// 设置输入的编码格式为utf-8
response.setCharacterEncoding("utf8");
完整的操作片段为:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置输入的编码格式为utf-8
request.setCharacterEncoding("utf8");
// 设置输入的编码格式为utf-8
response.setCharacterEncoding("utf8");
// 给浏览器的标示,该字体为text/html
response.setContentType("text/html"); PrintWriter out = response.getWriter(); // 做一些输出操作...........
// out.println();
out.flush();
out.close();
}

  

Html使用的编码是UTF-8编码显示页面,之后使用form表单提交字段到Servlet中,Servlet将利用getParamer方法获得form提交的字段,之后通过Respone中的writer将获取到的前台字段反馈到前台中去,出现中午乱码错误,这是因为添加了这个字段。

    response.setContentType("text/html");

    可见浏览器对后台提交的字段的一个识别作用,这个字段代表提交的字段是“文本/html”,给浏览器识别,这样后台提交文本时候的时候会出现中文字符是以文本的形式提交的,而提交的字段是使用GBK格式(因为能够在终端正确显示)必然因为输入和输出流的不同,导致中文字符出现编码问题,所以必须对输入和输出流进行编码通化,具体方法就是加如下代码:

    // 设置输入的编码格式为utf-8
    request.setCharacterEncoding("utf8");
    // 设置输入的编码格式为utf-8
    response.setCharacterEncoding("utf8");

    完整的操作片段为:

    publicvoid doPost(HttpServletRequest request,HttpServletResponse response)
    throwsServletException,IOException{
    // 设置输入的编码格式为utf-8
    request.setCharacterEncoding("utf8");
    // 设置输入的编码格式为utf-8
    response.setCharacterEncoding("utf8");
    // 给浏览器的标示,该字体为text/html
    response.setContentType("text/html");

    PrintWriter out = response.getWriter();

    // 做一些输出操作...........
    // out.println();

    out.flush();
    out.close();
    }

Html表单提交到Servlet输出到页面乱码的相关教程结束。

本文地址:https://www.ufcn.cn/tutorials/2671645.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!