解决请求响应乱码


  乱码问题:
      浏览器的编码格式由当前打开的页面决定,如果页面中设置了编码格式那么浏览器就使用这个,如果没有,浏览器使用系统默认的编码
      服务器编码格式和解码格式默认就是ISO-8859-1
      浏览器的解码格式由当前打开的页面决定
      
      浏览器(编码)-请求--->服务器(解码)
      服务器(编码)-响应--->浏览器(解码)
          统一编码和解码就可以解决乱码问题
     1、get请求乱码    针对整个工作空间的所有项目,解决了所有的get请求乱码
         浏览器是UTF-8,服务器也要使用UTF-8解码
         解决:修改服务器的配置文件,告诉他读取请求参数时使用UTF-8解码
             只解决了get请求乱码(告诉服务器在解析请求首行时使用UTF-8解析数据)
             在servers项目中server.xml的第65行  给connector标签添加属性  URIEncoding="UTF-8"
       2、post请求乱码    只针对当前的servlet,每个需要解决post请求乱码的servlet中都需要设置解码格式
          解决:在使用request对象之前设置解码格式 request.setCharacterEncoding("UTF-8")
              
      3、响应乱码
          response直接使用ISO-8859-1编码然后交给浏览器
          3.1 在使用response对象之前设置编码格式
              (不用)response.setCharacterEncoding("UTF-8");只能让字符串不乱吗,浏览器还是不知道如何解析页面字符串
          3.2 在使用response对象之前设置一个响应头,告诉浏览器如何解析页面,告诉response对象如何读取字符串
                  response.setHeader("Content-Type", "text/html;charset=Utf-8");
                  response.setContentType("text/html;charset=Utf-8");
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值