我不是一個jsp開發者,但我想對我的一些開源軟件中的jsp頁面做一個小調整。Java JSP獲取主機名(url),然後重定向,如果不是的話
所有我想要做的就是找出我用什麼網址去頁面,讓我們說https://old.example.com,如果我沒有的話,我想將用戶重定向到https://new.example.com,但我不希望得到重定向循環明顯...
如何將我去這個...
我不是一個jsp開發者,但我想對我的一些開源軟件中的jsp頁面做一個小調整。Java JSP獲取主機名(url),然後重定向,如果不是的話
所有我想要做的就是找出我用什麼網址去頁面,讓我們說https://old.example.com,如果我沒有的話,我想將用戶重定向到https://new.example.com,但我不希望得到重定向循環明顯...
如何將我去這個...
你可以嘗試這樣的事:
<%
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>
看起來更像是對工作控制器,而不是視圖。
編輯
但是,如果你真的想,你可以嘗試這樣的事情(假設你使用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>
這對我來說很好,但是jsp中的結構看起來像什麼......我有一個公共文件夾,但沒有真正的MVC建模文件夾...任何想法,我會找到這個控制器? –
理查德,其實很好,謝謝! – user1455836
Tobias,如果你只有公共的jsp頁面,那麼你可能需要添加像這樣的代碼或者像其他的答案一樣,你需要這種行爲的每個jsp頁面。 – user1455836