楼主这个问题我看得不甚明白啊。。
不过,我理解的是你想问EL表达式的变量是从哪里取得的是吧?
这样说:EL表达式的变量是通过pageContext/request/session/application这些JSP/Servlet的内置对象的一个方法设置的。这个方法叫setAttribute()。
用request内置对象举例:
jsp1.jsp
<%
request.setAttribute("test",test); //设置属性test的值
%>
jsp2.jsp
<%
request.getAttribute(test); //第一种:使用getAttribute取得属性的值
${test} //第二种:EL表达式取得属性的值
%>
至于Session是比request保值范围更大的对象,服务器端跳转和客户端跳转都不会丢失属性的值。而request对象设置的值,若是遇到了客户端跳转(response.sendRedirect(“这个方法单词不记得怎么拼了”)),则属性值就失效了。
大全:
本页面有效
pageContext.setAttribute()
pageContext.getAttribute()
服务器端跳转有效,客户端跳转无效
request.setAttribute()
request.getAttribute()
服务器端和客户端跳转都有效
session.setAttribute()
session.getAttribute()
客户端跳转有效,重启服务器后无效
application.setAttribute()
application.getAttribute()
方法:
setAttribute() 设置属性
getAttribute() 获取设置的属性