当前位置: 首页 > 知识库问答 >
问题:

MVC-基于请求的数据共享失败,基于会话的数据共享成功

孟跃
2023-03-14

我的jsp页面可以通过以下方式访问bean:

<jsp:useBean id="myBean" 
   type="myPackage.beans.MyBean" 
   scope="session" />

如果我将作用域更改为“request”,tomcat会抛出一个异常:javax。servlet。ServletException:java。lang.InstanceException:在范围内找不到bean myBean

但我通过从servlet转发来访问jsp页面,如下所示:

RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/MyJsp.jsp"); dispatcher.forward(request, response);

我认为上述转发会导致MyJsp.jsp继承原始servlet的请求对象,因此myBean应该是可用的(它是使用session.set属性(“myBean”,myBean)在原始servlet中创建并存储的)。这是不正确的-为什么请求范围失败而会话范围请求成功?

共有1个答案

汪弘毅
2023-03-14

这不正确吗?为什么会话范围请求成功时请求范围失败?

不,你错了。

请求对象将仅对当前请求可用,并且请求会话对象之间没有通信

要使您的对象在请求中可用,您应该使用

request.set属性("OBJname", Object)在分派到你的视图之前

 类似资料:
  • 本章介绍了权限网站以及如何进行分析云授权,需要授权的用户请仔细阅读账户间授权的限制条件,如遇到无法授权的情况,可发送邮件至analytics@baidu.com,会有专人协助您完成授权操作。 分析云下载是指导出分析云相关报告的分析结果,导出次数上限与分析云版本相关,如需提升上限,也可通过邮件联系我们。 数据共享包含以下内容: 报告授权 分析云下载

  • 实际上,我正在尝试在2个不同的插件项目中的2个portlet之间共享数据 以下是我分享数据的步骤: 步骤1:创建名为Senderproj的liferay插件项目,并在Senderport下创建一个portlet,然后在doView方法中编写以下代码 Step2:创建名为Receiverproj的增殖插件项目并创建一个名为Receiverport的portlet,然后在doView方法中编写下面的代

  • 我使用Spring Security和spring MVC。Am在未经身份验证的请求中保留会话中的数据属性(安全性:spring security中无)。我尝试打印会话id。之后,我登录到应用程序。在此创建新会话。我尝试打印会话id。两者都不同。但是当我访问会话属性中的数据时。它是存在的。在我的理解中,由于新会话是在登录后创建的,数据应该丢失,还是spring正在共享会话属性?下面是代码。 在sp

  • 主要内容:1. 使用 Servlet API 向 request 域对象中共享数据,2. 使用 ModelAndView 向 request 域对象中共享数据,3. 使用 Model 向 request 域对象中共享数据,4. 使用 Map 向 request 域对象中共享数据,5. 使用 ModelMap 向 request 对象中共享数据,6. 使用 Servlet API 向 session 域对象中共享数据,7. 使用 Servlet API 向 application 域对象中共享数据

  • 我已经将NSS 3.12.4配置为在FIPS模式下使用SunPKCS11提供程序与我的java程序一起工作,一切都很好。现在我按照https://blogs.oracle.com/meena/entry/what_s_new_in_nss1中提到的步骤使NSS作为共享数据库工作。 当我在共享数据库模式下配置NSS时,secmod.db文件会按预期替换为pkcs11.txt。但是现在SunPKCS1

  • 问题内容: 我一直在整理应该是Web应用程序的一个非常常见的用例。我有一个使用REST信息库,JPA等的Spring-Boot应用程序。问题是我有两个数据源: 包含用户身份验证信息的嵌入式H2数据源 MySQL数据源,用于特定于已验证用户的实际数据 因为第二个数据源是特定于已验证用户的,所以我尝试使用AbstractRoutingDataSource根据验证后的主要用户路由到正确的数据源。 绝对让