JSTL / JSP生成url并强制HTTP / HTTPS

时间:2012-05-08 00:40:00

标签: jsp jstl

我正在使用c:url生成相对于上下文路径的网址。 但是,如果在安全页面中,所有网址都将 https ,或者在不安全的网页中 http 。 我已经设置了我的服务器,以便即使我访问例如带有http的登录页面,它也会重定向到https,但在登录页面中,我使用的所有相对网址都是https。

我希望例如将homePage链接设为http,以便它不会执行https请求,然后再执行重定向到http!

是否可以在生成网址时强制 安全(https) 不安全(http) JSP?

提前致谢...

2 个答案:

答案 0 :(得分:2)

我发现处理此问题的最简单方法是使用以下方法之一:

http://${pageContext.request.serverName}<c:url value="/my/path"/>

https://${pageContext.request.serverName}<c:url value="/my/path"/>

E.g。 (在您的JSP中):

You can
<a href="https://${pageContext.request.serverName}<c:url value='/reset-password.jsp'/>">reset your password</a>
if you like.

答案 1 :(得分:0)

如果您从c:url查看生成的HTML,您会看到它们就像 这不会告诉您该资源来自哪个主机或协议,但您的浏览器将采用与您所在页面相同的主机和协议。

如果您的网页位于http://example.com/mysite,并且您想要链接到https://secure.example.com/mysite上的子页面,那么这会被视为当前网络应用之外的链接(即使该链接背后的代码最终会被处理通过相同的webapp)。像对待链接到其他外部网站一样对待它们。