有没有一种方法可以将Java对象放入来自JSP的POST请求中?

有没有一种方法可以将Java对象放入来自JSP的POST请求中?,java,jsp,post,Java,Jsp,Post,我有一个呈现的JSP页面,并调用Web服务来加载一些初始数据。用户填写一些表单信息,然后将其提交给服务器,服务器可能会返回相同的JSP页面进行进一步处理(以及另一次提交)。初始数据永远不会改变,但它是一个对象表示,因此我试图找出如何在每篇文章之间维护它,这样我就不会总是调用服务。会话变量是实现这一点的唯一方法吗?感谢您的帮助。谢谢 将其序列化 我会在登录时将其放入会话变量中—在客户端存储数据本质上是不安全的。如果您没有使会话过期,而是创建会话以便将其序列化到存储中,并使用支持该功能的web容器,

我有一个呈现的JSP页面,并调用Web服务来加载一些初始数据。用户填写一些表单信息,然后将其提交给服务器,服务器可能会返回相同的JSP页面进行进一步处理(以及另一次提交)。初始数据永远不会改变,但它是一个对象表示,因此我试图找出如何在每篇文章之间维护它,这样我就不会总是调用服务。会话变量是实现这一点的唯一方法吗?感谢您的帮助。谢谢

将其序列化

我会在登录时将其放入会话变量中—在客户端存储数据本质上是不安全的。如果您没有使会话过期,而是创建会话以便将其序列化到存储中,并使用支持该功能的web容器,则永远不必重新加载会话


如果不感兴趣,那么在web服务周围创建一个缓存,以便将结果保存在那里,并在一些不活动后过期。不过,这需要主动清理。

会话才是解决方法。你真的需要每次都通过电线发送吗?考虑是否有真正的目的,但使用会话并将其存储在服务器端。

根据web服务的设置方式,您可能会在您和它之间插入一个缓存层。例如,如果它是一个REST web服务(或者至少是一个允许缓存GET响应的服务),那么您可以继续从中获取内容,但几乎所有请求都将从本地HTTP缓存中得到响应

如果您决定序列化,您可以使用XML、JSON或其他方法,例如Google的。使用高度自动化的序列化库,您甚至可以自动化JavaBeans的映射

会话变量是实现这一点的唯一方法吗

不是唯一的,但可能是最好的。我不认为来回发送对象有什么意义,因为客户端不需要is。此外,它可能被篡改

另一种选择是(因此它是文本/纯文本)并作为隐藏值存储

但是,同样,应该放在服务器中的东西应该留在服务器中

从博客条目中吸取的教训:

如果不需要发送给客户端,那么就不要发送发送给客户的秘密可能会被篡改,并以各种方式泄露,这些方式不容易看到甚至无法预测。在我们的例子中,我们可以将登录状态存储在服务器上,并避免将任何登录状态传输到客户端


有什么特别的原因让你不愿意在会议上坚持下去吗?我可能在这个问题上遇到了太多的问题。除了不知道这是否是最好的方法外,我没有任何理由不这样做。