Model view controller 在jsp页面中从bean调用值的正确方法是什么?

Model view controller 在jsp页面中从bean调用值的正确方法是什么?,model-view-controller,jsp,jstl,javabeans,Model View Controller,Jsp,Jstl,Javabeans,我正在从事一个JavaMVC项目。目前我有一个login.jsp、profile.jsp、`checkloginservlet、User.javabean类和UserDAO类,这些bean和jsp以及所有其他的东西也要添加。 我现在在这里做的是,每当用户成功登录时,它就会被重定向到显示用户所有详细信息的配置文件页面。 我的问题是: 在整个会话中占主导地位的会话对象中,为特定的userID设置一个用户类型对象,并直接以${sessionScope.User.property}的形式检索所有值是否更

我正在从事一个JavaMVC项目。目前我有一个login.jsp、profile.jsp、`checkloginservlet、User.javabean类和UserDAO类,这些bean和jsp以及所有其他的东西也要添加。 我现在在这里做的是,每当用户成功登录时,它就会被重定向到显示用户所有详细信息的配置文件页面。 我的问题是:

在整个会话中占主导地位的会话对象中,为特定的userID设置一个用户类型对象,并直接以${sessionScope.User.property}的形式检索所有值是否更好

在整个会话中占主导地位的会话对象中只设置一个userID,并使用以下代码行检索所有页面中的值是否更好: ${user.property}

我希望你能明白我的问题。
请建议我。

第一条规则:避免使用Scriptlet。除了Scriptlet之外,没有其他解决方案,这表明存在设计问题。控制器应为视图准备模型。视图不应该直接调用DAO。这是控制员的责任

现在,将用户存储在会话中或在控制器的每次请求时加载它是一个性能和过时数据的问题

如果用户只包含在整个会话中不会更改或可能更改的数据,但仅来自此会话,允许在需要时刷新数据,则将其存储在会话中。这就是它的目标:存储具有会话范围的数据


如果可能有一些外部会话或进程修改用户的数据,并且您希望确保始终显示最新的数据,然后在每次请求时重新加载它。

如果在这种情况下我不使用UserDAO,那么为特定jsp页面获取用户对象的其他方法可能是什么?请提出设计问题……我没有说你不应该使用UserDAO。我说过不应该从JSP的视图调用它。它应该由控制器调用servlet,并且在分派到JSP之前,用户应该存储在会话或请求中。看见