通过超链接将多个大型数组从Servlet传递到另一个Servlet

时间:2012-07-18 16:56:55

标签: java jsp servlets parameters

我正在制作一个显示大量数据的网页。最初,用户在jsp中输入表单,其中包括上传文件和选中复选框的选项。当用户点击提交时,它会转到处理表单信息的servlet。处理信息,结果创建了几个大型字符串数组。然后我重定向到显示页面,传递参数如下:

request.setAttribute("blah", array);
request.getRequestDispatcher(page).forward(request,response);

在显示页面上,我希望能够为用户提供选择他/她想要查看的页面的选项。为此,我在页面顶部创建了一个链接,该链接将页码作为参数传递:

<a href="DisplayPage?Page=x">Page x</a>

(DisplayPage是显示数据的servlet,因此链接指向不同的参数)

问题是,为了再次显示数据,必须将大型数组传递回DisplayPage。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

也可以在链接中将它们作为多值请求参数传递,

<a href="DisplayPage?Page=x&blah=value1&blah=value2&blah=value3">Page x</a>
String[] blah = request.getParameterValues("blah");

或将其存储在会话中,如果需要,您还可以将唯一ID标识为请求参数。

String id = UUID.randomUUID().toString();
request.getSession().setAttribute(id, array);
request.setAttribute("id", id);
<a href="DisplayPage?Page=x&blah=${id}">Page x</a>
Object blah = request.getSession().getAttribute(request.getParameter("blah"));