sNAil_0022
2015-03-09 15:29
为什么testScope.jsp中request.getAttribute("myUsers")得到的是null呢?在testScope.jsp中不是有<jsp:useBean id="myUsers" class="com.po.Users" scope="page">吗?应该创建了Users的实例对象myUsers,所以应该得到的跳转页面应该是显示用户名:null 密码:null?求解答
这么说吧,作用域范围为page的本质对象是pageContext,而作用范围为request的本质对象为request。
两个对象在代码级别是分别创建了一个HashMap<String, Object> attributes,当调用getAttribute时,实际上调用的是不同的attributes,所以request作用范围的内容与page是无关的。
但是,在页面转发时,转发的是request+response,没有page,所以在转发后的页面中原本的page作用范围的内容是不存在的。只会新建一些
个人理解是在testScope.jsp中的request对象是dologin的request对象,所以当request.getAttribute("myUsers")应该返回testScope.jsp中的Users实例对象myUsers,但是其中设置的作用域范围是page,即在当前页面实例对象有效,所以得到了null。是这样理解吗?
JAVA遇见HTML——JSP篇
248279 学习 · 3071 问题
相似问题