JavaWeb学习笔记(一)—— JSP基础 目录零、前言一、互联网软件基本模式1.1 分布式工作1.2 三层架构和MVC设计模式二、web前端基础三、JSP—— Java Server Pages3.1 什么是jsp3.2 jsp页面3.3 jsp的运行环境3.4 jsp的运行原理3.5 jsp是servlet的简化3.6 接下来的内容需要结合Tomcat所以进入下一篇博客零、前言我一直在考虑的一个问题是JSP属于前端还是后端现在逐渐有了答案。更多的是倾向于后端初学的时候一直没有下结论是因为当初认为一种技术“属于前端”和“属于后端”是互斥事件只能属于其中的一种。后来对于node.js的学习让我意识到前后端没有明确的界限因为node.js就是一个让前端变得后端化的工具。前端 vs 后端看代码最终在哪里执行发给浏览器执行的是前端代码HTML/CSS/JS。在服务器上执行的是后端代码PHP/Java/Go/Node.js。还有一个问题我为什么又学习一遍Javaweb哈哈哈没错我就是跟着狂神学的Java。因为最近在学springboot这个框架我发现不学习spring就没法学springboot然而如果没有系统学习Javaweb就听不懂spring里面的maven、servlet、controller等等。所以来复习一下Javaweb。对了有人用eclipse去写有人用IJ IDEA去写。而我当时做的练习比较简单没有下任何IDE直接用Windows自带的笔记本写的然后拖到浏览器看效果。一、互联网软件基本模式1.1 分布式工作一图彻底分清什么是客户端VS服务端前端代码VS后端代码。这两组概念并不是两组完全不相干的概念。前端指的是前端代码运行在客户端里前端 ⊆ 客户端。后端指的是后端代码运行在服务端里后端 ⊆ 服务端根据客户端不同又分成C/S架构和B/S架构C/S架构client/serverclient比如我们手机和电脑上的app又叫“胖客户端架构”前端代码存储在客户端减轻了服务器的负担但是客户端承受很大压力。C/S架构下前端代码存储在用户手机里只跟服务器互业务数据客户端代码本身不再传输。B/S架构下前端代码存储在公司服务器里只有在用户通过浏览器发送请求的时候服务器给浏览器发一份前端代码在浏览器运行。维护成本高因为软件更新的时候要升级整个app。这个弊端和静态链接库的弊端是一样的一旦更新了静态链接库需要重新编译整个程序而动态链接库只需要改动态库本身就可以了界面和操作相比于B/S来说更丰富想一下就明白同一款软件手机app比网页版本“精彩”得多B/S架构是C/S架构的特殊情况browser/serverbrowser就是浏览器啦又叫“瘦客户端架构”以上反之以上反之以上反之1.2 三层架构和MVC设计模式首先要明确的是这两个不是一个东西。MVC是一种设计模式而三层架构是一种软件架构。虽然不是同一个东西但是他们两个很容易混淆因为MVC这个概念以后用到的更多所以直接去记MVC就好啦。借鉴1浅谈 MVC与三层架构_李公子的博客-CSDN博客_mvc三层架构借鉴2 MVC与三层架构 - 简书先根据这张图理解M、V、C的具体含义是什么。Controller是核心或者看作一个大脑与V和M进行交互。其实Controller就类似于英伟达的Triton接收前端发来的请求去调用模型返回模型的结果。View为用户提供交互界面其实就是前端Model负责各个功能模块在这里一般称为业务二、web前端基础https://blog.csdn.net/qq_44886213/category_9941944.html?spm1001.2014.3001.5482三、JSP—— Java Server Pages3.1 什么是jspJSP是一种动态网页开发技术由于使用了Java自然开发的是动态网页。静态页面页面代码中没有动态程序由浏览器直接解释执行这个页面呈现的内容是“万年不变”的。动态页面在服务器Tomcat执行动态程序执行的结果连同页面的静态部分被发送到客户端的浏览器我们在浏览器中点击右键“查看页面源码”时是看不到动态代码的。举个栗子比如进入天气预报官网对于同一个网页你今天去看和明天去看看到的内容是不同的页面中日期、温度都会变化这就是页面的动态部分不变的页面颜色、页面框架结构呀这些属于静态部分。3.2 jsp页面两个记忆点jsp页面由Java程序片①用% %括起来 ②就是jsp的动态部分、jsp标签加入HTML页面组成可以简单记成HTMLJava命名“xxx.jsp”实际是一个文本文件。3.3 jsp的运行环境jsp的运行环境 Apache Tomcat JDK 浏览器3.4 jsp的运行原理手写了一下下分为服务器部分和客户端部分来理解比较好。其中要注意是由jsp文件得到的java文件有助于帮助我们理解以后要学习到的servlet这个概念。上图中得到的Java文件已经是一个静态页面了因为动态部分作为输出语句就是print也正是因为产生了很多输出语句打开Java文件会发现里面很乱。3.5 jsp是servlet的简化servlet是一个Java文件它本身就相当于上图中jsp产生的Java文件。由此可以看出jsp的产生虽然比直接用servlet多了一步但是从逻辑上简化了开发人员的代码编写。3.6 接下来要干的肯定是配置环境呀TomcatJDK 所以进入下一篇博客JavaWeb学习笔记二—— Tomcat 安装_玛丽莲茼蒿的博客-CSDN博客

相关新闻

最新新闻

从实验到实战:基于 Linux 系统调用构建 Hash 文件库的 5 个关键设计

从实验到实战:基于 Linux 系统调用构建 Hash 文件库的 5 个关键设计

从实验到实战:基于 Linux 系统调用构建 Hash 文件库的 5 个关键设计在 Linux 系统编程领域,文件操作是最基础也最核心的技能之一。然而,标准的 Linux 文件系统提供的流式文件接口虽然简洁灵活,却缺乏对随机检索的直接支持。本文将…

2026/7/6 22:35:58
WinBtrfs终极指南:打破Windows与Linux间的文件系统壁垒

WinBtrfs终极指南:打破Windows与Linux间的文件系统壁垒

WinBtrfs终极指南:打破Windows与Linux间的文件系统壁垒 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 你是否曾在双系统环境中遇到过这样的困境?在Linux中精心…

2026/7/6 22:35:58
JavaScript Date 对象 5 种时间戳方法对比:毫秒精度与性能实测

JavaScript Date 对象 5 种时间戳方法对比:毫秒精度与性能实测

JavaScript Date 对象 5 种时间戳方法对比:毫秒精度与性能实测在 JavaScript 开发中,时间戳的获取和处理是日常开发中不可或缺的一部分。无论是记录用户操作时间、计算倒计时,还是进行性能监控,精确的时间戳都扮演着关键角色。然而…

2026/7/6 22:35:58
MySQL 8.0 存储IP地址实战:INT vs VARBINARY(16) 性能与空间对比分析

MySQL 8.0 存储IP地址实战:INT vs VARBINARY(16) 性能与空间对比分析

MySQL 8.0 IP地址存储方案深度评测:INT与VARBINARY(16)的全面性能对决在数据库表结构设计中,IP地址的存储方式选择往往被忽视,却直接影响着查询性能和存储效率。本文将基于MySQL 8.0环境,通过严谨的基准测试,对比分析U…

2026/7/6 22:35:58
[C#]丑陋的AWAIT语法:经历过一次AWAIT 函数调用后,`REF VAR` 定义的局部变量就找

[C#]丑陋的AWAIT语法:经历过一次AWAIT 函数调用后,`REF VAR` 定义的局部变量就找

先看代码&#xff1a;public async ValueTask<Error> RunAsync(){ref readonly var req ref this.Request;ref var rsp ref this.Response;// ref var 不能跨越 async 方法中的 await 边界使用。//(DbConnection? db, Error err) await DbPool.Pool!.GetAsync();if (…

2026/7/6 22:35:58
BetterNCM Installer终极指南:3分钟为网易云音乐打造插件生态

BetterNCM Installer终极指南:3分钟为网易云音乐打造插件生态

BetterNCM Installer终极指南&#xff1a;3分钟为网易云音乐打造插件生态 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer是一个专为网易云音乐PC客户端设计的插件…

2026/7/6 22:30:57

月新闻