在hidden vs session中保存编码的String

时间:2013-09-16 14:18:49

标签: html spring session java-ee

假设:

我有一个List<ComplexObjectThatContainsOtherObjectsAndEvenLists>,我想在页面/请求中保留这些数据。此对象非常大,最多包含1000个对象。

当前实施:

我目前正在做的是serializing这个复杂的对象在下面使用(我刚刚在SO中找到了这个代码,我感谢作者,我很遗憾,我很抱歉,对不起)

    public static String serialize(Object object) {
        ByteArrayOutputStream byteaOut = new ByteArrayOutputStream();
        GZIPOutputStream gzipOut = null;
        try {
            gzipOut = new GZIPOutputStream(new Base64OutputStream(byteaOut));
            gzipOut.write(new Gson().toJson(object).getBytes("UTF-8"));
        } catch(Exception e) {
            return null;
        } finally {
            if (gzipOut != null) try { gzipOut.close(); } catch (IOException logOrIgnore) {}
        }

        return new String(byteaOut.toByteArray());
    }

并将String输出<input type="hidden">隐藏在我的页面中,并在需要时将其传回我的控制器。该字符串的长度约为1300-2000个字符。

问题:

将此String保存在会话中更好吗? (见下文)

session.setAttribute("mySerializedString", mySerializedString);

你能否提供优点和缺点?

到目前为止我的利弊(我不确定):

我不确定但hidden实现我认为在页面呈现时会产生影响(因为它太长了)以及何时将其提交回控制器,尽管这不会给我带来麻烦如果我选择session实现,则取消设置会话变量。

0 个答案:

没有答案