setContentType 的顺序 导致的乱码问题

学习severlet的时候,写了一段html的代码,总是出现乱码,后来发现原来是resp.setContentType("text/html;charset=gbk");顺序的问题!

这么写就没乱码

resp.setContentType("text/html;charset=gbk");//这个要写在创建printwriter前面,不然没效果
PrintWriter out = resp.getWriter();
out.println("<html><head></head><body><h2>欢迎"+u.getUname()+"来到登录系统</h2><br>");
out.println("<a href='login'>退出系统</a></body></html>");

这么写就有乱码<br/>

PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=gbk");//写在了初始化PrintWriter的下面
out.println("<html><head></head><body><h2>欢迎"+u.getUname()+"来到登录系统</h2><br>");
out.println("<a href='login'>退出系统</a></body></html>");

这个方法也可以,同样要写在初始化PrintWriter前面<br/>

resp.setCharacterEncoding("gbk");

你可能感兴趣的:(web学习之乱码笔记)