如果要将当前请求传递给另一个servlet,则只需将其设置为请求属性.
request.setAttribute("array", array);
request.getRequestDispatcher("/servleturl").include(request, response);
Run Code Online (Sandbox Code Playgroud)
它将在另一个servlet中可用,如下所示:
Object[] array = (Object[]) request.getAttribute("array");
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在向另一个servlet发出一个全新的请求,那么只需将其设置为请求参数即可.
StringBuilder queryString = new StringBuilder();
for (Object item : array) {
queryString.append("array=").append(URLEncoder.encode(item, "UTF-8")).append("&");
}
response.sendRedirect("/servleturl?" + queryString);
Run Code Online (Sandbox Code Playgroud)
它将在另一个servlet中可用,如下所示:
String[] array = request.getParameterValues("array");
Run Code Online (Sandbox Code Playgroud)
或者,如果数据太大而无法作为请求参数传递(安全最大长度为255个ASCII字符),则只需将其存储在会话中并传递一些唯一键作为参数.
String arrayID = UUID.randomUUID().toString();
request.getSession().setAttribute(arrayID, array);
response.sendRedirect("/servleturl?arrayID=" + arrayID);
Run Code Online (Sandbox Code Playgroud)
它将在另一个servlet中可用,如下所示:
String arrayID = request.getParameter("arrayID");
Object[] array = (Object[]) request.getSession().getAttribute(arrayID);
request.getSession().removeAttribute(arrayID);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8780 次 |
| 最近记录: |