我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
当前回答
只需使用JSTL标记和EL表达式。
其他回答
您可以将JSTL标记与EL表达式一起使用,以避免混合Java和HTML代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
</head>
<body>
<c:out value="${x + 1}" />
<c:out value="${param.name}" />
// and so on
</body>
</html>
在JSP中使用scriptlets不是一种好的做法。
相反,您可以使用:
JSTL标签EL表达式自定义标记-您可以定义自己要使用的标记。
请参考:
http://docs.oracle.com/javaee/1.4/tutorial/doc/JSTL3.html电子邮箱
作为保障:永远禁用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>
Java本身是一种非常好的语言,但在企业环境中大量使用使得它的标准解决方案非常困难(可笑)。示例:JSTL、JSF、Wicket等。
以下是一种在Java中创建后端的超轻量级方法:
完全不要使用JSP(或任何其他模板引擎);使用纯HTML模板;使用JSOUP将HTML模板解析为Document对象;使用其非常直观的类似jQuery的方法修改Document对象;return Document.toString()作为对请求的响应。
我将其用于我的一个辅助项目(托管Digitalocean$5微滴、Nginx、Tomcat),而且速度非常快:根据Googlebot的数据,平均响应时间约为160毫秒。
J组
使用Backbone.js或类似AngularJS的JavaScript框架进行UI设计并使用REST API获取数据。这将从UI中完全删除Java依赖项。