我正在尝试在jsp中导入外部资源,所以我正在使用:
<c:import url="http://foo.co.uk/articles?id=${article.id}" />
是否可以将当前请求中收到的cookie传递给导入的资源?
答案 0 :(得分:2)
不,你不能。
您必须在servlet中执行此操作,例如使用new URL(..).openConnection()
。
答案 1 :(得分:1)
c:import标签无法将cookie传递给外部资源。您可以通过精确模拟c:import标记功能以及将cookie传递到导入资源的附加功能来解决此问题。
//使用java.net.URL自己处理绝对URL URL u =新网址(目标);
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();