我知道类似以下三行

<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>

是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?


当前回答

我的朋友,这些都不再使用了。我的建议是将视图(CSS、HTML、JavaScript等)与服务器分离。

在我的例子中,我使用Angular处理视图,并且使用REST服务从服务器获取所需的任何数据。

相信我,这将改变你的设计方式。

其他回答

在JSP中使用JSTL标记库。这将非常有效。

Wicket也是一种将Java与HTML完全分离的替代方案,因此设计师和程序员可以在彼此不了解的情况下一起工作并处理不同的代码集。

看看Wicket。

从技术上讲,JSP在运行时都转换为Servlet。

JSP最初创建的目的是按照MVC模式分离业务逻辑和设计逻辑。因此,JSP在运行时技术上都是Java代码。

但为了回答这个问题,标记库通常用于将逻辑(删除Java代码)应用于JSP页面。

作为保障:永远禁用Scriptlets

正如另一个问题所讨论的,您可以并且应该始终禁用web.xml web应用程序描述符中的scriptlets。

我会一直这样做,以防止任何开发人员添加脚本,特别是在大公司中,您迟早会失去概述。web.xml设置如下所示:

<jsp-config>
  <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
     <scripting-invalid>true</scripting-invalid>
  </jsp-property-group>
</jsp-config>

在JSP中使用scriptlets不是一种好的做法。

相反,您可以使用:

JSTL标签EL表达式自定义标记-您可以定义自己要使用的标记。

请参考:

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSTL3.html电子邮箱