JavaWeb - Web网站的组成,工作流程以及开发模式

news2024/11/23 21:12:25

一. Web 

  • Web:全球广域网,也称玩万维网(www Wrold Wide Web),就是能够通过浏览器访问的网站
  • 学习Web开发,其实就是要使用Java这门语言来开发这样的Web网站,这也是现在Java语言最主流的企业级应用方式。
  • 使用Java语言开发的网站有很多,比如像淘宝,京东,唯品会这样的电商系统,还有像CRM、OA、ERP这样的企业内部的管理系统。
  • Java工程师主要负责的是这些项目当中服务端业务接口的开发。

一个Web网站程序的组成部分: 

  • 你要上网访问网站,首先你得打开浏览器,在浏览器地址栏输入对应的域名,比如www.jd.com,可以访问到京东网站,首先浏览器它是一个程序,而我们访问的京东网站它也是一个程序,只不过这个程序是在人家京东那边的电脑上运行着,我们只是通过浏览器远程访问而已。
  • 而京东这个网站程序,大体是由三个部分组成的,第一个部分就是我们所看到的这样的网页程序,我们也称为前端程序,它主要负责将数据以好看的样式呈现出来,而前端程序它是运行在前端服务器当中的。
  • 第二个部分是数据库程序,我们刚才说前端程序它仅仅负责将数据以好看的样式展示出来,那数据在哪里存储和管理呢?其实,数据就是在数据库程序当中存储和管理的,我们也称为数据库服务器。
  • 那第三个部分,就是后端我们编写的Java程序,后端Java程序是运行在后端服务器当中的,这个后端程序它主要负责数据的逻辑处理。

Web网站的工作流程: 

  • 首先,用户在浏览器地址栏输入域名之后,一敲回车,那么此时浏览器就会根据请求的域名请求对应的前端服务器,前端服务器接收到请求之后,会把对应的前端代码返回给浏览器,刚才我们说过浏览器也是一个程序,在浏览器里面呢就内置了解析前端代码的解析引擎,那浏览器接收到前端代码以后会自动解析前端的代码,从而展现出对应的页面样式。

  • 比如我们来看一下,前端代码将来就长这个样子:

  • 而现在浏览器解析前端代码呢,会呈现出一些网页结构,我们可以看到这个网页只有一个基本的结构,没有数据,如果没有数据,那网页将来就长这个样子,只是一个空架子,接下来就要去获取数据了,在前端代码当中,都会去指定去哪获取数据,url这个位置就是获取数据的请求路径

  • 将来浏览器解析到前端代码当中的这个数据获取路径以后,浏览器就会拿着这个路径去访问部署在后端服务器当中后端Java程序,那后端程序呢继续访问数据库,数据获取之后,那接下来后端服务器会将数据再返回给浏览器

  • 那此时前端代码和数据都有了,浏览器就会将数据填充在刚才的空架子的前端页面当中,从而形成了这样一个完整的页面,呈现给用户,这就是Web网站的整体工作流程。

 

Web网站的开发模式:

前后端分离开发

  • 它的特点是:前端人员开发前端程序,然后将开发完成的前端程序放在前端服务器上运行Java开发工程师负责开发后端Java程序,然后将开发完成的后端Java程序放在后端服务器上运行前端程序和后端程序的开发和部署都是分开的,那这种开发模式呢我们称之为前后端分离开发。

 混合开发:

  • 其实呢,在早期还有一种开发模式,是将前端程序和后端程序都混合在一起进行开发,最终,前后端程序都在一台服务器上运行浏览器发起请求到服务器后,服务器呢会将数据以及前端代码一并返回给浏览器,浏览器再来进行解析和展示,那在这种开发模式当中,前端程序和后端程序的开发和部署都是混合在一起的,那这种方式呢,我们称之为混合开发。

 总结:

 

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

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

相关文章

Nginx基本配置 Nginx服务基础Nginx访问控制Nginx虚拟主机

本章结构 Nginx服务基础 Nginx访问控制 Nginx虚拟主机 原理: 关于Nginx 一款高性能、轻量级Web服务软件 稳定性高 系统资源消耗低 apache多线程或多进程实现连接(多线程比多线程稍微好些,切换资源浪费少) Nginx单线程 对HTTP并发…

自己动手写CPU——第二篇

1 ori指令说明 ori是进行逻辑 或 运算的指令,其指令格式如下所示 从以上的指令格式,我们可以直到,这是一个I类型指令,ori指令的指令码是 6‘b001101,所以当处理器发现正在处理的指令的高6bit 是 001101 的时候&#x…

vue3 css相关知识与动态style

scoped 当 <style> 标签带有 scoped attribute 的时候&#xff0c;它的 CSS 只会影响当前组件的元素&#xff0c;和 Shadow DOM 中的样式封装类似。 <style scoped lang"scss"> </style> 注意 &#xff1a; 作用域样式并没有消除对 class 的需求…

DN-DETR源码学习记录

DN-DETR是在DAB-DETR的基础上完成的&#xff0c;DN-DETR的作者认为导致DETR类模型收敛慢的原因在于匈牙利匹配所导致的二义性&#xff0c;即匈牙利算法匹配的离散性和模型训练的随机性&#xff0c;导致ground-truth的匹配变成了一个动态的、不稳定的过程。举个例子&#xff0c;…

字节青训营(前端)打卡day01_计网

计算机网络概论 1.前沿和课程介绍 自顶向下、自底向上 网络分层、网络协议、网络应用、HTTP123、CDN GPT. 计算机网络的发展历程可以分为四个阶段&#xff1a;单机、局域网、广域网、互联网 2.蟹堡王帝国 顾客&#xff1a;客户端 分店&#xff1a;服务端 小区转发点&…

【FFmpeg】编码器流程分析

目录1 编译2 调用关系2.1 第一帧没有获取到码流&#xff0c;第二帧获取到一帧码流2.2 送帧为NULL&#xff0c;刷新编码器获取剩余的全部码流3 总结4 感受1 编译 参考文件doc/examples/encode_video.c&#xff0c;使用x264作为编码器&#xff0c;需要先安装x264&#xff0c;编译…

如何用ChatGPT写毕业论文?

老早之前就听说有同学用ChatGPT写论文了 但是一直不觉得人工智能够真的替代人类 正好最近毕业论文开始降重了&#xff0c;超高的重复率愁得我快睡不着了 刷微博突然看到这个有关ChatGPT的问题。 出于好奇的我决定先来试试这个ChatGPT到底能不能帮我解决降重问题哈哈哈 点击…

shell脚本基础之处理脚本输入

处理输入命令行参数读取参数读取脚本名测试参数特殊参数变量参数统计获取所有参数移动变量处理选项查找选项处理简单选项分离选项和参数处理带值的选项getopt 命令命令格式在脚本中使用getoptgetopts命令脚本选项标准化获取用户的输入基本的读取超时隐藏式读取文件中读取在此之…

Linux命令·ifconfig

许多windows非常熟悉ipconfig命令行工具&#xff0c;它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具&#xff0c;也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使…

OpenFeign#1 - FeignClient 是如何注册的?

文章目录EnableFeignClientsFeignClientsRegistrarregisterDefaultConfigurationregisterFeignClientsFeignClientFeignClientFactoryBeanFeignContextfeign(FeignContext)EnableFeignClients 该注解会导致 FeignClientsRegistrar 的注入. Retention(RetentionPolicy.RUNTIME…

Redis AOF

一、Redis AOF 1.简介 目前&#xff0c;redis的持久化主要应用AOF(Append Only File)和RDB两大机制。AOF以日志的形式来记录每个写操作(增量保存),将redis执行过的所有写指令全部记录下来(读操作不记录)。只许追加文件&#xff0c;但不可以改写文件。redis启动之初会读取该文…

自动化测试学习(七)-正则表达式,你真的会用吗?

目录 一、正则表达式在python中如何使用 二、用正则表达式匹配更多模式 三、常用字符分类的缩写代码 总结 所谓正则表达式&#xff08;regex&#xff09;&#xff0c;就是一种模式匹配&#xff0c;学会用正则匹配&#xff0c;就可以达到事半功倍的效果。 一、正则表达式在…

工程管理系统软件 自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

在 Web3 里如何寻找靠谱的创新路径——Solv V3 阶段性复盘(上)

作者&#xff1a;Solv 核心团队Solv V3 是 3 月 21 日发布的&#xff0c;到这周一整整三个星期。三周时间产生的实际交易额超过 6,000 万美元&#xff0c;预计在本月内能够破亿。而且从我们手上的 pipeline 来看&#xff0c;这个增长的势头还将持续下去。在几个月内&#xff0c…

「Long HK, Long Crypto」主题酒会在香港圆满举行!Web3er齐聚一堂共叙行业发展

「2023 香港 Web3 嘉年华」是香港有史以来规模最大的加密货币活动之一&#xff0c;邀请了300多位行业领袖、区块链项目创始人、投资人、监管机构代表、专家学者&#xff0c;为每一位参与者带来前沿的 Web3 技术&#xff0c;共同探讨 Web3 未来发展的关键问题。 Web3相关的各大…

OpenCV实战(19)——特征描述符

OpenCV实战&#xff08;19&#xff09;——特征描述符0. 前言1. 特征描述符2. 提升匹配集质量2.1 交叉检查匹配2.2 比率测试2.3 距离阈值3. 完整代码小结系列链接0. 前言 SURF 和 SIFT 关键点检测算法为每个检测到的特征计算位置、方向和比例&#xff0c;比例因子信息可用于定…

RestClient查询文档

文章目录1、RestClient查询文档----快速入门2、查询文档--match、term、range、bool3、查询文档-排序和分页4、高亮1、RestClient查询文档----快速入门 基本步骤 1.先创建SearchRequest对象&#xff0c;调用source方法&#xff08;DSL&#xff09;——>相当于红框内的大jso…

最前端|什么是低代码?与传统开发的区别是什么?

目录一、低代码介绍二、背景趋势三、低代码与传统代码开发&#xff08;一&#xff09;低代码能否替代传统开发低代码页面传统开发页面&#xff08;二&#xff09;相同业务不同方式对比1.低代码开发&#xff08;1&#xff09;优点&#xff08;2&#xff09;缺点2.传统代码开发&a…

实现一个登录功能方案设计2

需求MySQL表实现方案index页面home页面需求 实现一个登录功能 实现的功能 注册(邮箱注册)登录(邮箱密码)重置密码查看操作记录(登录, 注册, 重置密码, 登出. 都算操作)登出在第一版的基础上进行优化:\ 优化点: 存操作信息请求的post使用中间件进行储存操作信息.避免重复代码 因…

【面试】如何设计SaaS产品的数据权限?

文章目录前言数据权限是什么&#xff1f;设计原则整体方案RBAC模型怎么控制数据权限&#xff1f;1. 数据范围权限控制2. 业务对象操作权限控制3. 业务对象字段权限控制总结前言 一套系统的权限可以分为两类&#xff0c;数据权限和功能权限&#xff0c;今天我们从以下几个点&am…