Jakarta Server Pages(以前称为 JavaServer Pages)是一种 Java 标准技术,开发人员使用它来为 Java Web 应用程序编写动态的、数据驱动的网页。JSP 建立在 Java Servlet(又名 Jakarta Servlet)规范之上,是 Jakarta EE 中包含的用于持续支持和升级的 Java Web 技术之一。
JSP 和 servlet 通常一起工作,尤其是在较旧的 Java Web 应用程序中。从编码的角度来看,JSP 和 servlet 之间最明显的区别在于,使用 servlet,你可以编写 Java 代码,然后将客户端标记(如 HTML)嵌入到该代码中。使用 JSP,你从客户端脚本或标记开始,然后嵌入 JSP 标记以将你的页面连接到 Java 后端。
可以把JSP看作是一种用超级能力编写标记以便与后端交互的方法。通常,像HTML这样的标记被发送到客户端,在那里通过JavaScript与后端服务器进行交互。JSP使用特殊命令对HTML进行预处理,以访问和使用服务器功能,然后将编译后的页面发送给客户端。
JSP 和 JSF
JSP 与 JSF 或 Jakarta Server Faces(以前称为 JavaServer Faces)密切相关。JSF 是用于构建模型-视图-控制器 (MVC) Web 应用程序的 Java 规范。它是 Eclipse Mojarra、MyFaces 和 PrimeFaces 等 Java Web 框架的标准。虽然将 JSP 用作旧 JSF 应用程序的前端并不少见,但 Facelets 是现代 JSF 实现的首选视图技术。
开发人员还在使用 JSP 吗?
开发人员仍然将 JSP 用于某些应用程序。它是一种比 Jamstack 等更现代的方法或 Thymeleaf 等模板引擎更简单的技术,但有时简单是要走的路。
JSP 是一种核心的 Java Web 技术。作为开发人员,我们可以相对快速、轻松地构建 JSP 页面,并且它们可以与 Tomcat 等 servlet 容器中的 servlet 无缝交互。你可以说 JSP 是 .NET 世界中 PHP 和 ASP 的 Java 生态系统等价物。
你将在较旧的 Java Web 应用程序中遇到 JSP。有时,你可能仍会发现它对于构建简单、动态的 Java 网页很有用。作为一名 Java 开发人员,你应该熟悉 JSP 以及如何在你的程序中使用它。
JSP 和 servlet 应用程序中的 MVC
servlet 和 JSP 页面之间的交互遵循经典的 MVC 模式:控制器对象(servlet)准备模型对象(项目或用户对象)并将其发送到视图(JSP 页面)进行渲染。MVC 清晰的关注点分离使其成为一种流行且长期存在的软件构建方法。Struts 是使用 JSP 和 servlet 实现 MVC 的最古老和最著名的框架之一。Spring MVC 还包括对 JSP 的内置支持。
使用 Spring MVC 可能是在较大框架内进行 JSP 开发的最常用方法,因为它使你可以访问整个 Spring 生态系统。加速该过程的一个好方法是使用 JSP Spring Boot 模板。
结论
JSP 是一种众所周知的通用技术,用于开发 Java Web 应用程序视图。与 servlet 相结合,JSP 页面非常强大,并提供对整个 Java 功能范围的访问。虽然 Jakarta Server Pages 可能不是你开发现代 Java Web 应用程序的首选,但你会在遗留应用程序中遇到 JSP 页面。对于希望将 HTML 前端快速连接到服务器端 Java 代码的简单应用程序,它也是一个不错的选择。JSTL 标记能够处理大多数 Web 应用程序需求,第三方库针对特定技术和用例扩展了该功能。