0

与えられた:

私は、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実装。

4

0 に答える 0