【Javaweb】只给入门Javaweb的人看!

前言

最近我在B站上用2天的时间迅速刷完了黑马程序员的Javaweb课程,这个课程内容非常多,总共有42个小时的学习内容。然而,对于那些寻找Java后端开发人员岗位的人来说,实际上Javaweb并不是非常重要,只需对其有简单的了解即可。因此,我打算撰写一篇文章,简明扼要地介绍Javaweb的关键要点。我相信只要读者能理解我文章中的内容,基本上就能够掌握Javaweb,并无需额外学习其他知识。

在这篇文章中,我计划通过一系列问题引导的方式,共计13个问题,努力让读者理解这些问题的答案。通过阅读我的文章,读者将能够基本掌握Javaweb的关键概念,无需额外的学习。

1.Javaweb是啥?Javaweb的技术体系是什么?

Javaweb是指使用Java技术开发的Web应用程序。它是通过Java编程语言和相关的技术实现的,用于构建服务器端的Web应用程序。

技术体系如下图:

你看到这张图肯定很懵,但是没关系,如果你能坚持看完整篇文章,然后回过头来再看一遍这幅图,你绝对会感谢我的!

2.Javaweb整个流程是怎么运作的?

Javaweb应用程序的整体流程通常如下:

  1. 客户端发送HTTP请求:用户在浏览器中输入URL,点击链接或提交表单等操作,发送HTTP请求到服务器。
  2. 服务器接收请求:Web服务器(如Apache Tomcat)接收到HTTP请求,并将请求发送给Javaweb应用程序。
  3. 请求处理:Javaweb应用程序接收到请求后,根据配置的URL映射规则,将请求交给相应的处理器进行处理。
  4. 处理请求:处理器根据业务逻辑处理请求,可能包括调用服务层、访问数据库、处理数据等操作。
  5. 构建响应:处理器处理完请求后,构建相应的响应数据,通常是生成HTML、JSON等内容。
  6. 响应发送给客户端:Javaweb应用程序将构建好的响应发送给Web服务器。
  7. 响应返回给客户端:Web服务器将响应发送给客户端,客户端浏览器解析响应并显示相应的内容。

在整个流程中,Javaweb框架提供了各种组件和工具来简化开发任务。例如,Spring框架可以用于管理对象的生命周期和依赖关系,Spring MVC框架可以帮助处理请求和构建响应,Hibernate和MyBatis可以用于数据库访问和ORM(对象关系映射)操作等。这些框架的使用可以让开发者更加专注于业务逻辑的实现,提高开发效率和代码质量。

看到这里,如果是对Javaweb有点基础的应该懂什么意思,但是其实对于新手而言,这这个回答就不太友好了,倒不是因为这个回答质量不好,而是新手不懂什么URL,web服务器,http请求,数据库这些名词。就好像你看一篇英文文章,假如有几个生词看不懂,那你可能就看不懂整篇文章的大致意思了,所以接下来我会逐一解释这些名词。

URL:可以理解为我们平时在浏览器中输入的链接。当我们在浏览器中输入一个URL或者点击网页上的链接时,浏览器会根据URL来请求相应的资源并将其显示出来。URL用于唯一标识和定位互联网上的资源,可以是网页、图片、视频、文件等。通过URL,我们可以访问和获取特定资源的内容。在日常使用中,我们经常使用URL来访问网页、下载文件、查看图片等。当我们点击一个链接时,浏览器会解析URL中的各个部分,如协议、域名、路径等,并向服务器发送请求以获取相应的资源。URL的使用使得互联网上的资源可以被准确地定位和访问。

web应用程序:通过Web浏览器作为客户端来访问和使用的。用户可以通过在浏览器中输入URL或点击链接来访问Web应用程序,而无需安装额外的软件,因为它们基于Web技术,用户可以使用不同的设备和操作系统来访问,而不需要特定的软件安装。此外,开发者可以通过更新服务器端代码来实现功能的改进和问题的修复,而无需每次都更新客户端的应用程序。

Web应用程序通常由前端和后端两部分组成:

  1. 前端(Front-end):前端是指Web应用程序的用户界面部分。它通常由HTML、CSS和JavaScript等技术构建,用于呈现和展示内容给用户。前端技术可以实现交互性和动态性,使用户能够与应用程序进行交互,例如填写表单、点击按钮等。

  2. 后端(Back-end):后端是Web应用程序的服务器端部分。它负责处理前端发送的请求,执行相应的业务逻辑,并返回响应给前端。后端通常使用服务器端编程语言(如Java、Python、Ruby等)和数据库等技术来实现。后端处理各种请求,进行数据处理、业务逻辑计算、持久化存储等操作。

其它的一些名词我将会再下文提到,如果你现在还不懂的话不用急,你看完整篇文章就懂了。

2.数据库是啥?MySQL是啥?

数据库(Database)是一个用于存储、管理和组织数据的系统。它是一个结构化的数据集合,可以提供高效的数据存储和检索功能。数据库可以存储各种类型的数据,如文本、数字、图像、音频等,并允许用户对这些数据进行增删改查等操作。

数据库管理系统(Database Management System,简称DBMS)是用于管理数据库的软件。它提供了一组功能和工具,用于创建、访问、操作和维护数据库。MySQL是一种常见的关系型数据库管理系统。

3.事务是啥?为什么需要事务?

事务是指一组数据库操作作为一个逻辑单元执行的过程。通过使用事务,可以确保数据库操作的一致性和可靠性。事务可以将一系列的数据库操作(例如插入、更新、删除等)组合起来,并在逻辑上作为一个原子操作进行处理。

事务的目的是确保数据库操作的一致性和完整性。在现实世界的应用中,许多操作需要以原子方式执行,要么全部成功,要么全部失败。假设有一个银行应用程序,用户可以进行转账操作。转账涉及两个账户,分别是源账户和目标账户。在转账过程中,需要执行以下两个操作:从源账户中扣除转账金额和将相同的金额添加到目标账户。这两个操作必须同时成功或同时失败,以确保转账过程的一致性。

4.数据库是如何被设计的?

其实这个问题本身就很大,不过其实我们只需要知道一件事情就够了,对于关系型数据库的设计,是通过一张张表来完成的,通过逐个设计每个表,可以建立起一个完整的数据库。当然啦,表之间还要存在多种关系,什么一对一关系,多对一关系,多对多关系这些,了解一下有这么一回事儿就好。

5.JDBC是啥?JDBC有一些API,这些API有什么用?

JDBC (Java Database Connectivity) 是Java平台提供的一组用于与关系型数据库进行交互的API。它提供了一组类和接口,用于建立数据库连接、执行SQL语句、处理查询结果和管理事务等操作。

所以说,其实不用JDBC,一样可以与数据库进行交互,只是说用了JDBC的话就可以更加简单方便,因为JDBC提供了一组标准化的API接口,用于与数据库进行交互。

6.数据库连接池是啥?

在JavaWeb中,数据库连接池是一种管理和复用数据库连接的机制。它是为了提高数据库访问性能和资源利用率而设计的。

传统上,在每次与数据库交互时,应用程序都需要手动创建数据库连接、执行SQL语句并关闭连接。这种方式会导致频繁地创建和关闭数据库连接,对于频繁访问数据库的应用来说,这样的开销很高。

数据库连接池解决了这个问题。它预先在启动时创建一定数量的数据库连接,并将它们存储在连接池中。当应用程序需要与数据库进行交互时,它可以从连接池中获取一个可用的连接,执行数据库操作,并在完成后将连接归还给连接池,而不是每次都创建和关闭连接。

常见的JavaWeb容器(如Tomcat、Jetty)提供了内置的数据库连接池实现,开发人员可以通过配置连接池参数来使用连接池。

7.Maven是啥?

Maven是一个用于构建和管理Java项目的开源工具。它提供了一种标准化的项目结构、依赖管理和构建过程,使得开发人员能够更方便地构建、测试和部署Java应用程序。

如果没有使用Maven,开发人员将需要手动处理项目的依赖管理、构建过程和项目结构。

看到这里,其实有的人会问,项目结构是啥?我怎么听的云里雾里的。其实,项目结构是指在软件开发过程中,组织和布置项目代码、资源和配置文件的方式和规范。通常一个项目结构包含以下几个部分:

  1. 源代码(Source Code):包含项目的Java源代码文件(.java文件),通常按照包(package)的层次结构进行组织。源代码是实现项目功能的核心部分。

  2. 资源文件(Resource Files):包含项目所需的各种非代码资源文件,如配置文件、图像、样式表等。这些文件通常与源代码分开存放,便于管理和维护。

  3. 测试代码(Test Code):包含用于项目测试的代码文件,通常按照与源代码相似的目录结构组织。测试代码用于验证和确保项目的正确性和稳定性。

  4. 构建脚本和配置文件(Build Scripts and Configuration Files):包含用于项目构建和配置的文件,如构建工具的配置文件(如Maven的pom.xml)、构建脚本(如Ant脚本)等。这些文件用于描述项目的构建过程和依赖关系。

  5. 输出目录(Output Directory):用于存放项目构建过程生成的输出文件,如编译后的字节码文件(.class文件)、打包后的JAR文件等。输出目录通常是一个独立的目录,与源代码和资源文件分开,以便于发布和部署。

看到这里,我相信你大概知道Maven是啥了,其实不需要研究的很深入,知道个大概就行了。

8.http是啥,web服务器是啥,Tomcat是啥?

HTTP是一种用于在Web上传输数据的协议。它是一种客户端-服务器协议,通过请求-响应的方式进行通信。HTTP协议定义了客户端(如浏览器)和服务器之间的通信规则,包括请求的格式、响应的格式以及各种操作(如GET、POST等)的语义。

Web服务器是指运行在服务器上的软件,用于处理和响应HTTP请求。当客户端(如浏览器)发送HTTP请求时,Web服务器接收请求并根据请求的内容和要求生成相应的HTTP响应。Web服务器常用于托管和提供Web应用程序、网站和静态资源(如HTML、CSS、JavaScript文件等)。

注:HTTP Server其实和web服务器是一个意思,是一个可以互换的术语。

Tomcat是一个开源的Java Web服务器,它实现了Java Servlet、JSP等技术。Tomcat作为一个Web服务器,可以接收和处理客户端发送的HTTP请求,并将请求交给相应的Java Servlet或JSP进行处理。它提供了一个运行环境,使得开发人员能够开发、部署和运行基于Java的Web应用程序。

看到这里,其实你应该懂了,反正一句话就是:HTTP是一种用于在Web上传输数据的协议,Web服务器是用于处理和响应HTTP请求的软件,而Tomcat是一个开源的Java Web服务器,用于托管和运行Java Web应用程序。你理解了这句话大概就没问题了。

9.JSP是啥?

JSP是一种用于动态生成Web页面的Java服务器端技术。它允许将Java代码嵌入到HTML页面中,以实现动态内容的生成和展示。不过 ,JSP有很多缺点,并且在现代的Web开发中,它已经不再是主流的选择。随着时间的推移,出现了更加现代化和灵活的技术和框架,如前端框架(如React、Angular、Vue.js)、后端框架(如Spring Boot、Node.js)。

我上网查了一下JSP有什么缺点,终于,我看到了一个很通俗易懂的答案,它是这样子说的:

  1. 前后端分离:JSP将前端和后端的代码紧密耦合在一起,使得前端开发和后端开发难以分离。现代化的Web开发倾向于前后端分离,将前端视图和后端逻辑解耦,通过API进行数据交互。

  2. 可维护性和复用性:JSP中的Java代码和HTML混合在一起,使得代码可维护性和复用性较差。现代化的开发方式倾向于使用模板引擎或组件化的前端框架,以实现更好的代码组织和可维护性。

  3. 性能和扩展性:JSP在处理大量并发请求时可能会面临性能问题,因为每个请求都会导致JSP的重新编译和执行。现代化的Web开发使用更轻量级的技术和框架,如静态化页面、前端渲染、服务器端渲染等,以提高性能和扩展性。

10.servlet是啥,为什么要有servlet?

Servlet是Java编写的服务器端组件,用于处理Web请求和生成动态内容。Servlet运行在Web服务器中,通过Java Servlet容器(如Tomcat)来管理和执行。

为什么要有Servlet呢?在Web应用程序中,客户端(如浏览器)发送请求到服务器,服务器需要处理这些请求并生成相应的内容返回给客户端。传统的静态网页无法满足动态交互的需求,因此需要一种机制来处理请求,并动态生成内容。Servlet就是为了满足这个需求而产生的。

11.Requset&Response是什么?

Request(请求)和Response(响应)是在Web开发中经常使用的概念,用于描述客户端与服务器之间的通信过程。

Request(请求)是客户端(如浏览器)发送给服务器的一种数据格式,用于向服务器请求某种操作或资源。服务器接收到请求后,根据请求的内容进行相应的处理,并生成一个Response(响应)发送回客户端。Response(响应)是服务器发送给客户端的一种数据格式,用于返回请求的结果或资源。客户端接收到服务器的响应后,根据响应的内容进行相应的处理,如渲染页面、解析数据等。

我上面说的其实比较啰嗦,不过其实你只要搞懂一段话就好:Request和Response是描述客户端与服务器之间通信的两种数据格式。Request是客户端发送给服务器的请求,包含请求的方法、URL、头部信息和请求体。Response是服务器发送给客户端的响应,包含响应的状态码、头部信息和响应体。通过使用这两种数据格式,客户端和服务器可以进行有效的通信和交互。

你懂这段话就够了,不用学太多太深的东西。

12.会话跟踪是啥?为什么会有这个东西?

会话跟踪是在Web开发中用于跟踪用户在多个请求之间的状态的机制。由于HTTP协议是无状态的,即每个请求都是独立的,服务器无法直接识别不同请求来自于同一个用户。而会话跟踪机制可以在用户访问网站期间跟踪用户的状态和数据,以便提供个性化的服务和持久化的用户体验。

会话跟踪的目的是为了解决以下问题:

1.身份识别:通过会话跟踪,服务器可以识别用户的身份,知道不同请求来自于同一个用户,从而提供个性化的服务和权限控制。

2.状态管理:会话跟踪可以帮助服务器在多个请求之间保持用户的状态信息,如购物车内容、登录状态等,以便用户能够持续地进行操作。

3.数据传递:通过会话跟踪,服务器可以在不同请求之间传递数据,如表单数据、用户选择等,以便实现复杂的交互逻辑

我上面说了这么多,估计你也不太懂,因为当时我学的时候也是一样,所以我自己找了个例子来理解这个东西。

比如说,当你登录一个网站时,网站通常会使用会话跟踪机制来保持你的登录状态,以便你在进行其他操作时不需要重复登录。会话跟踪的过程就像下面那样:

  1. 你打开浏览器,输入网站的URL,然后点击登录按钮。
  2. 服务器接收到你的登录请求,并验证你提供的用户名和密码是否正确。
  3. 如果验证成功,服务器会创建一个会话对象,并为该会话分配一个唯一的会话ID。
  4. 服务器将会话ID作为响应的一部分发送给你的浏览器,并将会话ID存储在Cookie中(通过响应头中的Set-Cookie字段)。
  5. 你的浏览器接收到响应后,会将会话ID存储在本地的Cookie中。
  6. 当你在浏览器上进行其他操作(如点击商品页面、添加到购物车等),浏览器会自动在每个请求中包含存储在Cookie中的会话ID。
  7. 服务器在接收到每个请求时,会从请求中的Cookie中提取会话ID,并根据会话ID识别你的会话。
  8. 服务器使用会话ID来查找与该会话ID关联的会话对象,并根据需要更新或检索你的状态信息(如购物车内容、登录状态等)。
  9. 服务器根据你的请求进行相应的处理,并生成响应返回给你的浏览器。
  10. 这个过程在你继续操作网站的过程中持续进行,直到你退出登录或会话超时。

通过会话跟踪机制,服务器可以在多个请求之间保持你的登录状态,以便你可以持续地浏览和操作网站而无需重复登录。

这下你大概知道个表面意思了,那就够了。

13.cookie和session是什么,有什么用?

Cookie是一种存储在用户计算机上的小型文本文件,由Web服务器通过HTTP响应发送给用户的浏览器,并由浏览器保存。每当用户访问同一网站时,浏览器会将相应的Cookie附加到HTTP请求中发送给服务器。Cookie通常用于跟踪用户的状态和存储用户的偏好设置。它们可以存储各种信息,比如用户ID、登录状态、购物车内容等。

Session是一种在服务器端存储用户状态的机制。当用户首次访问网站时,服务器会为该用户创建一个唯一的会话标识符(Session ID)。这个Session ID通常会被存储在服务器端的内存或数据库中,而不是在用户的计算机上。该Session ID会在用户的每个请求中传递给服务器,以便服务器能够识别用户并为其提供相应的内容。服务器使用Session来存储和管理与特定用户相关的数据,如登录状态、用户信息、购物车内容等。

后记

如果你对Javaweb还感到有些模糊,我建议你通过阅读一个小项目来更好地理解其中的知识点。因此,我推荐你阅读这篇文章::JavaWeb是什么?总结一下JavaWeb的体系-CSDN博客 这篇文章将帮助你了解Javaweb的核心概念和技术体系。

当然,Javaweb只是你对Java框架入门的一部分,你还需要学习其他框架。因此,我还推荐你阅读另一篇文章:JavaWeb:JavaWeb技术架构演进_java web ssm 技术架构图-CSDN博客 通过阅读这篇文章,你应该可以对Javaweb如何与其他框架配合使用有一个大概的了解。这对你接下来学习SSM啊,springboot这些框架都有帮助!

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值