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

时间:2014-09-28 23:12:05

标签: java jsp servlets

我的jsp页面可以使用以下内容访问bean:

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

如果我将范围更改为&#34;请求&#34; tomcat抛出异常:javax.servlet.ServletException:java.lang.InstantiationException:在范围内找不到bean myBean

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

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

我认为上面的转发将导致MyJsp.jsp继承原始servlet的请求对象,因此myBean应该可用(创建它然后使用session.setAttribute存储(&#34; myBean&#34; ,myBean)在原始的servlet中)。这是不正确的 - 为什么请求范围在会话范围请求成功时失败?

1 个答案:

答案 0 :(得分:1)

  

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

不,你不对。

请求对象仅适用于当前请求,requestsession个对象之间无通信

要在请求中提供对象,您应该使用

在发送到您的视图之前

request.setAttribute("OBJname" , Object)