第二章JavaWeb基础学习路线

news2025/3/12 12:31:11

文章目录

  • 什么是Java Web
  • Java Web基础的技术栈
    • 关于我们的客户端与服务端(BS)
      • 我们客户端的形式
        • **PC端网页**
        • **移动端**
      • 服务端应用程序
    • 关于请求(request)和响应(response)
      • 类比生活中的请求和响应
      • 服务器中的请求和响应
    • 项目的逻辑构成
    • 架构
      • 概念
      • 发展演变历程
        • 单一架构
        • 分布式架构
  • 单一架构的技术体系
    • 视图层
    • 控制层
    • 业务逻辑层
    • 持久化层

什么是Java Web

Java语言是当前最流行的开发语言之一。它的风格十分接近C++语言,是一个纯粹的面向对象的程序设计语言。Java继承了C++语言面向对象技术的核心,舍弃了C++语言中复杂和一些容易出错的特性,并在内存管理方面得到了增强。

web是指Internet 的图形、多媒体部分。万维网(环球网)(World Wide web)简称Web。Web 由众多Web 页组成。要浏览Web,可使用称为Web 浏览器的程序。参见“Internet”和“Web 页”。

Java Web 是指有Java语言开发出来可以在万维网上访问浏览的程序。

web通过一系列的通信实现与Java的交互,Java是你的后台,进行逻辑处理,中间层进行数据的交互,web显示给用户来看。

Java Web基础的技术栈

在这里插入图片描述

关于我们的客户端与服务端(BS)

类比生活中的服务端和客户端

在这里插入图片描述

  • 简单来说,我们的服务器就是来发布数据的,我们的客户端就是用来使用数据的,然后对数据进行使用(进行展示)

开发中服务器与客户端
在这里插入图片描述

我们客户端的形式

PC端网页

在这里插入图片描述

移动端

在这里插入图片描述

Iot设备

在这里插入图片描述

服务端应用程序

在这里插入图片描述

  • 我们开发的就是服务端应用程序
  • 我们所说的业务就是我们项目中的功能

关于请求(request)和响应(response)

类比生活中的请求和响应

在这里插入图片描述

服务器中的请求和响应

在这里插入图片描述

  • 我们客户端(浏览器)发送http请求,然后返回响应给我们的客户端,数据存储在响应中,然后我们的客户端对数据进行处理,就可以展示出我们看到的页面

项目的逻辑构成

  • 请求:请求是项目中最基本的逻辑单元,就像万事万物都由原子构成

    举例:点超链接跳转到注册页面

  • 功能:一个功能包含很多个请求

    举例:注册用户功能

    • 请求1:点超链接跳转到注册页面
    • 请求2:发送请求获取短信验证码
    • 请求3:检查用户名是否可用
    • 请求4:提交表单完成注册
  • 模块:一个模块包含很多功能

    举例:用户信息管理模块

    • 功能1:用户注册功能
    • 功能2:用户登录功能
    • 功能3:个人中心——账户安全功能
    • 功能4:个人中心——账户绑定功能
    • 功能5:个人中心——收货地址功能
    • 功能6:个人中心——我的银行卡功能
  • 子系统:根据项目规模的不同,子系统这层逻辑概念可能有也可能没有。如果设置了子系统,那么子系统中也必然包含很多模块。其实庞大项目的子系统已经相当于一个项目了,甚至比小型项目整个都大。

    举例:认证中心子系统

    • 模块1:用户信息管理模块
    • 模块2:权限管理模块
    • 模块3:授权管理模块
    • 模块4:权限检查模块
  • 项目:为了解决现实生活中的实际问题开发一个项目,这个项目就是为这个需求提供的一整套解决方案。

    举例:电商项目

    • 子系统1:认证中心子系统
    • 子系统2:商品管理子系统
    • 子系统3:购物车子系统
    • 子系统4:仓储子系统
    • 子系统5:物流子系统
    • 子系统6:订单子系统

在这里插入图片描述

架构

概念

『架构』其实就是项目的『结构』。只不过『结构』这个词太小了,不适合用来描述项目这么大的东西,所以换了另一个更大的词:架构。所以当我们聊一个项目的架构时,我们聊的是项目是由哪些部分组成的。

发展演变历程

单一架构

一个项目就是一个工程,这样的结构就是单一架构,也叫all in one。我们现在的JavaWeb阶段、SSM阶段都是学习单一架构开发技术。

所以这个阶段,先学习单一架构的技术体系

分布式架构

一个项目中包含很多工程,每个工程作为一个模块。模块之间存在调用关系。分布式架构阶段的技术分为两类:

  • Java框架:SpringBoot、SpringCloud、Dubbo等等。
  • 中间件:Redis、ElasticSearch、FastDFS、Nginx、Zookeeper、RabbitMQ等等。

在这里插入图片描述

单一架构的技术体系

在这里插入图片描述

./images

视图层

视图:用户的操作界面+数据的动态显示

  • 前端技术:HTML/CSS/JavaScript

    • 这一部分简单进行学习,没有太高的要求
  • 服务器端页面模板技术:Thymeleaf

    • 了解视图渲染和模板引擎的原理

控制层

处理请求+跳转页面

  • 服务器:Tomcat

    • 我们的服务器的功能是能够识别我们的HTTP请求
  • 控制器:Servlet

    • 能把我们的请求对应我们的Java代码
  • 域对象:request、session、servletContext

    • 了解不同域对象的有效范围和针对不同的有效范围进行不同的运用
  • 过滤器:Filter

    • 比如利用过滤器来实现我们的事务管理
  • 监听器:Listener

    • 比如监听上下文启动,在上下文启动的时候去创建IOC容器,将其保存application的作用域中
  • 异步交互:Ajax

    • 我们在不使用第三方工具的情况下,从浏览器发送请求给服务器
      • 表单发送
      • 利用ajax发送

业务逻辑层

业务逻辑计算,我们自己编写我们的Java代码,实现我们项目的功能

持久化层

操作数据库,获取和存储数据

  • 利用JDBC技术来实现Java代码对数据库的操作
  • JDBC技术控制数据库,有太多的冗余代码,所以会进一步学习Mybatis来简化操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS权威指南(六)文字属性

1.缩进和行内对齐 (1)缩进文本(text-indent) text-indent属性把元素的第一行文本缩进指定的长度,缩进的长度可以可以是负值。这个属性通常用于缩进段落的第一行。text-indent作用于块级元素之上,缩进将沿着…

config:配置中心

Spring Cloud Config 为分布式系统中的外部配置提供服务器端和客户端支持。使用 Config Server,您可以集中管理所有环境中应用程序的外部配置。 Spring Cloud Config就是一个配置中心,所有的服务都可以从配置中心取出配置,而配置中心又可以从…

mmap(内存映射)、sendfile() 与零拷贝技术

内存映射(Memory-mapped I/O)是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件。 RocketMQ为什么快?kafka为什么快?什么是mmap?这些问题都逃不过一个点,就是零拷贝。 虽然还有其…

电脑不能开机的几个常见原因

现在手机已经将电脑取代了,用电脑的越来越少,因为一些原因上网课的多了起来,大家都将放置几年的电脑搬了出来,开不开机的大有人在,由于机器闲置很久大多都出现了各种各样的故障和问题,在这里总结了电脑台式…

C语言:浮点型存储方式

浮点型存储方式 任意一个二进制浮点数V可以表示成下面的形式 (-1)^S *M *2^E 1(S符号位) 8(E阶码) 23(M尾码)省略首位1 S:表示正负 只有0/1两个值 M:由浮点数转化成二进制数表示 在…

4.7、IPv4 数据报的首部格式

固定部分:每个 IP 数据报首部都必须包含的内容 某些 IP 数据报的首部除了包含 202020 字节的固定部分外,还包含一些可选的字段来增加 IP 数据报的功能 IP 数据报的首部常以 323232 个比特为单位进行描述 图中的每一行都由 323232 个比特(也…

小波分析——4.使用小波对信号成分进行分析

文章目录首先创建一个包含多频率成分的信号然后我们用数学实现一个墨西哥草帽小波然后我们开始对原始信号进行处理吧接下来可以把信号成分进行绘制在前面的章节里已经介绍过小波的理论、公式等知识点,现在我们来看看如何用小波来实现对复杂信号的成分分析。 在我们…

性能优化系列之『HTML5 离线化:主流的技术实现方案有哪些?』

文章の目录一、离线包类型二、离线包架构三、离线包下载四、离线包运行模式五、大厂离线包方案写在最后一、离线包类型 全局离线包:包含公共的资源,可供多个应用共同使用私有离线包:只可以被某个应用单独使用 二、离线包架构 三、离线包下载…

Fairness in Recommendation: A Survey 阅读笔记

论文链接 搁置了许久的毕设,又要开始重新启航。 2022年的最后一段时间过得真是很崎岖,2023希望大家平安喜乐。 课设还未结束,但是毕设不能再拖,开工啦!这又是一篇综述,有关推荐系统中的公平性,…

5.Isaac教程--创建Isaac应用

创建Isaac应用 本教程将指导您完成使用 Isaac SDK 创建机器人应用程序的过程,以视频输入的 OpenCV 边缘检测处理为例。 文章目录创建Isaac应用预安装显示相机源创建应用程序文件启用节点间通信配置组件创建 Bazel 构建文件运行应用程序查看相机源处理相机源添加边缘…

1.6日报

以redis为基础完成 addCacheData getCacheDataByUniqueId delCacheDataByUniqueId 并且测试通过。 升级getQRcodeAndScene接口,添加版本参数,实现“不同环境取不同小程序版本“功能 并添加扫码跳转页面功能。 遇到的问题及解决 加深对RequestBody…

性能优化系列之『HTTP-2 :升级HTTP-2的好处有哪些?如何升级?』

文章の目录一、HTTP/2 概念二、HTTP/2 优点三、HTTP/2 站点的优势四、在 Nginx 上启用 HTTP/21、升级 OpenSSL2、重新编译3、验证 HTTP/24、浏览器请求截图写在最后一、HTTP/2 概念 HTTP/2(超文本传输协议第2版,最初命名为 HTTP 2.0)&#x…

【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知Advice注解

文章目录前言AOP与Spring AOPAspect简单案例快速入门一、Pointcutannotation二、五种通知Advice1. Before前置通知2. After后置通知3. AfterRunning返回通知4. AfterThrowing异常通知5. Around环绕通知总结前言 在微服务流行的当下,在使用SpringCloud/Springboot框…

分布式基础篇3——前端开发基础知识

前端技术对比一、ES61、简介2、什么是 JavaScript3、ES6新特性3.1 let3.2 const3.3 解构表达式3.4 字符串扩展3.5 函数优化3.6 对象优化3.7 map 和 reduce3.8 Promise3.9 模块化二、Vue1、MVVM 思想2、Vue 简介3、Vue 入门案例4、Vue 指令插值表达式v-text、v-htmlv-bindv-mode…

景区地图最短路径快速实现

1 前言以前粗略学习了一下在地图中实现最短路径,并在切图工具中实现了自动处理生成导航相关数据。https://blog.csdn.net/bq_cui/article/details/86795213最近发现工具实现的结果,错误一大堆。这次再详细捋一捋整个步骤,感兴趣的同学可以试一…

ctemplate 的安装和使用

ctemplate 用于linux下的web开发,可以动态生成一个html网页,这里的 “ 动态 ” 指的是网页的数据不是固定的,可以使用变量来填充网页内容。 目录 1、下载ctemplate 2、安装 ctemplate 3、使用ctemplate库 1、下载ctemplate 可以在gite…

前端对接微信公众号网页开发流程,授权对接

前面讲到 前端对接微信公众号网页开发流程,前期配置,本篇文章主要详细介绍关于公众号的授权对接。 一、引入微信js-sdk 在需要调用 JS 接口的页面引入如下 JS 文件 http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需进一步提升服务稳定性&#xff0…

如何在windows上使用VMware安装macOS虚拟机

如何在windows上使用VMware安装macOS虚拟机一、准备工作1.1 安装 VMware1.2 下载macOS的安装包1.3 下载VMware虚拟机解锁安装苹果系统工具二、解锁VMware支持macOS安装2.1 关闭已经打开的VMware软件2.2 安装VMware Workstation Unlocker三、VMware创建虚拟机3.1 解压缩macOS的安…

【蓝桥杯】X 进制减法

难点一&#xff1a;base base * s[i] % mod;//***当前位乘以x&#xff0c;x要*s[i],一直要乘到个位的进制难点二&#xff1a;当当前该位的的进制位&#xff0c;为max(max(a[i]1, b[i]1), 2)的时候&#xff0c;结果最小ACcode:#include<iostream>using namespace std;con…

性能优化系列之『混合式开发: React Native内核及优势介绍』

文章の目录一、React Native愿景二、技术优势1、技术2、效率3、发版三、底层内核1、RN&#xff1a;helloWorld.jsx2、iOS&#xff1a;helloWorld.m3、Android&#xff1a;helloWorld.xml4、Web&#xff1a;helloWorld.html四、行业背景五、选型建议写在最后一、React Native愿景…