Java 在HttpServlet中强制从HTTPS到HTTP的请求

Java 在HttpServlet中强制从HTTPS到HTTP的请求,java,servlets,Java,Servlets,我有一个与工作的链接 “https://”和“http://” 以前 当我使用htppservlet从“https://”请求时, 我希望响应返回一个“http://”。 因此,客户端可以更轻松地查看 我该怎么办 您可以使用如下代码来实现: if (request.isSecure()) { // it is HTTPS String reqUrl = req.getRequestURL().toString().replaceFirst("https:", "http:");

我有一个与工作的链接

“https://”和“http://”

以前

当我使用htppservlet从
“https://”请求时,
我希望响应返回一个
“http://”
。 因此,客户端可以更轻松地查看


我该怎么办

您可以使用如下代码来实现:

if (request.isSecure()) { // it is HTTPS
    String reqUrl = req.getRequestURL().toString().replaceFirst("https:", "http:");
    String queryString = req.getQueryString();
    if (queryString != null)
        reqUrl += '?' + queryString;
    response.sendRedirect(reqUrl);
}

您希望通过HTTP重定向到同一个servlet,还是希望使用包含HTTP链接的页面进行响应?希望浏览器不会在不提示用户确认的情况下自动从HTTPS降级到HTTP。“这样客户端可以更方便地查看。”这完全超出了我的理解范围。到底是什么问题?客户端希望重定向到没有“https”的链接。因此,我必须将其改为“http”,您可以不太详细地进行替换(尽管可能不太容易理解?),因为
getRequestURL()
返回
StringBuffer
String reqUrl=req.getRequestURL().replace(0,6,“http:”).toString()感谢您的帮助,我通过在配置文件“replace into'http://”中编辑解决了这个问题