有关URLEncoder和URLDecoder的一些问题?

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

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

不,浏览器会这样做。

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

是。

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

浏览器。

如果我们需要在URLEncoder和URLDecoder的帮助下显式编码或解码请求参数,服务器或浏览器会这样做吗?

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

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

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

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