servlet+jsp+中文乱码问题

这几天听同事说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发起请求的路径问题


    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值