问题 JSP - scriptlet有什么问题,而不是使用什么[复制]


这个问题在这里已有答案:


6283
2017-07-12 23:17


起源

JSP可以视为已弃用。如果您可以选择,请选择不需要编译的轻量级解决方案,并将逻辑和布局更好地分离。 - Matt


答案:


当然,这是我个人的意见。我说scriptlet是:

  1. 1998年需要消失的老式技术;对微软ASP的失败回应。
  2. 丑陋
  3. 难以阅读
  4. 难以维持
  5. 不鼓励重用和封装
  6. 鼓励在页面中加入复杂的逻辑

用什么代替?

  1. 世界已朝着HTML5,CSS3,JavaScript,jQuery,Bootstrap和与REST Web服务交谈的Web技术的方向发展。这是一个很好的方向。
  2. 如果必须坚持使用JSP,请从JSP标准模板库开始。保持HTML页面看起来像HTML - 它将使UI开发人员更容易维护它们。
  3. 尝试更现代的模板解决方案,如Thymeleaf,从服务器端生成HTML。

7
2017-07-12 23:22



我同意你说的很多,但这是一个可怕的答案。 “HTML5”不是“我如何在服务器上创建动态生成的网页?”的答案。答案就像“JSTL或Thymeleaf”。也许下次会带领。此外,问题的一部分是“为什么不使用scriptlets”,你没有解决。 - Christopher Schultz
可怕?这与“我同意你所说的相当多”并不一致。有两个部分:(1)scriptlet有什么问题,(2)我还使用了什么?你没有看过第二个清单中的第3项吗? - duffymo


这是我对此的看法。

  1. 尽管使用Java代码非常简单,但Scriplets很难阅读,并且它使代码看起来有些混乱。
  2. 和duffymo一样,大多数人都会推荐,在JSP方面,使用JSTL是Scriplets的一个更好的替代品。

曾经有一段时间我会坚持使用Scriplets在JSP中使用一些Java代码,但学习JSTL非常方便。它使代码更容易阅读,因为它与HTML标记很好地融合在一起。


5
2017-07-13 01:35



我希望我现在可以选择两个答案 - vikarjramun
没关系,duffymo实际上为JSP提供了一些不错的选择。如果你想在JSP中保持HTML代码的清洁,那就修改一下CSS,jQuery和JS。 - Noir Antares
拥有'227k'声望的用户获得+15分并不重要。对于信誉为“1”的用户,+ 15分意味着很多,并鼓励他们。至少,如果有帮助的话,请给出这个答案。 - rupinderjeet


它不是一个干净的设计,将代码与视图逻辑混合在一起。 这就是JSP不是理想的解决方案。

您应该使用Velocity / Freemarker之类的模板,而不允许混合使用Java代码。

这样做的另一个好处是非Java UI专家设计人员可以在不必学习Java的情况下为UI做出贡献。


3
2017-07-12 23:47



一些事情:我的JSP代码很容易让非Java设计者理解 - 它基本上是带有值的HTML;我只需要Java代码来连接数据库和读/写对象。如果不是通过像JSP这样的动态服务器端语言,我还能如何实现这一目标? - vikarjramun
@vikarjramun只是使用jsf - Mr D
@MrD实际上,这正是我想要的。但是,我从duffymo和amitmah的答案中得到了一些很好的建议。我认为duffymo的答案帮助最好,我会接受他的。 - vikarjramun
@vikarjramun他的回答与我没有冲突,jsf可以运行在html5,js,bootstrap等之上。 - Mr D
当你提到JSP中需要数据库连接代码时,看起来你并不理解分离显示逻辑和代码。数据库可以改变,最终你将改变JSP。 - amitmah