Java JSP获取主机名(url),然后重定向,如果没有

时间:2013-08-31 22:16:59

标签: java jsp

我不是jsp开发人员,但我想在一些开源软件中对jsp页面做一个小调整。

我想要做的就是找出我以前访问该页面的网址,让我们说https://old.example.com,如果我这样做,那么我想将用户重定向到https://new.example.com,但是我不想明显进入重定向循环......

我该怎么做......

2 个答案:

答案 0 :(得分:5)

您可以尝试这样的事情:

<% 
    if(request.getRequestURL().toString().equals("https://old.example.com")){    
        String redirectURL = "https://new.example.com"; 
        response.sendRedirect(redirectURL);
    }
%>

如果您不喜欢JSP中的java代码(这是一种糟糕的编程习惯),您可以使用JSTL尝试这样的事情

<c:if test="${pageContext.request.requestURL == 'https://old.example.com'}">
    <jsp:forward page="https://new.example.com"/>
</c:if>

答案 1 :(得分:2)

看起来更像是控制器的工作,而不是视图。

被修改

但如果你真的想,你可以尝试这样的事情(假设你使用JSTL):

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:if test="${fn:contains(pageContext.request.requestURL, 'localhost')}">
   <c:redirect url="http://google.com"/>
</c:if>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <c:if test="${fn:contains(pageContext.request.requestURL, 'localhost')}"> <c:redirect url="http://google.com"/> </c:if>