我的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中)。这是不正确的 - 为什么请求范围在会话范围请求成功时失败?
答案 0 :(得分:1)
这是不正确的 - 为什么请求范围会失败 会话范围请求成功吗?
不,你不对。
请求对象仅适用于当前请求,request
和session
个对象之间无通信
要在请求中提供对象,您应该使用
在发送到您的视图之前 request.setAttribute("OBJname" , Object)