如何在jsp中获取主机地址?

时间:2013-08-21 00:01:22

标签: jsp struts2

我有以下标记,需要将其重定向到以下地址localhost/signup

如果我在localhost/users/profile/view这样的深层地址,请点击此链接进入  localhost/users/profile/signup

如何强制它从任何深度的任何地址重定向到localhost/signup而不将localhost添加到其地址的开头?那可能吗?

   <a href="<s:url action="../signup"/>">Sign Up</a> 

2 个答案:

答案 0 :(得分:3)

我首选的方法是永远不会硬编码斜杠前缀(/signup)或相对(../signup),而是使用<c:set>对您的上下文根路径进行软编码:

<c:set var="root" value="${pageContext.request.contextPath}"/>

并将其用作任何内部网址的前缀

<a href="${root}/signup"/>Sign Up</a>

因此,即使深度发生变化,也可以保证引用正确的上下文路径

Host/Context Path: http://localhost/blah                 Link: http://localhost/blah/signup
Host/Context Path: http://localhost/mycoolco/secret/blah Link: http://localhost/mycoolco/secret/blah/signup

答案 1 :(得分:1)

如何尝试:

<a href="<s:url action="~/signup"/>">Sign Up</a>

上面似乎在ASP.NET中工作,我相信它也应该在JSP中工作!!

简单的说,当您放置../SomeMethod时,服务器会在单击链接的同一目录中查找SomeMethod