我正在学习JSP。我有个疑问。当我们在JSP中使用表达式时,为什么我们在JSP中需要out
隐式对象?
任何人都可以解释一下。感谢
答案 0 :(得分:3)
如果您需要使用这些变量在JSP中执行逻辑,则可以使用JSP上下文中的隐式对象(例如session
,request
和response
)。您可以查看用户是否有特定的会话变量,或者从他们的请求或服务器的响应中获取参数。
但是,通常没有必要 - 如果你在JSP中执行那种类型的逻辑,那就表明你的View正在做一些控制器应该做的事情。
答案 1 :(得分:1)
它只是为了方便和向后兼容。它自JSP诞生以来一直存在。如今(虽然,大约十年,当EL出生时),你不应该在现实世界中使用它,但 scriptlets 对于快速原型设计/演示/测试仍然有用。 / p>
另一方面,如果它被删除,编译的JSP servlet将在内部无法将已计算的EL表达式写入响应;)它已被声明(根据JSP规范使用变量名)编译JSP servlet类。这也是为什么它可以在 scriptlet 范围内访问的原因(它基本上作为编译的JSP servlet类的方法)。