servlet到jsp页面出现乱码,原因
out.print("<script>alert('删除成功');location.href='back/user/user_list.jsp'</script>");
过滤器也设置了,最后发现在servlet少了一句:
response.setContentType("text/html;charset=GBK");
它是设置内容的编码,就是给页面的东西的编码。
这个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置Content-type实体报头。
一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");