2
如何將數組從一個servlet傳遞到另一個servlet?將數組從一個servlet傳遞到另一個servlet
如何將數組從一個servlet傳遞到另一個servlet?將數組從一個servlet傳遞到另一個servlet
如果您將當前的請求傳遞給另一個servlet,那麼只需將它設置爲請求屬性即可。
request.setAttribute("array", array);
request.getRequestDispatcher("/servleturl").include(request, response);
它會在另一個servlet可用如下:
Object[] array = (Object[]) request.getAttribute("array");
或者,如果你一槍一全新請求另一個servlet,那麼就設置爲請求參數。
StringBuilder queryString = new StringBuilder();
for (Object item : array) {
queryString.append("array=").append(URLEncoder.encode(item, "UTF-8")).append("&");
}
response.sendRedirect("/servleturl?" + queryString);
它會在另一個servlet可用如下:
String[] array = request.getParameterValues("array");
或者,如果數據太大作爲請求參數傳遞(安全最大長度爲255個ASCII字符),然後將它存儲在會話中,並傳遞一些唯一鍵作爲參數。
String arrayID = UUID.randomUUID().toString();
request.getSession().setAttribute(arrayID, array);
response.sendRedirect("/servleturl?arrayID=" + arrayID);
它會在另一個servlet可用如下:
String arrayID = request.getParameter("arrayID");
Object[] array = (Object[]) request.getSession().getAttribute(arrayID);
request.getSession().removeAttribute(arrayID);
您的解決方案對我來說是最合適的。我使用了最後一個選項。非常感謝 – 2013-01-21 11:11:12
只是有太多的信息,在你的問題遺漏。 jball的問題,servlet是否是同一個web應用的一部分,這個數組是否是特定於請求的數據,還是僅僅是一些全局數據等等等等...... – vanza 2010-11-19 03:35:13
servlets是同一個web應用程序的一部分,數組是具有值的普通數組在servlet 1中進行一些計算,並且必須傳遞給servlet 2 – Compuser7 2010-11-19 03:51:54