gpt4 book ai didi

jsp - jsp中 session 管理的java bean和session的区别

转载 作者:行者123 更新时间:2023-12-04 17:07:03 24 4
gpt4 key购买 nike

在 jsp 中管理用户 session 时,我们有时通过使用 session.setAttribute() 设置变量来使用 session ,另一方面我们可以创建 java bean 对象(将范围设置为 session )来存储用户信息并可以在另一个上检索它页。谁能告诉我这两者有什么区别?

最佳答案

有许多不同之处。

首先,当您将某物存储为属性时,它存储为一个对象,因此当您检索它时必须将其转换为实际的样子,bean 始终是它的类。

其次,当您使用一个bean 时,您不必担心它是否已被创建。 jsp:useBean 标签会访问已经创建的bean,如果没有就创建它,所以如果你想调用一个函数或者使用一个get 方法,当你使用一个bean 时保证它存在。如果您计划将其存储在 session 变量中,但在存储之前尝试访问它,它将返回 null 并且调用函数会导致一些问题。

通常您使用 session 变量来传递信息,而您使用 bean 来传递具有您可能想要调用的函数的类。

因此,如果您打算传递相对简单的数据(例如字符串),将它扔到 session 变量中没有任何问题。 null 作为一个值是有意义的,只是在比较时要小心(例如,做 string_var.equals((String)session.getAttribute("attribute_name")) 而不是 ((String)session.getAttribute("attribute_name")).equals(string_var ) 因为第二个可能是未定义的 null.equals())。

如果你是在MVC框架下编程,那么(据我了解),你一般使用bean写入session(或其他,视情况而定)变量,然后你的JSP页面会从 session 变量。这(除其他事项外)使网页刷新安全(意思是,如果您点击刷新按钮,它将再次从 session 变量中获取信息,而不是再次运行所有代码并从 session 变量中重新加载信息)这当您附加信息、递增或递减时,这是一个大问题。

不可否认,我对 JSP 比较陌生,但这是我对情况的理解。

关于jsp - jsp中 session 管理的java bean和session的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com