Jspでいくつかのページを設計する必要があります。最初のページで送信ボタンをクリックすると、ページは自動的に2番目のページにリダイレクトされます。
簡単な例や、これを実装する方法を示すチュートリアルへのリンクを手伝ってもらえますか?
<%
String redirectURL = "http://whatever.com/myJSPFile.jsp";
response.sendRedirect(redirectURL);
%>
この回答 には、jstlリダイレクトタグのみを使用した標準ソリューションも含まれています。
<c:redirect url="/home.html"/>
Hello there:リンクのリダイレクト先をさらに制御する必要がある場合は、このソリューションを使用できます。
すなわち。ユーザーがCHECKOUTリンクをクリックしているが、ユーザーをcheckoutに送信したい場合登録されている場合は(ログイン)ページ、または登録されていない場合は登録ページ。
JSTL core LIKE:を使用できます
<!--include the library-->
<%@ taglib prefix="core" uri="http://Java.Sun.com/jsp/jstl/core" %>
<%--create a var to store link--%>
<core:set var="linkToRedirect">
<%--test the condition you need--%>
<core:choose>
<core:when test="${USER IS REGISTER}">
checkout.jsp
</core:when>
<core:otherwise>
registration.jsp
</core:otherwise>
</core:choose>
</core:set>
EXPLAINING:と同じ...
//pseudo code
if(condition == true)
set linkToRedirect = checkout.jsp
else
set linkToRedirect = registration.jsp
次に:単純なHTMLで...
<a href="your.domain.com/${linkToRedirect}">CHECKOUT</a>
return;
ステートメントで@oopbaseの答えを拡張します。
ログイン情報をsessionに保存する従来の認証システムのユースケースを考えてみましょう。各ページで、アクティブなセッションを確認します
/* Some Import Statements here. */
if(null == session || !session.getAttribute("is_login").equals("1")) {
response.sendRedirect("http://domain.com/login");
}
// ....
session.getAttribute("user_id");
// ....
/* Some More JSP+Java+HTML code here */
しかし、それは一見したところ見た目は問題ありません。問題が1つあります。制限時間のためにサーバーのセッションが期限切れになり、ユーザーがページにアクセスしようとすると、コードをtry..catch
ブロックに記述していないか、_if(null != session.getAttribute("attr_name"))
を毎回処理していない場合、エラーが発生する可能性があります。
return;
ステートメントを追加することにより、Iは実行を停止し、ページを特定の場所にリダイレクトしました。
if(null == session || !session.getAttribute("is_login").equals("1")) {
response.sendRedirect("http://domain.com/login");
return;
}
リダイレクトの使用は、要件に応じて異なる場合があることに注意してください。今日、人々はそのような認証システムを使用していません。 (最新のアプローチ- トークンベースの認証 )これは、リダイレクトの場所と方法を理解するための単なる簡単な例です。