servlet+jsp+中文乱码问题

来源:互联网 发布:编程培训班靠谱吗 编辑:程序博客网 时间:2024/05/11 03:29

这几天听同事说servlet中午乱码问题。我也心血来潮就搞了一把。主要还是时间比较长没有接触servlet了。感觉有点忘了。就又自己搞了一个web小测试。注册到登录给自己复习复习。

情景:jsp页面统一采用post请求。我基本从来不用get请求.页面编码统一设置成gbk

过程:表单通过action提交

servlet:这里面中文参数的接受debug进去会发现中文乱码怎么解决呢?实验过后发现两种办法:

第一种:上来直接request.setCharacterEncoding("gbk");搞定。中文参数String username=request.getParameter("username");//直接中文搞定

第二种:String username=request.getParameter("username");

             username=new String(username,getBytes("iso-8859-1"),"gbk");//也能搞定

两者取其一。不能重用

 

情景:我去,servlet转发到jsp页面,页面获取reqeust.getAttribute("info");显示??????//乱码又出现

解决:在servlet中处理:

第一步:request.setCharacterEncoding("gbk");直接注释掉

第二步:response.setCharacterEncoding("gbk")添加代码

第二步:String username=request.getParameter("username");

             username=new String(username,getBytes("iso-8859-1"),"gbk");

结果:转发jsp中文ok!

如果此时servlet不用转发而用重定向呢?重定向是服务器和浏览器间的通信,此时request对象不能共用所以request绑定信息为空

response.sendRedirect(request.getContextPath()+"/info.jsp");重定向到页面绝对路径

情景:jsp页面向servlet发起请求的路径问题


    

 

 

原创粉丝点击