我正在使用c:url
生成相对于上下文路径的网址。
但是,如果在安全页面中,所有网址都将 https ,或者在不安全的网页中 http 。
我已经设置了我的服务器,以便即使我访问例如带有http的登录页面,它也会重定向到https,但在登录页面中,我使用的所有相对网址都是https。
我希望例如将homePage链接设为http,以便它不会执行https请求,然后再执行重定向到http!
是否可以在生成网址时强制 安全(https) 或 不安全(http) JSP?
提前致谢...
答案 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)。像对待链接到其他外部网站一样对待它们。