业务层的jsp

Har*_*ish 1 jsp

为什么我们不应该将JSP用于业务层?

是性能吗?或者这只是一个好习惯?当然可重用性是其中一个原因.除此之外,为什么我们应该将jsp用于业务层呢?

Bal*_*usC 8

几个原因:

  1. 可重用性:您无法重用scriptlet.
  2. 可替换性:您不能使scriptlet抽象化.
  3. OO-ability:你不能利用继承/组合.
  4. 可调试性:如果scriptlet中途抛出异常,你得到的只是一个空白页面.
  5. 可测试性:scriptlet不是可单元测试的.
  6. 可维护性:每个saldo需要更多的时间来维持混合/混乱的代码逻辑.

还有更多,但它归结为scriptlet是一种不好的做法.

您可以使用JSTLEL在表示层执行相当多的操作.如果你发现它们中的任何一个都不可能并且你被迫获取scriptlet,那么代码逻辑最终属于真正的 Java类.你可以使用一个Servlet类来控制/预处理/后处理请求,你可以使用一个Filter类来过滤请求,你可以使用一个DAO类来做数据库交互,你可以使用一个Javabean类来存储/传输/访问数据,你可以使用一个Domain对于业务逻辑类,可以使用Utility类作为静态工具.

  • 值得一提的是,大约半年后,我发布了一个更详细的答案:http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files (2认同)