我已经通过URLEncoder和URLDecoder的javadocs了。然后变得更好奇。将服务器视为tomcat。在我们提交的任何web应用程序中 表单,服务器将表单字段转换为urlencoded字段,当我们执行request.getParamter(“fieldName”)时。服务器再次使用URLDecoder对其进行解码。 这是对的吗?服务器是做它还是浏览器?当我们在地址栏中输入任何url时会发生相同的事情吗? 如果服务器或浏览器这样做 当我们需要在URLEncoder和URLDecoder的帮助下明确地编码或解码请求参数时?虽然这些是基本问题,但却找不到这些答案。
答案 0 :(得分:1)
虽然浏览器确实在将URL传递给Web服务器之前对其进行编码,但可能始终没有浏览器参与。
e.g。您的服务器应用程序可能正在进行基于REST的调用并在简单的GET请求中传递一些数据。然后,如果您不在服务器上对其进行编码,则接收器对其进行解码时可能会出现乱码。
因此,强烈建议在将URL发送到服务器代码之前对其进行编码。
答案 1 :(得分:1)
在我们提交表单的任何web应用程序中,服务器将表单字段转换为urlencoded字段,当我们执行request.getParamter(“fieldName”)时。
没有。浏览器会这样做。
服务器再次使用URLDecoder对其进行解码。这是对的吗?
是
服务器是做它还是浏览器?
浏览器。
如果我们需要对请求参数进行编码或解码,服务器或浏览器会这样做 在URLEncoder和URLDecoder的帮助下明确显示?'
我不知道这意味着什么,但它仍然是浏览器。如果要从应用程序代码发送请求,则只需要对请求参数进行编码。如果你在servlet容器中运行,你根本不需要解码它们:它会为你做到这一点。