关于项目在网页中运行部分jsp出现乱码(由request.getRequestDispatcher("XXX.jsp").forward(request, response)造成)
Posted 宋泊然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于项目在网页中运行部分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 响应的编码,因此两者作用不一样。
以上是关于关于项目在网页中运行部分jsp出现乱码(由request.getRequestDispatcher("XXX.jsp").forward(request, response)造成)的主要内容,如果未能解决你的问题,请参考以下文章