setLocale(java.util.Locale), setCharacterEncoding(java.lang.String),setContentType(java.lang.String

对于setCharacterEncoding(java.lang.String),这个方法是javax.servlet.ServletRequest和javax.servlet.ServletResponse都有的。
ServletRequest用它来设置对来自客户端请求的字节流的解码方式,ServletResponse用它来设置发送给客户端的字节流的编码方式。
例如:ServletResponse.setCharacterEncoding("UTF-8");html

对于 setContentType(java.lang.String type)方法则是ServletResponse特有的,一样能够设置发送给客户端的字节流的编码方式。
和setCharacterEncoding(java.lang.String)的效果是等效的。
例如:ServletResponse.setContentType("text/html;charset=utf-8");
这两个方法能够重复设置,已最后一次设置的为准。
测试代码以下:java

public void service(ServletRequest req, ServletResponse res) {
        try {
           /* res.setCharacterEncoding("UTF-8");
            res.setContentType("text/html;charset=gbk");
            res.setCharacterEncoding("UTF-8");
            res.setContentType("text/html;charset=gbk");
            res.setCharacterEncoding("UTF-8");
            res.setContentType("text/html;charset=gbk");
            res.setContentType("text/html;charset=utf-8");
            res.setCharacterEncoding("UTF-8");*/
            System.out.println(getClass()+"-service(ServletRequest req, ServletResponse res)");
            System.out.println(req);
            System.out.println(res);
            System.out.println("------------------Writer:--------------");
            PrintWriter out = res.getWriter();
            System.out.println(out);
            out.println("Writer:"+out);
            out.println("req.getCharacterEncoding():"+req.getCharacterEncoding());
            out.println("res.getCharacterEncoding():"+res.getCharacterEncoding());
            out.println("res.getContentType():"+res.getContentType());
            out.println("req.getServletContext().getContextPath():"+req.getServletContext().getContextPath());
            out.println("测试中文的,哈哈!");
           
        } catch (Exception e) {
            System.out.println(e);
        }
    }

  

对于setLocale(java.util.Locale)这个方法,API文档虽说也能够设置编码方式可是经测试发现没有效果。
之后研究半天无果,留待之后解决。测试

发现对于ServletResponse调用setContentType("text/html;charset=UTF-8");比较合适,由于仅仅调用setCharacterEncoding("UTF-8")不会向客户端发送Content-Type:text/html;charset=UTF-8的响应消息,从而肯能会致使乱码。编码

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息