我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
当前回答
Java本身是一种非常好的语言,但在企业环境中大量使用使得它的标准解决方案非常困难(可笑)。示例:JSTL、JSF、Wicket等。
以下是一种在Java中创建后端的超轻量级方法:
完全不要使用JSP(或任何其他模板引擎);使用纯HTML模板;使用JSOUP将HTML模板解析为Document对象;使用其非常直观的类似jQuery的方法修改Document对象;return Document.toString()作为对请求的响应。
我将其用于我的一个辅助项目(托管Digitalocean$5微滴、Nginx、Tomcat),而且速度非常快:根据Googlebot的数据,平均响应时间约为160毫秒。
J组
其他回答
正如许多答案所说,使用JSTL或创建自己的自定义标记。下面是关于创建自定义标记的一个很好的解释。
使用Scriptlets是一种非常古老的方法,不建议使用。如果您想在JSP页面中直接输出一些内容,只需将表达式语言(EL)与JSTL一起使用即可。
还有其他选项,例如使用Velocity、Freemark、Thymelaf等模板引擎。但在大多数情况下,将普通JSP与EL和JSTL一起使用符合我的目的,对于初学者来说,这似乎也是最简单的。
此外,请注意,在视图层中执行业务逻辑不是最佳实践。您应该在服务层中执行业务逻辑,并通过控制器将输出结果传递给视图。
如果我们在JavaWeb应用程序中使用以下内容,Java代码可以从JSP文件的前台删除。
为web应用程序使用MVC架构使用JSP标记
a.标准标签
b.自定义标签
表达式语言
我的朋友,这些都不再使用了。我的建议是将视图(CSS、HTML、JavaScript等)与服务器分离。
在我的例子中,我使用Angular处理视图,并且使用REST服务从服务器获取所需的任何数据。
相信我,这将改变你的设计方式。
还有一些基于组件的框架,例如Wicket,可以为您生成大量HTML。
最终出现在HTML中的标记是极其基本的,几乎没有任何逻辑可以混合在一起。结果几乎是空的,就像带有典型HTML元素的HTML页面一样。缺点是WicketAPI中有很多组件需要学习,在这些约束条件下,有些事情很难实现。