c:import または c:url を使用して、ページ (adserver) のコンテンツを取得したいと考えています。さらに、タイムアウトを指定する必要があります。呼び出しがタイムアウトするか、ページにアクセスできない場合は、デフォルトのテキストを値として返す必要があります。
これを行うためのjstlタグライブラリはありますか? それとも、自分で作成する必要がありますか?
c:import または c:url を使用して、ページ (adserver) のコンテンツを取得したいと考えています。さらに、タイムアウトを指定する必要があります。呼び出しがタイムアウトするか、ページにアクセスできない場合は、デフォルトのテキストを値として返す必要があります。
これを行うためのjstlタグライブラリはありますか? それとも、自分で作成する必要がありますか?
すこし。
c:import はサーバーへのソケットを開き、接続が何をするかを返すだけです(あなたの場合は生のhtml)。サーバーが 404 のページを返した場合はそれが表示され、500 の場合はそのエラー ページが表示されます。
これはソケットであるため、すべてのソケット エラーにアクセスできます。タイムアウトの場合:
java.net.ConnectException: Operation timed out
未知のホスト:
java.net.UnknownHostException: www.googasdasdasdassdle.com
これは、インポートを catch ステートメントでラップして、ページ上ですぐに処理できることを意味します。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:catch var="socketExceptionVariable">
<c:import url="www.googasdasdasdassdle.com"/>
</c:catch>
<c:if test="${socketExceptionVariable != null}">
<p>There was an error here</p>
<c:out value="${socketExceptionVariable}"/>
</c:if>
インポートが行われた場合は意図したとおりに機能しますが、何か (何か) がうまくいかない場合は、エラー ページが表示されます。
独自のインポート タグを作成することもできますが、それはこれをカプセル化しますが、このソリューションに比べてかなりの作業が必要です。