使用scriptlet的缺点?

时间:2014-02-24 09:15:34

标签: java jsp jstl scriptlet

我想知道使用scriplet的全部内容。为什么在编写JSP时不建议使用它。每次我询问使用scriptlet进行编码时,他们都指示我不要使用它而是使用JSTL。

2 个答案:

答案 0 :(得分:1)

网上有几篇关于scrptlets和JSTL的文章(我猜你先搜索过一些),其中大部分会告诉你同样的文章

  • JSTL更易于测试,维护和阅读
  • JSTL可以重复使用
  • JSTL可以将业务逻辑与表示分开
  • JSTL可以在不破坏整个页面的情况下失败

另一方面

  • JSTL比scriptlet更难开发(至少有不同的学习曲线)
  • 要在生产中修复scriptlet,只需更改JSP(有时错误更明显)

答案 1 :(得分:0)

  • 您似乎只专注于演示和流量控制 使用if,for和switch语句的一部分scriptlet out.print()的东西。

  • 您似乎将Scriptlet 1:1与JSTL进行比较。这是错的。我曾是 不是只讨论流量控制部分(事实上确实如此) 取而代之的是JSTL),但是关于在JSP文件中编写原始Java代码 一般

  • 即。收集请求参数,验证和转换值, 与数据库和其他Java类/方法等交互。所有 您通常(间接)在Servlet或过滤器中执行的操作。

您不应该在JSP中使用scriptlet代码。我推荐100%JSTL和零写代码。

  1. JSP应该是纯粹的表示。这是隐藏的好处 仅使用JSTL编写JSP,因为它们可以获得所有动态 其他数据。让服务层具有业务逻辑和 确定JSP需要什么数据。

  2. 这也回答了您的单元测试问题。你不应该这样做 单元测试JSP;那些将是类似Selenium的UI测试。如果逻辑 在服务层,很明显你如何测试它。

  3. 不应继承JSP。你当然可以撰写它们 一起使用像SiteMesh这样的东西,但继承没有任何作用 在你的JSP中。一旦他们从Servlet继承,链就应该是 结束。

  4. 此外,这是一个错误的选择。两者都不应该要求重用, 继承或单元测试。但这并不意味着没有 明确的赢家:这是JSTL。没有人应该在JSP中使用scriptlet, 除了非常罕见的单线。 Scriptlet正在乞求麻烦。

  5. 这些天我更喜欢Velocity作为我的网页UI模板解决方案 Java,远不止JSP。只是我的意见。