自己做家庭作业,自己解决问题。(自己的事情,自己做)
Request范围的变量是给谁用的?
假设服务器上有两个页面(AB页面):
当客户端请求A页面时,下发给客户端A页面;
情况一:
A页面上的<a>标签手动点击链接跳转到服务器的B页面时,Request变量无法在B页面获得;
思路追踪:
请求问题,A问B,B会解决问题吗,但是,B一看这个请求不是我内部人员的问题,B一概不接A的问题;紧接着,A问C,C会解决问题吗,同B一样,C也不会理A的。
情景再现:
就像高中,你在学校做作业,有一道题不会做。你随便找了一个B学校的老师,该老师一看你不是人家学校的学生,就不想浪费时间给你讲题了,但是为人师表,不好意思拒绝你,就让你把问题留下,等回头给你答案;紧接着,你随便又找了一个C学校的老师,同样B学校老师一样,人家也不想拒绝你,让你把问题留下,回头给你答案。
情况二:
A页面上的<jsp:forward>标签自动跳转到服务器的B页面后,B页面自动将结果返回到A页面,故访问链接地址显示A页面。
思路追踪:
请求问题,A问B,B会解决问题吗,如果会,就将结果返回给A;倘若A的问题没有在B页面解决,可能B页面会传递给另外的C页面,C页面能解决问题,就将结果单独返回给A页面。
情景再现:
就像高中时候,你做课后作业,有一道题不会做。先问你班里的数学老师,他不会做;就给了另外一个班的数学老师,然后这个老师会做,就将结果讲给你;这其中,有一个老师会做,必定是单独将结果返回给你。情况三:
就是前两者的结合,在此不用赘述,你也会明白,并且会用。
总结Request:
当客户端(一问题)与服务器的单个页面询问(请求)期间,变量不存在;当客户端(一问题)与服务器上,多个页面之间询问(请求)期间,变量存在;
最后,当客户端与服务器请求消失,变量消失。
Session范围的变量是给谁用的?
假设服务器上有两个页面(AB页面):
当客户端请求A页面时,下发给客户端A页面;
情况一:
A页面上的<a>标签手动点击链接跳转到服务器的B页面时,Session变量无法在A页面获得,却在B页面中可以获得;
思路追踪:
请求问题,A问B,B会解决问题吗,但是,B一看这个请求很有价值,然后直接说出了答案,并告诉了其他能解决A问题的页面;紧接着,A问C,C会解决问题吗,同C一样,C也直接说出了答案。
情景再现:
高中,老师授课,睡觉两人,一人前三名,一人后三名。老师看到学习好的人,居然不听课,气就不打一处来,学习超好的B同学,你来回答一下,集合有几种运算,B同学起来,答对,坐下并告诉了好哥们;老师又问,学习超烂的C同学,你来回答一下,集合有几种运算,C同学起立,答对。(B和C之间存在一个简短会话的存在)
情况二,与Request相同
情况三,与request相同
总结session:
当客户端(一问题)与服务器的单个页面会话期间(一答案),变量存在;当客户端(一问题)与服务器的多个页面会话期间(多个统一答案),变量存在;
最后,当客户端与服务器会话消失,变量消失。
Application范围的变量是给谁用的?
总结application:
服务器重启,变量消失;