gpt4 book ai didi

java - encodeURL 和 encodeRedirectURL 有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:56 26 4
gpt4 key购买 nike

我已经看到现有的问题:Difference between encodeURL and encodeRedirectURL .但它并没有真正回答这个问题。在我的测试中,这两种方法看起来是一样的。无论我使用 print 还是 sendRedirect,它们都可以正常工作。

那么真的有什么区别吗?我想查看源代码,这样也许我可以找到不同之处,但是 HttpServletResponse 是一个没有实现的接口(interface)。实现代码在哪里?

最佳答案

but HttpServletResponse is an interface with no implementation. Where is the implementation code?

servletcontainer 本身是具体的 Servlet API 实现。例如 Apache Tomcat 的具体实现是 org.apache.catalina.connector.Response .以下是相关摘录:

 1128       /**
1129 * Encode the session identifier associated with this response
1130 * into the specified redirect URL, if necessary.
1131 *
1132 * @param url URL to be encoded
1133 */
1134 public String encodeRedirectURL(String url) {
1135
1136 if (isEncodeable(toAbsolute(url))) {
1137 return (toEncoded(url, request.getSessionInternal().getIdInternal()));
1138 } else {
1139 return (url);
1140 }
1141
1142 }
 1159       /**
1160 * Encode the session identifier associated with this response
1161 * into the specified URL, if necessary.
1162 *
1163 * @param url URL to be encoded
1164 */
1165 public String encodeURL(String url) {
1166
1167 String absolute = toAbsolute(url);
1168 if (isEncodeable(absolute)) {
1169 // W3c spec clearly said
1170 if (url.equalsIgnoreCase("")){
1171 url = absolute;
1172 }
1173 return (toEncoded(url, request.getSessionInternal().getIdInternal()));
1174 } else {
1175 return (url);
1176 }
1177
1178 }

区别非常微妙。只要给定的(相对)URL 为空,encodeURL() 就会使用完整的绝对 URL。

关于java - encodeURL 和 encodeRedirectURL 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4944778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com