我正在制作一个显示大量数据的网页。最初,用户在 jsp 中输入一个表单,其中包括上传文件和选中选项框。当用户点击提交时,它会转到处理表单信息的 servlet。处理信息后,会创建几个大型字符串数组。然后我重定向到显示页面,传递参数如下:
request.setAttribute("blah", array);
request.getRequestDispatcher(page).forward(request,response);
在显示页面上,我希望能够为用户提供选择他/她想要查看的页面的选项。为此,我在页面顶部创建了链接,将页码作为参数传递:
<a href="DisplayPage?Page=x">Page x</a>
(DisplayPage 是显示数据的 servlet,因此链接使用不同的参数指向其自身)
问题是,为了再次显示数据,必须将大数组传回 DisplayPage。我怎样才能实现这个目标?
最佳答案
也可以将它们作为链接中的多值请求参数传递,
<a href="DisplayPage?Page=x&blah=value1&blah=value2&blah=value3">Page x</a>
String[] blah = request.getParameterValues("blah");
或者将其存储在 session 中,如有必要,可以通过唯一 ID 进行标识,该 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"));
关于java - 通过超链接将多个大型数组从 Servlet 传递到另一个 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11546541/