关于项目在网页中运行部分jsp出现乱码(由request.getRequestDispatcher("XXX.jsp").forward(request, response)造成)的解决方法

在写jsp的时候发现部分的jsp在浏览器预览时出现乱码,为一堆问号,如图:

当时问了同学,只有部分jsp会出现乱码,因为重新建一个jsp在运行就没有错误,可以显示出来,所以发现是jsp头部的错误,当新建一个jsp把内容复制过去可以正确显示,但当把名字改成需要跳转的jsp时就会出现乱码,所以我才发现是由于调用这个名字的jsp出现了错误即:request.getRequestDispatcher("XXX.jsp").forward(request, response)造成了乱码,解决只需要在servlet的doGet方法里加入  response.setCharacterEncoding("UTF-8");,至于为什么之前的request.setCharacterEncoding("UTF-8");和response会由不一样的效果呢,这是因为request.setCharacterEncoding():是设置从request中取得的值或从数据库中取出的值。而response.setCharacterEncoding()设置HTTP 响应的编码,因此两者作用不一样。

猜你喜欢

转载自www.cnblogs.com/tkg1314/p/12076105.html