自学内容网 自学内容网

九:java web(1)-- Java Web 简介 Servlet 技术 JSP 技术

目录

1. Java Web 简介

1.1 什么是 Java Web?

1.1.1 什么是web

1.1.1.1 Web 的基本概念

1.1.1.2 Web 的功能与特点

1.1.1.3 Web 的发展

1.1.2 什么是java web

1.2 Java Web 与传统应用程序的区别

1.3 Java Web 发展的历程​​​​​

2. Servlet 技术

2.1 Servlet 的基本概念

2.2 Servlet 的生命周期

2.3 请求和响应对象

2.4 Servlet 与 JSP 的关系

2.5 Servlet 的作用和应用场景

3. JSP 技术

3.1 JSP 的基本概念

3.2 JSP 与 Servlet 的区别

3.3 JSP 生命周期

3.4 JSP 标准标签库(JSTL)


  • 1. Java Web 简介

    • 1.1 什么是 Java Web?

      • 1.1.1 什么是web

        •         Web(万维网,World Wide Web,简称 WWW) 是一种基于互联网的服务,它通过超文本技术(HTML)将全球的信息资源连接起来,允许用户通过浏览器访问、查看和交互各种类型的内容(如网页、图片、视频、文档等)。Web 是互联网的一部分,但它并不等同于整个互联网。互联网是一个全球性的计算机网络,而 Web 是通过这个网络传输信息的一种方式。

        • 1.1.1.1 Web 的基本概念
          • Web 页面:Web 的核心内容是 Web 页面,通常以 HTML(超文本标记语言)格式编写,包含文本、图像、链接等内容。当用户通过浏览器请求某个 URL 时,Web 服务器会响应并返回对应的 Web 页面。

          • Web 服务器:Web 服务器是一个程序,负责接收来自用户的 HTTP 请求并返回相关的 Web 内容。常见的 Web 服务器有 ApacheNginxIIS 等。

          • 浏览器:浏览器(如 ChromeFirefoxSafari)是用户访问 Web 页面时使用的客户端程序,它能够解析和呈现 HTML 页面,支持 JavaScript、CSS 等网页技术。

          • HTTP/HTTPS 协议:Web 使用 HTTP(超文本传输协议)或其安全版本 HTTPS(加密版的 HTTP)作为通信协议,客户端通过 HTTP 请求资源,Web 服务器通过 HTTP 响应返回数据。

        • 1.1.1.2 Web 的功能与特点
          • 信息共享与交互

            • Web 使得全球的信息可以通过互联网轻松共享和访问。任何人只要有网络连接,就可以浏览网页、查看文章、观看视频、参与论坛讨论等。

          • 超文本链接

            • Web 页面之间通过超链接(hyperlink)连接,用户可以通过点击链接从一个页面跳转到另一个页面。这种连接方式是 Web 的基本特性之一。

          • 跨平台性

            • Web 应用和内容不依赖于操作系统和硬件设备。用户只要有浏览器和互联网连接,无论是 PC、手机、平板还是其他设备,都可以访问 Web 内容。

          • 动态交互

            • Web 不仅仅是静态的文本和图片展示,还支持动态交互。通过 JavaScript 等技术,用户可以与 Web 页面进行互动,进行表单提交、数据获取、页面更新等操作。

          • 开放性与标准化

            • Web 基于开放的标准,如 HTML、CSS、JavaScript 和 HTTP 等,任何人都可以创建自己的 Web 页面并将其发布到互联网上。

          • 多媒体内容

            • Web 不仅限于文本内容,还可以包含图像、音频、视频、动画等多媒体内容,提升了用户的浏览体验。

          • 1.1.1.3 Web 的发展
            • Web 1.0(静态 Web)

              • 在 Web 的初期,网页大多是静态的,仅仅是简单的文本和图片展示。用户只能被动浏览信息,无法与网页进行互动。

            • Web 2.0(动态 Web)

              • 随着技术的发展,Web 页面变得更加动态,用户可以与页面互动。例如,通过表单提交、AJAX 请求加载数据等方式,Web 应用变得更加灵活。此时,社交网络、博客、Wiki 等新型应用出现,Web 开始向“社交”和“互动”转变。

            • Web 3.0(语义 Web)

              • Web 3.0 强调数据的智能化处理和个性化推荐,涉及人工智能、物联网、区块链等技术。它的目标是让 Web 更加智能、个性化,并能够理解数据之间的关系。搜索引擎和内容推荐系统就是 Web 3.0 的一种体现。

            • Web 4.0(未来展望)

              • Web 4.0 是一种具有强大智能化、虚拟现实(VR)/增强现实(AR)技术支持的未来 Web,重点将是更加深入的个性化体验、更加丰富的虚拟世界融合以及人工智能驱动的自动化。

        • 1.1.2 什么是java web

          • Java Web 是指基于 Java 技术开发的 Web 应用程序。它通常依赖于 HTTP 协议和 Web 服务器来为用户提供动态的网页内容或 Web 服务。Java Web 通常使用一些技术组件来实现请求处理、数据存储、用户界面呈现等功能。Java Web 开发中的核心技术包括:

            • Servlet:Java Web 编程的基础,负责处理 HTTP 请求和响应。
            • JSP (JavaServer Pages):基于 Servlet 的技术,主要用于动态生成网页内容。
            • Web 容器:如 Apache Tomcat,它用于托管 Java Web 应用程序,处理请求并调用相应的 Servlet 或 JSP。
          • Java Web 应用程序通常运行在 Web 服务器中,响应客户端的 HTTP 请求,产生动态内容,并将这些内容返回给客户端(通常是浏览器)。例如,电商网站、社交网络应用等都属于 Java Web 应用。
    • 1.2 Java Web 与传统应用程序的区别

      • Java Web 与传统应用程序的主要区别在于运行环境、通信方式和应用场景等方面:

      • 运行环境

        • Java Web:运行在 Web 服务器上(如 Apache Tomcat、Jetty 等),通常是跨平台的,能够通过浏览器访问。客户端只需要一个浏览器来访问 Web 应用,不需要安装专门的客户端程序。

        • 传统应用程序:通常是桌面应用程序,直接运行在操作系统上,要求客户端安装特定的程序(如 Windows 桌面应用、JavaFX 程序等)。

      • 通信方式

        • Java Web:客户端与服务器通过 HTTP 或 HTTPS 协议进行通信,数据通常是通过请求-响应模式进行交换。Java Web 应用适用于面向大量用户、跨平台的分布式应用。

        • 传统应用程序:通常通过本地通信(如直接与操作系统进行交互)来传输数据,依赖于特定的平台和协议。

      • 应用场景

        • Java Web:适合用于需要远程访问的应用场景,如在线银行、电子商务平台、社交媒体等。

        • 传统应用程序:适用于单一用户或者对性能要求较高的场景,如桌面图形处理软件、嵌入式设备程序等。

      • 部署与更新

        • Java Web:部署在服务器端,用户只需要通过浏览器访问,程序更新和维护在服务器端进行,客户端无需进行安装或更新。

        • 传统应用程序:通常需要在每个客户端进行安装和更新,升级过程中可能会涉及到客户端和服务器的双重维护。

    • 1.3 Java Web 发展的历程​​​​​

      • 初期阶段(1995-1998)

        • Java 的推出(1995)为 Web 开发带来了跨平台的优势。最初的 Java Web 开发主要依赖于 CGI(Common Gateway Interface)和 Java Applet,但这些技术有很多局限性,性能较差,且对开发人员要求较高。

      • Servlet 与 JSP 的引入(1999)

        • 1999 年,ServletJSP(JavaServer Pages)技术的出现标志着 Java Web 开发进入一个新的阶段。

        • Servlet 提供了一个基于 HTTP 协议的请求-响应处理模型,是 Java Web 编程的基础。

        • JSP 则是建立在 Servlet 之上的技术,用于简化动态 Web 页面的开发,它允许开发人员在 HTML 中嵌入 Java 代码。

      • Java EE(J2EE)的诞生(2000)

        • 2000 年,Java 提出了 J2EE(Java 2 Platform, Enterprise Edition)规范,其中包含了许多重要的企业级功能,如 EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,成为了企业级 Java Web 应用开发的基础。

        • J2EE 规范的发布加速了 Java Web 应用在企业中的普及,特别是电子商务和银行系统。

      • Spring 框架的崛起(2003)

        • Spring 框架的出现为 Java Web 开发带来了革命性的变化。Spring 提供了简化的企业应用开发方式,特别是在 IOC(控制反转)和 AOP(面向切面编程)方面。

        • Spring 的出现使得 Java Web 开发更加灵活和模块化,特别是 Spring MVC 成为替代 Struts 等早期框架的流行选择。

      • 轻量级框架与微服务架构(2010年代)

        • 随着技术的不断发展,轻量级框架如 Spring BootSpring Cloud 等逐渐成为主流。

        • Spring Boot 提供了一个开箱即用的开发框架,使得 Java Web 应用的开发更加高效。

        • 微服务架构逐渐兴起,Spring Cloud 使得分布式系统和微服务架构变得更易于构建。

      • 前后端分离和单页面应用(SPA)的发展(2010年代后期)

        • 现代 Java Web 开发逐渐向前后端分离的架构转变,后端服务通过 RESTful API 提供数据,前端使用 Vue.jsReactAngular 等框架进行开发。

        • 这种分离架构大大提升了前端和后端的独立性和可维护性,也使得前端开发和后端开发可以更专注于各自的领域。

  • 2. Servlet 技术

    • 2.1 Servlet 的基本概念

      • Servlet 是一种基于 Java 技术的 Web 组件,它运行在 Web 服务器上,用于接收客户端的请求并返回响应。Servlet 是 Java Web 应用程序的核心组成部分,主要用于处理 HTTP 请求,并生成响应内容。它可以动态地生成 HTML 页面、处理表单数据、与数据库交互等。

        • 请求与响应模式:Servlet 主要用于实现服务器端与客户端(通常是浏览器)之间的交互。客户端发送 HTTP 请求到服务器,Servlet 处理请求并返回相应的响应数据。

        • Web 容器:Servlet 必须在 Web 容器(如 Tomcat)中运行,Web 容器负责管理 Servlet 的生命周期、请求分发等操作。

        • 扩展性:Servlet 作为一种 Java 类,具有良好的可扩展性和跨平台性,能够在不同的操作系统上运行。

      • Servlet 本质上是一个服务器端的程序,客户端通过 HTTP 协议发送请求,Servlet 处理请求并返回相应的内容,通常是 HTML、JSON 或 XML 数据。

    • 2.2 Servlet 的生命周期

      • Servlet 的生命周期由 Web 容器(如 Tomcat)管理,具体包括以下几个阶段

      • 加载和实例化

        • 当一个 Servlet 被第一次访问时,Web 容器会根据 web.xml 配置文件或注解(如 @WebServlet)来加载 Servlet 类。

        • Web 容器通过调用 new 运算符创建 Servlet 类的实例。

      • 初始化(init)

        • 在 Servlet 实例化之后,Web 容器会调用 init() 方法进行初始化。init() 方法仅在 Servlet 的生命周期开始时调用一次,用于进行一些初始化工作,如加载数据库连接池、初始化资源等。

        • init() 方法的签名是:public void init(ServletConfig config)。其中,ServletConfig 提供了 Servlet 配置的初始化信息。

      • 请求处理(service)

        • 当客户端向 Servlet 发送请求时,Web 容器会调用 service() 方法来处理请求。每个请求都会触发一次 service() 方法的调用。

        • service() 方法接收两个参数:HttpServletRequest(请求对象)和 HttpServletResponse(响应对象)。开发者通常会在 service() 方法中根据请求的不同类型(如 GET、POST)来调用对应的处理方法(如 doGet()doPost())。

      • 销毁(destroy)

        • 当 Web 容器卸载 Servlet 或服务器关闭时,会调用 destroy() 方法。此时,Servlet 可以释放资源(如关闭数据库连接、清理临时文件等)。

        • destroy() 方法只会在 Servlet 生命周期的最后调用一次,Web 容器会确保在卸载 Servlet 前完成相关资源的清理工作。

    • 2.3 请求和响应对象

      • ​​​​​​​​​​​​​​HttpServletRequest(请求对象):包含了客户端请求的信息,可以通过它获取请求的各类数据,如请求参数、请求头、路径信息等。

        • 常用方法:

          • getParameter(String name):获取请求参数。

          • getHeader(String name):获取请求头信息。

          • getMethod():获取 HTTP 请求的方法(GET、POST)。

          • getSession():获取当前请求对应的 HttpSession 对象。

      • HttpServletResponse(响应对象):用于构建响应并返回给客户端。通过该对象,Servlet 可以设置响应头、响应状态码以及响应体的内容。

        • 常用方法:

          • setContentType(String type):设置响应的内容类型(如 text/htmlapplication/json)。

          • getWriter():获取 PrintWriter,用于将响应内容写入客户端。

          • setStatus(int sc):设置响应的 HTTP 状态码(如 200 OK、404 Not Found)。

          • sendRedirect(String location):发送重定向响应,告知客户端访问其他 URL。

    • 2.4 Servlet 与 JSP 的关系

      • ​​​​​​​​​​​​​​JSP(JavaServer Pages)是建立在 Servlet 技术之上的动态网页生成技术,Servlet 和 JSP 都用于响应 HTTP 请求,但它们的工作方式和应用场景有所不同。

        • Servlet:主要处理业务逻辑,如处理表单提交、与数据库交互等。Servlet 代码通常是 Java 代码,具有较强的逻辑性。

        • JSP:用于生成动态的 HTML 内容,主要处理视图层,适合用来展示数据,通常包含 HTML、CSS 和少量的 Java 代码。

      • 关系

        • JSP 是基于 Servlet 的:每个 JSP 页面都会被 Web 容器编译成一个 Servlet 类,JSP 本质上是一个具有自动生成 Servlet 的模板文件。

        • JSP 适合做展示,Servlet 适合做控制:在传统的 MVC(模型-视图-控制器) 模式中,Servlet 通常作为控制器(Controller),负责请求的分发和业务逻辑处理;而 JSP 则作为视图(View),用于展示数据。

    • 2.5 Servlet 的作用和应用场景

      • ​​​​​​​​​​​​​​Servlet 的作用

        • 处理客户端的 HTTP 请求并生成响应。它是 Java Web 开发的核心技术之一,主要负责:

          • 处理表单提交。

          • 访问数据库并返回数据。

          • 动态生成内容,如 HTML 页面或 JSON 数据。

          • 进行用户认证与授权。

          • 实现 Web 应用的路由和请求分发。

      • 应用场景

        • Web 应用程序的控制层(Controller)

          • 在 MVC 架构中,Servlet 通常作为控制层,处理用户请求并决定如何响应(如调用业务层、选择视图等)。

        • API 服务

          • Servlet 可用于处理 Web API 请求,如 RESTful API。通过处理 HTTP 请求,Servlet 可以返回 JSON 或 XML 数据,供客户端(如移动应用、前端框架等)使用。

        • 文件上传与下载

          • Servlet 可以用于实现文件上传和下载的功能。通过 HttpServletRequest 获取上传的文件,通过 HttpServletResponse 返回下载的文件。

        • 用户认证与授权

          • Servlet 可以用于实现用户登录、注册、权限控制等功能。通过处理 HTTP 请求,Servlet 可以验证用户身份,设置用户会话(Session)等。

  • 3. JSP 技术

    • 3.1 JSP 的基本概念

      • ​​​​​​​​​​​​​​JSP(JavaServer Pages,Java服务器页面)是一种动态网页技术,它允许开发人员通过嵌入 Java 代码的方式来生成 HTML、XML 或其他格式的文档。JSP 文件通常以 .jsp 为后缀,它结合了 HTML 和 Java 代码,能够在服务器端动态生成内容并返回给客户端浏览器。

        • JSP 的结构:JSP 页面包含三种主要部分:

          • 静态部分:HTML、CSS、JavaScript 等内容,直接返回给客户端。

          • 动态部分:Java 代码,通常嵌入在 JSP 页面中的 <% %> 标签内,通过服务器运行时动态生成内容。

          • JSP 指令和标签:如 <%@ page ... %> 用于页面配置、<jsp:useBean> 用于引用 JavaBean。

        • 工作原理:当浏览器请求一个 .jsp 页面时,Web 容器会将 JSP 页面转换为一个 Servlet,并通过 Servlet 执行 Java 代码生成动态内容。生成的内容通常是 HTML 页面,返回给客户端。

      • JSP 主要用于生成动态 Web 页面的视图部分,是一种基于 Java 的 Web 开发技术。

    • 3.2 JSP 与 Servlet 的区别

      • ​​​​​​​
        特性JSPServlet
        定义JSP 是一种基于 Java 的动态网页技术,主要用于生成动态网页内容。Servlet 是一种 Java Web 组件,主要用于处理 HTTP 请求和响应。
        语法JSP 页面包含 HTML 和嵌入的 Java 代码,通常通过 <% %> 标签来嵌入 Java。Servlet 是纯 Java 类,代码完全是 Java 编写,处理请求的逻辑较为集中。
        处理方式JSP 页面主要处理视图部分,展示数据(即 HTML)。Servlet 主要处理业务逻辑,控制请求流,并决定返回的内容(包括数据处理)。
        开发方式JSP 中嵌入 Java 代码,适用于简单的显示页面和少量的 Java 逻辑。Servlet 通过 doGet()doPost() 等方法处理请求,适合处理复杂的逻辑和操作。
        生命周期JSP 页面的生命周期由 Web 容器自动管理,JSP 被编译成 Servlet,JSP 本身不是一个 Java 类。Servlet 是一个 Java 类,由 Web 容器管理生命周期,生命周期包含初始化、请求处理和销毁。
        编译方式JSP 页面在第一次请求时被编译成 Servlet。Servlet 是预先编译的 Java 类文件,直接在 Web 容器中执行。
      • JSP 适合用来生成动态的 HTML 页面,它更加注重视图部分的内容,并将 Java 代码嵌入 HTML 中。
      • Servlet 更加注重处理业务逻辑,通常用于处理 HTTP 请求、计算、数据访问等任务。
      • 在实际开发中,JSP 和 Servlet 常常结合使用,JSP 用于展示数据,Servlet 处理请求和业务逻辑。
    • 3.3 JSP 生命周期

      JSP 的生命周期由 Web 容器管理,通常包括以下几个阶段:
      • 加载和实例化

        • 当第一次请求某个 JSP 页面时,Web 容器会加载该 JSP 页面并将其编译成一个 Servlet 类。该类会被实例化,并且成为一个 Servlet 对象。

      • 初始化(init)

        • JSP 页面首次被访问时,会调用 jspInit() 方法进行初始化工作,jspInit() 方法相当于 Servlet 的 init() 方法。通常用于加载资源或做一些一次性的设置。

      • 请求处理(service)

        • 每次请求到达 JSP 页面时,Web 容器会调用 _jspService() 方法。这个方法接收 HttpServletRequestHttpServletResponse 两个参数,并通过它们来处理请求和响应。

        • jspService() 方法是由容器自动生成的,开发者通常不需要覆盖它,JSP 页面中的业务逻辑通常通过表达式语言(EL)或 JavaBean 来实现。

      • 销毁(destroy)

        • 当 Web 容器卸载 JSP 页面时,容器会调用 jspDestroy() 方法。这一方法类似于 Servlet 的 destroy() 方法,通常用于释放占用的资源,如数据库连接、文件句柄等。

      • 总结:JSP 生命周期的关键方法包括 jspInit()_jspService()jspDestroy(),与 Servlet 的生命周期相似,但其中的 _jspService() 方法是由容器自动生成的,而开发者无需显式实现。

    • 3.4 JSP 标准标签库(JSTL)

      • ​​​​​​​​​​​​​​JSTL(JavaServer Pages Standard Tag Library)是 JSP 页面的标准标签库,它提供了一些通用的标签来简化 JSP 页面的开发。JSTL 提供了多种常见的标签,如条件判断、循环控制、国际化、数据库操作等,避免了在 JSP 页面中编写复杂的 Java 代码。

        常见的 JSTL 标签包括:

        • 核心标签库

          • <c:out>:用于输出表达式的结果,自动转义 HTML 特殊字符。

          • <c:if>:用于条件判断,如果条件成立则执行包含的内容。

          • <c:choose>:类似于 if-else 语句,用于多条件判断。

          • <c:forEach>:用于遍历集合、数组等数据结构,类似于 Java 中的 for-each

        • 国际化标签库

          • <fmt:message>:输出国际化消息,根据不同语言环境显示不同内容。

        • 数据库操作标签库

          • <sql:query>:用于执行 SQL 查询并返回结果。

          • <sql:update>:用于执行 SQL 更新操作。


原文地址:https://blog.csdn.net/pasaxiaorui/article/details/143553318

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!