私は、JSPで外部リソースをインポートしようとしているので、私が使用している:c:importを使用する場合、どのようにリソースにCookieを渡しますか?
<c:import url="http://foo.co.uk/articles?id=${article.id}" />
は、インポートされたリソースに現在のリクエストで受信したクッキーを渡すことが可能ですか?
私は、JSPで外部リソースをインポートしようとしているので、私が使用している:c:importを使用する場合、どのようにリソースにCookieを渡しますか?
<c:import url="http://foo.co.uk/articles?id=${article.id}" />
は、インポートされたリソースに現在のリクエストで受信したクッキーを渡すことが可能ですか?
いいえ、できません。
サーブレットでは、たとえばnew URL(..).openConnection()
を使用する必要があります。
c:importタグは外部リソースにCookieを渡すことができません。以下のようにインポートされたリソースにクッキーを渡す追加の機能を使って、c:importタグの機能を正確に嘲笑することで回避できます。
// java.net.URLを使用して絶対URLを処理します。 URL u =新しいURL(ターゲット)。
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
Cookie cookies [] = request.getCookies();
Cookie myCookie = null;
String WCSCookie="";
if (cookies != null)
{
System.out.println("Cookies List start------------");
for (int i = 0; i < cookies.length; i++)
{
myCookie = cookies[i];
System.out.println(myCookie.getName()+"="+myCookie.getValue());
WCSCookie = WCSCookie+";"+myCookie.getName()+"="+myCookie.getValue();
}
}
System.out.println("-------------------------");
System.out.println(WCSCookie);
System.out.println("-------------------------");
System.out.println("Cookies List end------------");
URLConnection uc = u.openConnection();
uc.setRequestProperty("Cookie", WCSCookie);
InputStream i = uc.getInputStream();