编码之请求编码

编码之请求编码

注意:tomcat8,默认编码已经是UTF-8

请求编码

客户端发送给服务器的请求参数是什么编码?

这需要分情况,客户端传递数据有两种方式。

       1.在地址栏中直接给出数据(gbk编码),这个基本甚少会在地址栏直接打参数,可以忽略这个。

       2.在页面中点击表单或者超链接,如果你的响应页面是utf-8,那么你传递的数据就是utf-8。

3.举例:我们进行登录的时候,首先请求的是index首页,这个Index页面返回给客户端的是什么编码,那么我们登录表单提交的就是什么编码。

通俗理解:我们表单的编码和上一个页面有关。

 

* 服务器端默认使用什么编码来解码参数:

服务器端默认使用ISO-8859-1来解码!所以这一定会出现乱码的!因为iso不支持

*请求编码处理分为两种:GET和POST:GET请求参数不在请求体中,而POST请求参数在请求体中,所以它们的处理方式是不同的!

* GET请求编码处理:

1. String username=request.getParameter("username");

username=new String(username.getBytes(“ISO-8859-1”),”utf-8”);

2. 在server.xml中配置URIEncoding=utf-8,但是一般都不让用。

* POST请求编码处理:

1.String username=request.getParameter("username");

username=new String(username.getBytes(“ISO-8859-1”),”utf-8”);

2.在获取参数之前调用request.setCharacterEncoding("utf-8");

 

 

 

request请求编码:

  在获取参数之前,需要先调用request.setCharacterEncoding("utf-8");

  使用getParameter()来获取参数

response响应编码:

在使用getWriter()方法之前,先调用下面这个方法:

  response.setContentType("text/html;charset=utf-8")

 

requestGET请求图解

 

步骤:

* GET

              1、先获取来使用iso的错误字符串

              2、回退,(使用utf-8)重编

 

代码示例:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              /**

               * GET

              1、先获取来使用iso的错误字符串

              2、回退,(使用utf-8)重编

               */

             

              String username=request.getParameter("username");//获取参数

              byte [] bytes=username.getBytes("ISO-8859-1");//get默认编码是ISO,进行解码

              username=new String(bytes,"utf-8");//进行编码

                    

       }

简介的写法为:

       String username=request.getParameter("username");//获取参数

   //ISO-8859-1解码成字节数组,然后重新编成utf-8

       username=newString(username.getBytes(“ISO-8859-1”),”utf-8”);

返回结果:

 

 

requestPOST请求图解

步骤:

/**

               * 在获取参数之前,需要先调用request.setCharacterEncoding("utf-8");

                     使用getParameter()来获取参数

               */

 

代码示例:

@Override

       protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              /**

               * 在获取参数之前,需要先调用request.setCharacterEncoding("utf-8");

                     使用getParameter()来获取参数

               */

             

              request.setCharacterEncoding("utf-8");

              String username =request.getParameter("username");

              System.out.println(username);

             

       }

 

返回结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值