我只是想知道当前 URL 是在 HTTP 还是 HTTPS 下。问题是我们的测试环境中有许多自签名证书,因此验证证书概率不是一种选择。我尝试了以下方法,但似乎并非在所有情况下都有效。
String protocol = request.getProtocol();
out.println(protocol); // prints out HTTP/1.1 on self signed servers
Boolean secure = ((HttpServletRequest)pageContext.getRequest()).isSecure();
if (secure) {
out.println("secure")
} else {
out.println("not secure") // always fails
}
我想我可以使用 getRequest 并在字符串中搜索“https”——但我假设有一种真正受支持的方式来执行此操作。