JavaWeb:JavaWeb技术架构演进

article/2025/9/16 9:14:45

Java Web,是用 Java 技术来解决相关web互联网领域的技术栈。web 包括:web 服务端和 web 客户端两部分。Java 在客户端的应用有 Java Applet,不过使用得很少,Java 在服务器端的应用非常的丰富,比如 Servlet,JSP、第三方框架等等。Java 技术对 Web 领域的发展注入了强大的动力。

本篇内容包括:JavaWeb 简介、JavaWeb 技术架构演进的各个阶段,即 JavaWeb-Servlet 阶段,JavaWeb-MVC 阶段(SSM/SSH)以及 JavaWeb-SpringBoot 阶段 的相关内容!


  • 下一篇内容:JavaWeb:Servlet的应用及接口介绍
  • 更多知识学习:全网最全的 Java 技术栈内容梳理(持续更新中)

文章目录

    • 一、JavaWeb 简介
    • 二、JavaWeb-Servlet 阶段
        • 1、JavaWeb-Servlet 阶段
        • 2、JSP+JavaBean+Servlet
    • 三、JavaWeb-MVC 阶段
        • 1、MVC 模式概述
        • 2、MVC 模式优点
        • 3、MVP 模式
        • 4、MVVC 模式
    • 四、JavaWeb-SSH/SSM 阶段
        • 1、SSH 框架
        • 2、SSM 框架
    • 五、JavaWeb-SpringBoot 阶段


一、JavaWeb 简介

Java Web,是用 Java 技术来解决相关web互联网领域的技术栈。web 包括:web 服务端和 web 客户端两部分。Java 在客户端的应用有 Java Applet,不过使用得很少,Java 在服务器端的应用非常的丰富,比如 Servlet,JSP、第三方框架等等。Java 技术对 Web 领域的发展注入了强大的动力。


二、JavaWeb-Servlet 阶段

1、JavaWeb-Servlet 阶段

在 Web 应用处于最初期时,主要用于浏览静态 Html 页面,浏览器通过请求向 Http 服务器端(比如 Apache、Nginx)获取并解析 Html 页面。

直到后来,随着互联网技术的发展,需要开始可以提供一些扩展机制能够让 HTTP 服务器调用服务端程序,以此来使用户通过一些交互操作,来获取动态结果。而 Sun 公司做出的改变,是推出了 Servlet 技术。

我们可以把 Java 中的 Servlet 理解为一个可以运行在服务器上的 Java 程序,但是这个 Java 程序,并不能独立运行(因为 Servlet 没有 main 方法),需要部署在相应的 Servlet 容器中,比如 Tomcat 和 Jetty。

2、JSP+JavaBean+Servlet

Java Servlet 出现后,最主要的一个使用场景就是:「Servlet + JavaBean + JSP」 的方式.

在 Java Servlet 出现以前,Java 操控网页的方式如下:

  1. JSP 方式:JSP 相当于在 Html 页面中加上 Java 代码,一般在 <body> 标签中放入主要代码。那时候的 Web 开发基本都是在 JSP+JavaBean 上完成的。更有甚着直接把页面、逻辑、数据处理全都写在 JSP 上,但这种方式开发的项目代码不仅乱、而且耦合性相当高,造成项目难以维护。
  2. JSP+JavaBean 方式:相较于数据处理全都写在 JSP 上,JSP+JavaBean 的方式在一定程度上解耦了,但 JSP 依旧要负责页面控制以及请求与响应的处理,职责不单一。耦合度依旧比较高,高度耦合的结果是 JSP代码 十分复杂混乱,后期维护很困难。

在 Java Servlet 出现以后,,Java 操控网页的方式如下:

  1. JSP+JavaBean+Servlet 方式:这种方式下 JSP 只需负责页面控制,而数据的验证则有 Servlet 来承担,JavaBean 负责具体的业务逻辑与数据处理、封装以及和数据库交互等。
image-20221113233647391

Ps:在此时,JSP+JavaBean+Servlet 这种模式上已经开始有点 MVC 的影子了,但是这种模式还不能称之为一个比较完善的 MVC 设计模式。但这种模式相对于之前的两种模式(JSP、JSP+JavaBean)来说分工更明确,抽取出了 Servlet 层,体现了一个简单的分层思想。


三、JavaWeb-MVC 阶段

1、MVC 模式概述

MVC(Model–view–controller)模式,最早由 Trygve Reenskaug 在 1978 年提出,它是软件工程中的一种软件架构模式,其把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式透过对复杂度的简化,使程序结构更加直观。软件系统透过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。

  • 模型(Model):程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
  • 视图(View):界面设计人员进行图形界面设计。
  • 控制器(Controller):负责转发请求,对请求进行处理。
image-20221113234114113

MVC 模式各部分之间的通信方式:View 传送指令到 Controller ,Controller 完成业务逻辑后,要求 Model 改变状态,Model 将新的数据发送到 View,用户得到反馈,所有通信都是单向的。

Ps:接受用户指令时,MVC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controlle、另一种是直接通过 Controlle 接受指令。一般在实际项目中往往采用更灵活的方式,通常会把这两种方式结合在一起。

2、MVC 模式优点

  • 在 MVC 设计模式中, Model 响应用户请求并返回响应数据,View 负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个 Model 可以被不同的 View 重用,所以大大提高了代码的可重用性。
  • MVC 模式的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的少互扰性的构件。
  • Controller 提高了应用程序的灵活性和可配置性。

3、MVP 模式

MVP(Model View Presenter)是由 MVC 演变而来,它和 MVC 的相同之处在于:Controller / Presente 都是负责业务逻辑,Model 管理数据,View 负责显示。

不过在 MVP 中 View 并不直接与 Model 交互,它们之间的通信是通过 Presenter (MVC 中的 Controller)来进行的,即使用 Presenter 对视图和模型进行了解耦,让它们彼此都对对方一无所知,沟通都通过 Presenter 进行。

mvp

  • Model层:模型(用于封装业务逻辑相关的数据以及对数据的操纵)
  • View层:视图(渲染图形化界面,也就是所谓的UI界面)
  • Presenter层:控制器(M和V之间的连接器,主要处理业务逻辑,包括显示数据,界面跳转,管理页面生命周期等)

4、MVVC 模式

MVVM 全名为 Model View ViewModel ,早在 2004 年,Martin Fowler 发表了一篇名为 Presentation Model (以下简称为 PM 模式)的文章,PM 模式与 MVP 比较相似,它从视图层中分离了行为和状态;PM 模式中创建了一个视图的抽象,叫做 Presentation Model,而视图也成为了这个模型的『渲染』结果。MVVM 与 Martin Fowler 所说的 PM 模式其实是完全相同的,Fowler 提出的 PM 模式是一种与平台无关的创建视图抽象的方法,而 Gossman 的 MVVM 是专门用于 WPF 框架来简化用户界面的创建的模式;我们可以认为 MVVM 是在 WPF 平台上对于 PM 模式的实现。

Ps:可以看到,从 MVC->MVP->MVVM,就像一个打怪升级的过程,后者解决了前者遗留的问题,把前者的缺点优化成了优点。同样的 Demo 功能,代码从最开始的一堆文件,优化成了最后只需要 20 几行代码就完成


四、JavaWeb-SSH/SSM 阶段

在 MVC(Model View Controller)思想开始成为主流是,JavaWeb 出现了两种最火爆的框架模式:SSH 框架/SSM 框架。

1、SSH 框架

SSH是 struts+spring+hibernate 的一个集成框架,是 16 年之前较为流行的一种 Web 应用程序开源框架。

集成 SSH 框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的 Web 应用程序。

  • Struts 作为系统的整体基础架构,负责 MVC 的分离,在 Struts 框架的模型部分,控制业务跳转;
  • Hibernate 框架对持久层提供支持;
  • Spring 做管理,管理 struts 和 hibernate。

应用程序被分割成这三大部分之后,各自处理自己的任务。视图层通过提取用户的输入信息,提交到控制器之后,控制器根据某种选择来决定这个请求交由给模型层来处理,模型层根据业务逻辑的代码处理用户请求并返回数据,并最终用视图层展示给用户。

2、SSM 框架

SSM(Spring+SpringMVC+MyBatis)框架集由 Spring、MyBatis 两个开源框架整合而成,其中 SpringMVC 是 Spring 中的部分内容,常作为数据源较简单的 Web 项目的框架。

# Spring

Spring 就像是整个项目中装配 Bean 的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。

Spring 的核心思想是 IoC(控制反转),即不再需要程序员去显式地 new 一个对象,而是让 Spring 框架帮你来完成这一切。

# SpringMVC

SpringMVC 在项目中拦截用户请求,它的核心 Servlet 即 DispatcherServlet 承担中介或是前台这样的职责,将用户请求通过 HandlerMapping 去匹配 Controller,Controller 就是具体对应请求所执行的操作。SpringMVC 相当于 SSH 框架中 struts。

# Mybatis

Mybatis 是对 jdbc 的封装,它让数据库底层操作变的透明。Mybatis 的操作都是围绕一个 sqlSessionFactory 实例展开的。mybatis通 过配置文件关联到各实体类的 Mapper 文件,Mapper 文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过 sqlSessionFactory 拿到一个 sqlSession,再执行 Sql 命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。


五、JavaWeb-SpringBoot 阶段

SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

SpringBoot

SpringBoot 特点:

  • 可以创建独立的 Spring 应用程序
  • 嵌入的 Tomcat,无需部署 WAR 文件
  • 简化 Maven 配置
  • 自动配置 Spring
  • 提供生产就绪型功能,如指标,健康检查和外部配置
  • 绝对没有代码生成以及不要求配置 XML

Ps:SpringBoot 虽然目的是为了简化 Spring,似乎看起来无需去学习 Spring 的繁琐配置,但是如果没有忍受过Spring的繁琐配置,没有经历过架构模式的演进以及 JavaWeb 基础的话,在使用SpringBoot 的过程中就容易出现没有遇到过的错误,也不知道如何去解决。


http://chatgpt.dhexx.cn/article/Bdvh2VLh.shtml

相关文章

什么是JAVAweb?

文章目录 JAVAweb一、基本概念1、web开发&#xff1a;2、web应用程序3、静态web4、动态web JAVAweb 一、基本概念 1、web开发&#xff1a; web&#xff1a;网页的意思&#xff0c;它用于表示Internet主机上供外界访问的资源&#xff0c;例如&#xff1a;www.jd.com; 静态web …

Eclipse 创建JavaWeb工程

Eclipse 创建JavaWeb工程 配置环境&#xff1a; ​ Eclipse&#xff1a;Version: 2022-06 ​ tomcat&#xff1a;9.0.65 创建Web工程流程 1.先在Eclipse上配置tomcat&#xff0c;打开Eclipse&#xff0c;选择菜单栏上的Window–>Preferences–>在下拉菜单中找到Serv…

什么是javaWeb

什么是JavaWeb 简单理解&#xff1a; javaWeb是指&#xff0c;我们通过java语言编写的所有程序&#xff0c;这些程序是得可以通过浏览器来访问的。 web不就是网的意思嘛&#xff0c;所以javaweb可以简单理解就是我通过发送请求的方式来访问我编写的Java程序。 浏览器如何访…

JavaWeb详解

JavaWeb动态Web资源开发 静态Web: 用户看到的数据始终不变;动态Web:各人看到的信息不同动态Web:1.页面动态展示,淘宝"千人千面";2.和数据库交互 Web应用程序:给浏览器访问的程序 静态Web动态Web 浏览器访问网络资源流程图 客户端通过网络协议(如Http),请求进入服…

JavaWeb是什么?简单的理解!

终于考试周结束了 紧接着的就是一顿迷茫,我学的啥?我自己怎么不知道??? 好吧,这里整理一份JavaWeb的笔记吧! 不知道大家怎么想的,对于不同的人会有不一样的理解,在这里我想总结一下我的个人看法: 很多高手都会告诉你JavaWeb是一个技术的总和,或者说是一种技术体系,都是…

一、什么是JavaWeb?

1、基本概念 1.1、什么是JavaWeb&#xff1f; Java Web是用Java技术来解决相关web互联网领域的技术栈。web包括&#xff1a;web服务端和web客户端两部分。Java在客户端的应用有Java Applet&#xff0c;不过使用得很少&#xff0c;Java在服务器端的应用非常的丰富&#xff0c;…

JavaWeb是什么?总结一下JavaWeb的体系

JavaWeb是什么&#xff1f;通过最近在尚硅谷上学习&#xff0c;分享一下 Java WEB前言JavaWeb的技术体系登录页面的开发涉及的技术知识点HTML是什么? 登录功能实现-环境的搭建涉及的技术知识点Web服务器Tomcat服务器的安装及配置在eclipse中配置tomcat创建动态的web工程 登录功…

JavaWeb是什么?如何学习JavaWeb的体系

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

javaweb基本概念

文章目录 什么是javawebweb资源的分类常用的web服务器 什么是javaweb 什么是javaweb Javaweb是指&#xff0c;所有通过java语言编写的可以通过浏览器访问的程序的总称&#xff0c;叫javaweb。 javaweb是基于请求和响应来开发的。 什么是请求 请求是指客户端给服务器发送数据&a…

“在禁用 UAC 时,无法激活此应用”问题解决

微信推送消息的脚本运行时报这个错误 打开cmd窗口&#xff0c;输入以下命令&#xff1a; 如图所示位置找到EnableLUA&#xff0c;双击 重启&#xff01;&#xff01;&#xff01;

彻底关闭Windows操作系统的UAC功能

前言 新装的Windows操作系统默认开启了UAC&#xff08;User Account Control&#xff0c;用户账户控制&#xff09;&#xff0c;每当用户、程序对计算机进行修改时&#xff0c;都会弹出繁琐的提示框。即使通过控制面板进行UAC级别调整&#xff0c;也无法避免某些情况下依旧被弹…

Win11如何关闭UAC?

小伙伴们都知道UAC的功能通常是指用户账户控&#xff0c;该功能会在我们修改系统设置的时候弹出各种提示框&#xff0c;但有不少使用Win11系统的小伙伴想要关闭却不知道如何操作&#xff0c;下面就和小编一起来看看Win11是如何关闭UCA的吧。 Win11关闭UAC的方法 1、首先我点击底…

聚沙——关于禁用UAC的解决办法(Win8 System)

小伙伴们&#xff0c;有没有遇到过电脑打不开图片的尴尬情况呢~是不是觉得它很不好很不好呢 下面就让我们看看怎么解决这个小麻烦吧 WIN8打开图片或PDF时提示在禁用UAC时&#xff0c;此应用程序无法激活 解决办法: 1.键盘windows图标“X”&#xff0c;选择运行&#xff1b; 2.在…

”在禁用UAC时,无法激活此应用“问题

重装完系统后&#xff0c;打开图片、PDF书籍或是其他一些东西的时候&#xff0c;总是会出现“在禁用UAC时&#xff0c;无法激活此应用”的问题。 之前解决过一次&#xff0c;是在注册表里改了一个东西&#xff0c;但是就会失去管理员权限&#xff0c;这两个是冲突的&#xff0c…

win8 上如何真正禁用UAC

转自MSDNhttp://blogs.msdn.com/b/hyperyash/archive/2012/07/18/disabling-user-account-control-in-windows-8.aspx Disabling User Account Control (UAC) in Windows 8 With the new User Interface of Windows 8, accessing simple panels and doing easy tasks can be …

UAC遭禁用?UAC知识了解

大家都晓得,Win 8系统有自带的音乐和视频播放器,所以用自带的播放器听听音乐看看视频,效果也是不错的。恰好有几首Taylor的歌,所以想试试系统自带的音乐功能,but当我选择使用音乐播放的时候,弹出了一个对话框,如下。(对话框没有来得及截图,百度了一只相似的) …

通过注册表永久禁用系统UAC功能

打开如下注册表键&#xff1a; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 打开方法如下&#xff1a; 点击确定后打开注册表编辑器&#xff0c;修改如下图&#xff1a; 修改EnableLUA值为0 修改完成后&#xff0c;重启电脑生效。

在禁用UAC时无法激活此应用

在使用win10系统时&#xff0c;提升管理员权限之后&#xff0c;打开图片提示“在禁用UAC时无法激活此应用”错误信息。win8可以选择使用windows照片查看器&#xff0c;但是win10上操作时&#xff0c;找不到该功能&#xff0c;此情况就需要自己重新设置一下注册表才行。具体如下…

在禁用UAC时,无法激活此应用

安装的win8系统当我们打开图片或其他应用是&#xff0c;有时会弹出如下问题&#xff1a; 关于UAC的解释&#xff0c;百度百科是这样说的&#xff1a; http://baike.baidu.com/view/750250.htm 经查询&#xff0c;解决如下&#xff1a; WinR运行如下指令MSconfig&#xff1a; 在…

在禁用uac_如何(真正)在Windows 7上完全禁用UAC

在禁用uac One of the best feature changes in Windows 7 is the greatly improved User Account Control system, with a slider to easily control how much the security feature annoys you. But what if you want to really disable UAC entirely? Windows 7中最好的功能…