JSP - Scriptlet有什么问题,以及使用什么

vik*_*mun 13 html java jsp tomcat

我多年前在一本书中读过JSP,最近决定自己学习.我现在知道如何使用JSP scriptlet,表达式和声明

    <%! String str = "Hello World" %>
    <%= str.length() %>
    <% str=str.substring(0,5) %>
Run Code Online (Sandbox Code Playgroud)

但我已经在许多地方(在这个网站和其他地方)阅读过我不应该使用scriptlet.这是一个这样的问题:Eclipse在JSP中使用Classes

我的问题是:

  1. scriptlets有什么问题?
  2. 我该用什么呢?

在此先感谢您的帮助!

编辑:

我不使用Servlets,而是将我的JSP代码嵌入到HTML页面中.不了解Java知识的UI设计人员可以轻松修改我的页面.基本上我使用JSP作为前端,用于从数据库进行显示并对其进行更新,例如当用户下订单时.

duf*_*ymo 9

当然,这是我个人的看法.我说scriptlet是:

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

用什么代替?

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


小智 8

这是我对此的看法.

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

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

  • 对于具有“227k”声誉的用户来说,+15 分并不重要。对于具有“1”声誉的用户来说,+15 分意义重大并鼓励他们。至少,如果有帮助,请对这个答案点赞。 (3认同)

ami*_*mah 5

将代码与视图逻辑混合在一起并不是一个干净的设计。这就是为什么JSP不是理想的解决方案的原因。

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

这样做的另一个好处是,非Java UI专家设计人员无需学习Java就可以为UI做出贡献。

  • 当您提到需要在JSP中使用数据库连接性代码时,您似乎不了解将显示逻辑和代码分开。数据库可以更改,您最终将不得不更改JSP。 (4认同)