我想将页面http://
重定向到jsp中的https://
。
我和我有一些代码,但它提出了一些问题。
<%
String req_protocol = request.getProtocol().toLowerCase();
String convertHttps = req_protocol.substring(0, req_protocol.indexOf("/")).toLowerCase();
if(convertHttps.equals("http")){
response.sendRedirect("https://xyz.com/signup/signup.jsp");
}
%>
它将错误页面作为“无限循环”。
答案 0 :(得分:5)
使用request.isSecure()
确定其http://
或https://
此转换更适合Filter
或Servlet
而不是jsp
答案 1 :(得分:0)
你没有多提及你的环境,但这里还有其他一些要记住的事情。
除了org.life.java提到的内容之外,如果你的应用服务器前面有一个反向代理(想想Tomcat,Glassfish等前面的Apache或Pound),那么SSL请求就有可能正在代理处终止,并且传递给容器/应用程序服务器的请求只是HTTP。在这种情况下,您通常希望代理服务器在请求上设置标头,以便Java端可以确定它是安全请求。
如果不这样做将导致无限重定向,因为Java端将始终检测到它是HTTP并重定向。