关于URLEncoder和URLDecoder的一些问题?

时间:2012-06-01 08:30:18

标签: java encoding urlencode

我已经通过URLEncoder和URLDecoder的javadocs了。然后变得更好奇。将服务器视为tomcat。在我们提交的任何web应用程序中 表单,服务器将表单字段转换为urlencoded字段,当我们执行request.getParamter(“fieldName”)时。服务器再次使用URLDecoder对其进行解码。     这是对的吗?服务器是做它还是浏览器?当我们在地址栏中输入任何url时会发生相同的事情吗? 如果服务器或浏览器这样做     当我们需要在URLEncoder和URLDecoder的帮助下明确地编码或解码请求参数时?虽然这些是基本问题,但却找不到这些答案。

2 个答案:

答案 0 :(得分:1)

虽然浏览器确实在将URL传递给Web服务器之前对其进行编码,但可能始终没有浏览器参与。

e.g。您的服务器应用程序可能正在进行基于REST的调用并在简单的GET请求中传递一些数据。然后,如果您不在服务器上对其进行编码,则接收器对其进行解码时可能会出现乱码。

因此,强烈建议在将URL发送到服务器代码之前对其进行编码。

答案 1 :(得分:1)

  

在我们提交表单的任何web应用程序中,服务器将表单字段转换为urlencoded字段,当我们执行request.getParamter(“fieldName”)时。

没有。浏览器会这样做。

  

服务器再次使用URLDecoder对其进行解码。这是对的吗?

  

服务器是做它还是浏览器?

浏览器。

  

如果我们需要对请求参数进行编码或解码,服务器或浏览器会这样做   在URLEncoder和URLDecoder的帮助下明确显示?'

我不知道这意味着什么,但它仍然是浏览器。如果要从应用程序代码发送请求,则只需要对请求参数进行编码。如果你在servlet容器中运行,你根本不需要解码它们:它会为你做到这一点。