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数据
标签:write,utf,setContentType,charset,乱码,import,getWriter,servlet,response 来源: https://blog.51cto.com/u_14013325/2899246