2

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

例如,我想将主页链接设为 http,这样它就不会发出 https 请求,然后再重定向到 http !

在 JSP 中生成 url 时,有没有办法强制安全(https)不安全(http) ?

提前致谢...

4

2 回答 2

2

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

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

或者

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

例如(在您的 JSP 中):

You can
<a href="https://${pageContext.request.serverName}<c:url value='/reset-password.jsp'/>">reset your password</a>
if you like.
于 2014-12-04T10:18:02.160 回答
0

如果您查看从 c:url 生成的 HTML,您会看到它们是这样的 这并没有告诉您该资源来自哪个主机或通过什么协议,但您的浏览器将采用与您的页面相同的主机和协议在...上。

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

于 2012-05-08T15:58:00.423 回答