在jsp中,<% ... %>和<%! ... %>有什么区别?

17

我正在给一个页面添加一些功能,该页面拥有标题中提到的两个标签。我注意到我在<% ... %>中声明的变量不能在<%! ... %>中使用,反之亦然。这两者之间有什么区别,我如何声明可以在这两个标签中使用的变量?

1个回答

31

<% ... %> 用于在JSP的主要service()方法中嵌入一些Java代码,它是在页面渲染期间执行的。

<%! ... %> 用于定义页面流程之外的代码,并因此位于主要service()方法之外。通常,这用于定义实用程序方法,这些方法将从<% ... %>块内调用。

然而,这两种方法现在已经过时。JSP EL、JSTL和标签类是执行相同操作的首选方式。


我只能补充一点,在JEE6之后整个JSP已经被弃用了。JSF是一种主要的视图技术。 - foret
嗯,它真的被弃用了吗?我有所怀疑。 - Bozho
@bozho:我猜你指的是评论,而不是答案?@skaffman 我完全赞同脚本片段已经非常过时了,而@foret JSP可能会一直适用于需要操作框架的情况,因为组件框架太耗资源了。 - Sean Patrick Floyd
@Lotus:从JSP的角度来看,脚本片确实没有被正式弃用。然而,官方已经明确不建议使用它,应该仅用于快速原型设计。以下是来自Oracle JSP约定的引用:JSP脚本片 - 在可能的情况下,避免使用JSP脚本片,因为标签库提供了等效的功能。 - BalusC
@BalusC:神秘,不是吗?我认为这与“自行车棚效应”有关。 - skaffman
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接