Javaweb(二)maven、jsp/sevrlet

Java web发展历程:

以下是Java Web主要流行框架的演进和大致的流行时间范围:

  1. Servlets和JSP:
    在Java Web开发早期,Servlets和JSP(JavaServer Pages)是主要的技术。Servlets用于处理HTTP请求和响应,JSP用于将Java代码嵌入HTML页面。

  2. Struts(2000年代早期 - 2010年代早期)现早已不用:
    Struts是早期流行的MVC(Model-View-Controller)框架,用于分离业务逻辑、用户界面和数据模型。

  3. Spring MVC(2003年左右至今):
    Spring Framework最早于2003年由Rod Johnson创建,并在之后几年逐渐发展壮大。然而,Spring MVC作为Spring Framework的一部分

  4. JSF(JavaServer Faces)(2004年左右至今):
    JSF 1.0:2004年发布,JSF 2.0:2010年发布,用于构建Web用户界面的标准框架。

注:Spring MVC 是 Spring Framework 的一部分,它是一个基于模型-视图-控制器(MVC)模式的框架,用于构建 Java Web 应用程序。它提供了强大的灵活性、轻量级的设计和广泛的社区支持,因此在企业级和中小型项目中都得到了广泛的应用。JSF 是 Java EE(现在称为 Jakarta EE)的一部分,也是一个用于构建 Java Web 应用程序的框架。它专注于提供一种面向组件的用户界面开发方式,通过提供可重用的 UI 组件,使开发者能够更轻松地构建交互式用户界面。然而,在一些场景下,开发者可能更喜欢使用其他框架,因为在某些方面,JSF 的学习曲线可能相对较陡峭。虽然 Spring MVC 相对于 JSF 使用更为广泛,但选择使用哪个框架还取决于项目需求、团队经验、技术趋势和个人偏好。技术领域不断发展,这种情况可能会随着时间的推移而发生变化。

  1. Hibernate和JPA(Java Persistence API)(2000年代后期至今):

    • Hibernate是一个高级的ORM(对象关系映射)框架,它在底层使用JDBC来进行数据库操作,但提供了更高级别的API和功能,使开发人员能够更方便地进行数据库操作。它是一个开源的Java持久化框架,用于将Java对象映射到关系型数据库中,从而实现数据持久化和数据库操作。它由Gavin King于2001年创建,并在之后的几年中得到了广泛的发展和社区支持。
    • JPA 1.0:2006年发布,JPA 2.0:2009年发布,用于对象关系映射和数据库访问。
    • Hibernate 和 JPA(Java Persistence API)之间存在密切的关系。具体来说,Hibernate 是一个实现了 JPA 规范的 ORM 框架。在开发中,你可以选择直接使用 JPA 接口和注解,编写符合 JPA 规范的代码,然后选择将 Hibernate 作为 JPA 的实现。这使你能够充分利用 Hibernate 提供的丰富功能,同时也能够保持符合 JPA 规范的代码,以便在将来需要时能够更轻松地切换到其他符合 JPA 规范的 ORM 框架。
  2. Spring Boot(2013年左右至今):
    随着微服务架构的兴起,Spring Boot应运而生,它简化了Java应用程序的构建、配置和部署过程,使开发人员能够更快速地创建独立的、可执行的应用程序。

  3. Spring Cloud(2010年代中期至今):
    自2015年开始流行,用于构建微服务架构。Spring Cloud是一个用于构建微服务架构的工具集合,提供了服务发现、负载均衡、配置管理等功能。

  4. Micronaut和Quarkus(2010年代后期至今):

    • Micronaut:2018年发布,Quarkus:2019年发布,用于构建快速启动的微服务和云原生应用。
  5. Spring WebFlux(2010年代后期至今):

  • Spring WebFlux:自2017年开始流行,提供基于响应式编程的编程模型。
  1. Jakarta EE(以前的Java EE)(2010年代后期至今):
  • Java EE逐渐演变为Jakarta EE,提供用于企业级应用开发的规范和技术。

Java相关核心技术:

1. Tomcat:

Apache Tomcat: Tomcat 是一个用于运行 Java Servlet 和 JavaServer Pages(JSP)的开源 Web 服务器和 Servlet 容器。它广泛用于部署 Java Web 应用程序。

2. Maven

Maven 于 2002 年由 Jason van Zyl 创立,并在 Codehaus 社区逐渐发展壮大。最早的 Maven 版本发布于 2004 年。它的诞生背景是为了解决软件项目构建和依赖管理过程中的一些痛点,提供一种更加标准和自动化的方式来处理这些任务。随着时间的推移,Maven 逐渐成为 Java 开发领域中最流行和广泛使用的构建工具之一。
例如,在JavaWeb开发中需要使用大量的的jar包,我们手动导入;如何能够让一个东西自动帮我导入和配置这个jar包;由此,Maven诞生了。

Maven 是一个用于项目构建、依赖管理和项目生命周期管理的开源工具。它的主要目标是简化和标准化软件项目的构建过程,提供一种统一的方式来管理项目的构建、测试、文档生成、依赖管理等任务,从而减少开发者在配置和管理方面的工作量。Maven 基于项目对象模型(Project Object Model,简称 POM)来描述项目的结构和依赖关系,并通过插件机制支持各种构建和开发任务。

Maven 的一些主要功能包括:

依赖管理: Maven 可以自动下载并管理项目所需的第三方库和依赖,简化了依赖的配置和更新过程。

项目构建: Maven 提供了一种标准的项目构建流程,包括编译、测试、打包、发布等任务,可以通过简单的命令完成这些操作。

项目生命周期管理: Maven 定义了一组标准的构建阶段和生命周期,开发者可以根据需要进行自定义或扩展。

插件系统: Maven 支持丰富的插件机制,可以通过插件执行各种额外的任务,如代码分析、文档生成、部署等。

多模块项目支持: Maven 可以管理多个子项目,使得大型项目的构建和管理更加方便。

3. pom文件以及与maven的关系

POM(Project Object Model)是 Maven 中的一个核心概念,它是用于描述和配置 Maven 项目的一个 XML 文件。POM 文件定义了项目的元数据、依赖关系、构建设置、插件配置等信息,从而使 Maven 能够理解和管理项目的结构和行为。

POM 文件包含了以下信息:

项目坐标(Coordinates): 包括项目的 groupId、artifactId 和版本号,用于唯一标识一个项目。

项目依赖(Dependencies): 列出了项目所需的外部库、模块和其他项目,以及它们的版本信息。Maven 可以根据这些依赖自动下载和管理项目的依赖关系。

构建设置(Build Configuration): 定义了项目的构建过程,包括编译、测试、打包、部署等任务。你可以在这里配置构建插件、目标等。

插件配置(Plugin Configuration): 可以配置各种 Maven 插件,用于执行额外的任务,如文档生成、代码分析等。

项目属性(Properties): 可以定义项目中的一些属性值,这些值可以在 POM 中引用,从而实现重复使用和统一管理。

POM 文件是 Maven 中非常重要的一个概念,它定义了项目的结构、构建过程和依赖关系,使得 Maven 能够自动化执行构建任务并管理项目的依赖。每个 Maven 项目都应该有一个名为 “pom.xml” 的 POM 文件。

4. Servlet 和 JSP

4.1 Servlet简介
  • Servlet是Sun公司开发动态web的一门技术
  • Sun在这些API中提供了一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要两个小步骤
    编写一个类实现Servlet接口
    把开发好的Java类部署到web服务器中

把实现了Servlet接口的Java程序叫做Servlet

4.2 jsp

JSP(JavaServer Pages)在某种程度上可以被认为是一种模板引擎,尽管它的功能和定位略有不同。

模板引擎是一种用于生成动态内容的工具,它允许开发人员将数据和逻辑嵌入到预定义的模板中,然后生成最终的输出(通常是HTML)。JSP在这方面与模板引擎具有某些相似之处,因为它允许在HTML页面中嵌入Java代码,以便生成动态内容。开发人员可以在JSP中使用标签(如<%= %>)来插入Java代码,从而实现数据的动态呈现。

然而,与典型的模板引擎不同,JSP还有其他的特性和功能,如直接支持Java的许多功能(如JavaBeans、Servlets等)、自定义标签库(Tag Libraries)和JSP页面的生命周期管理。JSP最初是为了在Java Web应用程序中简化动态Web页面的开发而设计的,它在一定程度上融合了Java代码和HTML,使得开发人员可以更轻松地构建基于Java的Web应用。

然而,随着时间的推移,一些专门的模板引擎(如FreeMarker、Thymeleaf等)也在Java领域中变得流行,它们更专注于将数据和模板分离,提供更高度的灵活性和可维护性。

总之,尽管JSP可以用作模板引擎,但它同时还具有其他功能,它在Java Web开发中扮演了更多的角色。如果您更倾向于将数据和视图严格分离,您可能会考虑使用专门的模板引擎来实现动态内容生成。

4.3 Servlets和jsp的区别

Servlets和JSP(JavaServer Pages)是Java Web开发中的两种关键技术,用于处理Web请求和生成动态Web页面。它们有一些共同点,但也有一些重要的区别:

  1. Servlets

    • Servlets是Java类,用于处理HTTP请求和生成响应。
    • Servlets通常用于编写控制器、业务逻辑和与数据库交互等后端处理。
    • Servlets以Java代码的形式处理请求和生成响应,因此可以更灵活地处理逻辑。
    • Servlets通常需要在Java代码中嵌入HTML(或其他标记语言)以生成响应页面。
  2. JSP(JavaServer Pages)

    • JSP是一种基于HTML的标记语言,允许在HTML中嵌入Java代码片段。
    • JSP允许开发人员在页面上直接嵌入Java代码,使页面更具动态性。
    • JSP文件在服务器上被翻译为Servlets,然后由Servlet容器运行。
    • JSP的主要目的是将Java代码和HTML页面结合起来,使开发人员更容易编写动态页面。

区别总结:

  • Servlets是Java类,用于处理请求和生成响应,而JSP是基于HTML的标记语言,允许在HTML中嵌入Java代码。
  • Servlets更适合处理业务逻辑和控制器层,而JSP更适合生成动态内容的视图层。
  • Servlets需要在Java代码中嵌入HTML,而JSP允许在HTML中嵌入Java代码,使页面更易于维护。
  • Servlets需要更多的代码来处理逻辑,而JSP允许开发人员更直观地在页面上编写Java代码。

在实际开发中,通常会将Servlets和JSP结合使用,以实现更好的分工和代码组织。例如,Servlets可以用于处理请求和业务逻辑,然后将数据传递给JSP来生成动态的HTML内容。
在这里插入图片描述

参考 Servlet JSP和Spring MVC初学指南:https://blog.csdn.net/nfzhlk/article/details/85220295


疑问:

Spring MVC

还有用jsp和serverlet的吗

JSF(JavaServer Faces),咱们项目里有用这个吗?目前用的多不还?

持久化数据库用的是啥 jpa 还是Hibernate?

Spring Boot哪个项目里用了

Spring Cloud哪个项目里用了?

Java服务器除了Tomcat,咱们还用了哪些?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

. . . . .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值