• response和request的区别以及常见问题解决


      request是请求,即客服端发来的请求

      response是响应,是服务器做出的响应

    --------------------------------------------------------------

      request 是请求的载体,它附带着,请求的参数,ip,cookie,表单,字符编码,或者上传文件。你可以通过request去获得你所需要的信息。

      response是响应的载体,你可以设置,表头,报文,响应文件类型,字符编码,response,自带一个输出流,当你需要将一个页面或者一个文件传到客户端时,你可以通过这个流来进行操作。

    --------------------------------------------------------------

      在servlet中,当服务器接收到客户端发来的请求(即url字符串,通常指在浏览器的地址栏中输入相应的地址),服务器就会对客户端所发出的请求做出相应的响应,也就是利用response的方式向客户端发出相应的内容和要求。例如:response.setContentType("text/html;charset=utf-8");的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,并且设置了内容的编码类型。

    --------------------------------------------------------------

      //设置请求中的字符串的编码格式设置为UTF-8

      request.setCharacterEncoding("UTF-8");

      向服务器发送请求的编码方式是utf-8。在get发送方式下,设置此方式后依然有乱码情况出现。

      原因:request是对请求报文中的内容进行处理

      使用get发送方式提交参数时,使用的方式和post方式有一定的区别。在客户端和服务器之间传递参数时,相当于把一封信从客户端发向服务器,get方式提交是把要发送的内容(即报文)写在了信封上,而post方式提交相当于把要发送的内容写在了信的内容当中(塞在信封里面的),request.setCharacterEncoding("UTF-8");方式相当于把信的内容进行了编码,所以造成的结果就是get方式还是乱码,只对post放是发送的内容有效。

    -------------------------------------------------------------

      解决方法:

      1、get方式不要传递中文;

      2、使用URLDecoder解决:String str = URLDecoder.decode(username,"utf-8");

      3、使用一种最原始的办法来解决:String str = new String(username.getBytes("iso8859-1"),"utf-8");

  • 相关阅读:
    计算机算法设计与分析<王晓东编著> 2-5有重复元素的排列问题
    oracle 解除锁表sql
    restful
    正则表达式积累
    序列函数
    目录
    mongo 导入json数据
    mysql关于timestamp类型
    bigdecimal 保留小数位
    输出内容到文件(日志输出)
  • 原文地址:https://www.cnblogs.com/Carrol/p/4506583.html
Copyright © 2020-2023  润新知