我已经开始阅读JSP了。我遇到了JSP隐式对象,例如session
,application
等等。在读完EL表达式后,我发现EL表达式也有隐含对象。
我的问题是这些隐含对象之间有什么区别?
即使它们在语义上是相同的,为什么它们会创建EL并使事情变得有点困难?
如果我错了,请纠正我
答案 0 :(得分:4)
您获得的对象没有任何区别,只是在每种技术中访问相同对象的方式不同。例如,JSP中的request
将为您提供与EL中${pageContext.request}
相同的对象。
对于EL,为方便起见,可以使用其他隐式对象,例如param
或requestScope
。你仍然可以获得相同的数据,但语法会很笨拙。
您可能希望将此与JSP中的隐式对象与Servlet中的“缺少”隐式对象进行比较。 JSP隐式对象与您可以在Servlet中保留的对象没有区别,只是隐式对象使得语法更清晰。例如,隐式session
对象与通过HttpServletRequest#getSession()
得到的对象相同。一个例外是pageContext
,它在Servlet中没有等价物。