日期:2014-05-19  浏览次数:20708 次

关于从servlet跳转到jsp页面出现“?”的问题
各位大哥大姐。。。。小弟在做项目时遇到了一个情况。。。jsp页面出现乱码“?”。只是。。这次有点奇怪。。。jsp页面第一次显示时没有出现乱码。。但是,小弟传了一个参数到servlet页面在跳转到原来的同一个页面时。却全部都是乱码。。请问大家该怎么解决??万分着急。。。就要答辩了。。请各位帮帮忙吧。。谢谢!!!!

servlet代码:
        public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {
        request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String Mes=new String(request.getParameter("Mes"));
request.setAttribute("Mes",Mes);
request.getRequestDispatcher("Messages.jsp").forward(request,response);
}

------最佳解决方案--------------------
说的不清楚,请用A,B,C表示
------其他解决方案--------------------
各位大哥大姐。。。。小弟在做项目时遇到了一个情况。。。jsp页面出现乱码“?”。只是。。这次有点奇怪。。。jsp页面A第一次显示时没有出现乱码。。但是,小弟传了一个参数到servlet页面,然后再从servlet页面跳转到jsp页面A时。却全部都是乱码。。请问大家该怎么解决??万分着急。。。就要答辩了。。请各位帮帮忙吧。。谢谢!!!!

servlet代码:
  public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String Mes=new String(request.getParameter("Mes"));
request.setAttribute("Mes",Mes);
request.getRequestDispatcher("Messages.jsp").forward(request,response);
}
这下子清楚了吧。。各位大哥。。急等。。。。谢谢。。
------其他解决方案--------------------
response.setContentType("text/html;charset=gb2312");
设置的编码和页面的编码一致么?
------其他解决方案--------------------
写一个过滤器把所有的乱码全不解决掉,就OK了,不会再有乱码问题去打扰你了
------其他解决方案--------------------
写不出来加我Q296222242
------其他解决方案--------------------
恩,就是写一个filter,一切OK
------其他解决方案--------------------
确认下编码是否都一致,不行的话加过滤器吧
------其他解决方案--------------------
是在servlet跳转的时候出现的乱码,那么可能涉及到你的web容器里面的编码格式!是tomcat还是什么?

当然,最通用的解决办法是写一个filter进行编码过滤!这东西网上很多!
------其他解决方案--------------------
這個問題我也遇到過.
就是因為servlet与页面的编码不一致造成的.
LZ把编码都一致了就能解决相应问题.
其实最好还是写个过滤器.这样能一劳永逸
------其他解决方案--------------------
  容器中和页面的编码不一致造成的、 在页面用别的编码试试、例如:GBK
------其他解决方案--------------------
写filter,最好。

------其他解决方案--------------------
右击你的工程名,选择最后一个,Resource第一个,把Text File Encoding 里的Other换成UTF-8
------其他解决方案--------------------
jsp页面的编码是什么? jsp文件本身的编码呢? 你穿的什么数据?自己做过encode么? 是不是从数据库里面读取的数据? 如果是读出来的在控制台打印是不是乱码? 
你的jdk的file.encoding是什么? 用什么什么服务器? 服务器的编码是什么?
用ff的httpfox看下http头里面的编码是什么

楼上的 过滤器虽然能解决很多问题,但不能解决所有问题,
------其他解决方案--------------------
把【空间】的编码和【页面及后台处理】编码都整一样的,在页面设置下encode,这样就可以避免很多不必要的麻烦,我也撞见不少,费老大的劲
------其他解决方案--------------------
post方式:filter
get方式:server.xml
------其他解决方案--------------------