jsp:EL之$(pageContext.request.contextPath)和$(requestScope.contextPath)区别

来源:互联网 发布:面试问java断点上传 编辑:程序博客网 时间:2024/04/28 16:34

i.首先声明,EL之所以出现,目的:为了使jsp写起来更加简单。

ii.下面说说$(pageContext.request.contextPath)和$(requestScope.contextPath)区别:

首先陈述下我遇到的问题,众所周知,在项目中使用$(pageContext.request.contextPath)可以获取到当前部署项目的应用名称,后来我突发奇想,使用$(requestScope.contextPath)一样也可以获取到呀。


可是结果不然,获取不到。。。其实这个问题纠结了我有一段时间。。。感谢同事lumx后来的提醒。


其实从刚开始我弄混了一个概念,认为使用$(pageContext.request}获取到的对象和$(requestScope}获取到的对象是同一个对象,显然不是。


首先特别自我提醒:jsp的内置对象和EL的隐身对象不是同一个东西,要区分开来。


$(pageContext.request}获取的是HttpServletRequest对象,说白了是jsp内置对象之一request,而$(requestScope}获取到的仅仅是当前请求作用域内的对象(说的还是不明白,反正不是同一个东西就是了,再进一步陈述一下吧(OS:好纠结呀),requestScope是EL的内置对象之一,只有放了才能取,否则是取不到的)。

在EL中取值的时候,使用万能的pageContext,因为他包含了其他属性。个人理解:它是EL和jsp内置对象之间沟通的桥梁。


脚本之家中有篇文章讲的还可以:http://www.jb51.net/article/20042.htm

CSDN中关于jsp九大内置对象的说明:http://blog.csdn.net/yangbobo1992/article/details/8174489

1 0
原创粉丝点击