servlet中文显示乱码问题

运行时显示乱码,试了n多方法还是不行,myeclipse里边jsp什么的设置的是utf-8。求大神解答
package servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class firstServlet
    */
    public class firstServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet() */ public firstServlet() { super(); // TODO Auto-generated constructor stub }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      request.setCharacterEncoding("UTF-8");

      PrintWriter out = response.getWriter();
      response.setCharacterEncoding("UTF-8");
      response.setContentType("text/html,charest=UTF-8");

      out.write("获取到的客户机信息如下:");
      out.write("
      ");
      out.write("请求的url地址:"+request.getRequestURL());
      out.write("
      ");
      out.write("请求的资源:"+request.getRequestURI());
      out.write("
      ");
      out.write("请求的URL地址中附带的参数:"+request.getQueryString());
      out.write("
      ");
      out.write("来访者的IP地址:"+request.getRemoteAddr());
      out.write("
      ");
      out.write("来访者的主机名:"+request.getRemoteHost());
      out.write("
      ");
      out.write("使用的端口号:"+request.getRemotePort());
      out.write("
      ");
      out.write("remoteUser"+request.getRemoteUser());
      out.write("
      ");
      out.write("请求使用的方法:"+request.getMethod());
      out.write("
      ");
      out.write("pathInfo:"+request.getPathInfo());
      out.write("
      ");
      out.write("localAddr:"+request.getLocalAddr());
      out.write("
      ");
      out.write("localName:"+request.getLocalName());
      out.write("
      ");
      out.close();
      }
      /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }

}
这是运行结果
图片说明

 还有一种可能就是你的Tomcat的编码设置没有统一,你搜一下Tomcat的server.xml的URIEncoding属性,配一下这个属性值为utf8。

看了你的代码,也就是你的代码是请求和响应都市用统一的编码。不过你漏了一个过程,请求-服务器-响应。你的服务器默认的不是utf8编码的。
所以你修改一下编码就好。如果你是用三角猫(Tomcat),配置一下编码格式就好。

统一JSP的编码很简单,去首选项搜JSP,设置编码为UTF8就行了。

1.检查Tomcat的server.xml和web.xml的URIEncoding属性,要设置为utf-8
<?xml version="1.0" encoding="UTF-8"?>

2.jsp页面字符编码也要为utf-8
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


你这种方式的话,用post就可以解决中文乱码,get的话,你用reques。set编码是没用的,因为get的数据是在url上,所以你需要在tomcat上设置,而post是http的boby部分,可以通过request.set设置编http://blog.csdn.net/zzhao114/article/details/54646945