Servlet中直接response.getWriter().write() 输出乱码解决!

package top.lixiang007.servlet;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;


@WebServlet("/Test")
public class ServletTest extends GenericServlet {
    @Override
    public void init() throws ServletException {
        System.out.println("servlet is loaded\n");
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        servletResponse.setCharacterEncoding("UTF-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        PrintWriter out=servletResponse.getWriter();
        out.println("1830090115 李响\n");
    }

    @Override
    public void destroy() {
        System.out.println("servlet is destroyed\n");
    }
}

Demo2中的response.setCharacterEncoding隐藏在JSP页面中了。
然后根据转换后的Servlet可以看出response.setContentType(“text/html;charset=utf-8”);
才能达到应有的效果,在使用http协议的情况中,该方法设置 Content-type实体报头
response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不
同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
例如:web浏览器就是通过MIME类型来判断文件是GIF图片,通过MIME类型来处理json字符串。
Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。
response.setContentType(“text/html; charset=utf-8”); html
response.setContentType(“text/plain; charset=utf-8”); 文本
response.setContentType(“text/javascript; charset=utf-8”); json数据
response.setContentType(“application/xml; charset=utf-8”); xml数据

 

上一篇:python soap协议接口获取数据 client端


下一篇:VUE的生命周期及理解?