认识JSP
什么是JSP?
JSP(Java Server Pages)是一种类似于HTML的标记语言,用于创建动态Web页面。与HTML不同的是,JSP页面中可以嵌入Java代码,由Web服务器在动态页面中生成HTML代码,从而实现Web应用程序的前端交互效果。
在JSP中,我们可以像HTML一样编写静态页面,也可以在页面中插入JSP脚本,使用Java语句来进行动态处理。
JSP的优点在于:
- JSP页面易于维护,与传统的Servlet方式相比,更灵活,更直观。
- JSP支持标准HTML标签和标准JSP标签,而且可以自定义标签,功能强大。
- JSP页面可以和JavaBean等资源进行交互,实现数据的传递和交互。
总的来说,JSP是一种使用方便、灵活性高且功能强大的动态Web开发技术。
JSP的工作原理
JSP的工作原理可以用下面的步骤来描述:
- 客户端发送HTTP请求到Web服务器。
- Web服务器识别出请求的是一个JSP页面,将其转发给JSP引擎。
- JSP引擎将JSP页面编译成一个Servlet,生成相应的Java代码文件和类文件。
- JSP引擎加载并执行Servlet文件,并将动态生成的HTML代码返回给Web服务器。
- Web服务器将HTML结果返回给客户端,客户端在浏览器中渲染呈现。
在具体的实现过程中,JSP页面中的静态内容会被直接输出,而本身带有Java代码的语句则会被编译为对应的Servlet代码。JSP页面还可以使用EL表达式(Expression Language)对数据进行处理,这些表达式在服务器端被转换为对应的Java代码,从而实现动态生成页面的效果。
因此,JSP引擎的主要工作是将JSP页面转换为Servlet,并由Web服务器执行Servlet代码,该Servlet负责处理请求并生成相应的HTML结果。
JSP和Servlet的区别和联系
JSP和Servlet是Java Web开发中最常用的两种技术,它们可以相互结合来实现Web应用程序。
JSP(Java Server Pages)是一种类似于HTML的标记语言,用于创建动态Web页面。JSP页面中可以嵌入Java代码,通过JSP容器将其转换为Servlet,最终在服务器端执行。JSP适合用于创建HTML页面,但难以维护较大规模的Web应用。
Servlet是Java Web开发中的一种Java程序,它运行在Web服务器端。Servlet能够接收并响应HTTP请求,它可以在服务器端动态生成HTML页面,从而实现Web应用程序的前后端分离。Servlet适合用于创建网站各种动态功能,如登录验证、表单提交、图片上传等。
关于它们的联系,其实JSP在底层也是依靠Servlet实现的。JSP页面在被访问时会被翻译成Servlet形式,再由Servlet容器进行执行。两者都可以操作request和response对象,实现数据的传递和交互。同时,JSP页面中也可以使用JavaBean、Java代码库等Servlet的相关技术。
注意:浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet,jsp最终也会被转换成为一个java类,jsp本质就是一个servlet
JSP基础语法
JSP(Java Server Pages)是一种动态网页制作技术,它使用基于Java的服务器端脚本语言,由HTML静态数据和Java动态数据组成。以下是JSP的基础语法:
-
JSP Directive:指示符
使用<%@%>标记定义页面所需的指示符。 -
JSP Scriplet:脚本片段
使用<% % >标记定义Java代码片段。 -
JSP Expression:表达式
使用<%= %>标记将Java表达式嵌入到HTML代码中输出结果。 -
JSP Comment:注释
使用<%-- --%>标记添加注释到JSP页面。 -
JSP Declaration:声明
使用<%! % >标记定义全局变量或方法。 -
JSP Action:动作
使用jsp:...标记执行特定的操作,如转发请求、包含其他页面或设置页面属性等。
以上是JSP基础语法的主要内容,掌握这些语法可以让我们更好地利用JSP技术创建动态网站。
JSP内置对象
JSP(Java Server Pages)技术中有很多内置对象,可用于访问Web容器和其它相关对象。这些内置对象可以在JSP页面中直接使用,无需特别声明或创建,下面是JSP内置对象的一些常见示例:
-
request对象:代表HTTP请求。
-
response对象:代表HTTP响应。
-
session对象:代表一个用户会话。
-
application对象:代表整个Web应用程序上下文。
-
pageContext对象:代表页面上下文。
-
out对象:代表JSP页面上的输出流。
-
config对象:代表JSP页面的Servlet配置信息。
-
exception对象:代表最近的异常对象。
通过使用这些内置对象,我们可以更方便地完成Web应用开发工作,例如读取请求参数、转发请求、获取Session、访问应用程序全局对象等。
需要注意的是,虽然这些内置对象可以在JSP页面中直接使用,但建议在使用前先判断是否为null,避免产生NullPointerException等异常。
JSP定制错误页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--设置page的错误提示页面为500.jsp--%>
<%@ page errorPage="500.jsp" %>
<html>
<head><title>Title</title>
</head>
<body>
<%= 1/0 %>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>500页面</title>
</head>
<body><img src="500.png">
</body>
</html>
相关文章:
认识JSP
什么是JSP? JSP(Java Server Pages)是一种类似于HTML的标记语言,用于创建动态Web页面。与HTML不同的是,JSP页面中可以嵌入Java代码,由Web服务器在动态页面中生成HTML代码,从而实现Web应用程序的前端交互效…...
MySQL数据管理
一、MySQL数据库管理 1、库和表 行(记录):用来描述一个对象的信息 列(字段):用来描述对象的一个属性 2、常用的数据类型 int :整型 float :单精度浮点 4字节32位 double &…...
第十九章 Unity 其他 API
本节介绍一些其他经常使用的Unity类。首先,我们回顾一下Vector3向量类,它既可以表示方向,也可以表示大小。它在游戏中可以用来表示角色的位置,物体的移动/旋转,设置两个游戏对象之间的距离。在我们之前的课程中&#x…...
sha256算法详解,用C语言模拟sha256算法
SHA-256是一种加密算法,它可以将任意长度的数据块计算出一个固定长度的输出值,通常是256位。SHA-256具有以下特点: 1. 固定输出长度:SHA-256的输出长度为256位,不受输入数据的长度限制。 2. 不可逆性:SHA-256采用单向哈希函数,即无法从输出值反向推出输入数据。 3. 抗…...
前端技术未来发展展望
前端技术在未来的发展中将继续保持快速、变化多样和创新性强的趋势。以下是我认为前端技术未来发展的几个方向: 框架和库的演进:框架和库的更新换代将继续加速。React、Vue、Angular等主流框架的更新周期将会缩短,同时各自的生态系统也将更加…...
第四十六天|dp
今天的题还是完全背包的题 139. Word Break 这道题其实用deque也能做,但是需要cache去记录之前尝试过的值,.相对简单的办法就是用完全背包了 这道题worddict就是物品.我们的dp[i]代表到i为止是不是能满足题意分成segmentation 处置化全为false,但是dp[0]True.这是因为为0时…...
汇编语言-复习自用
本文用于自我复习汇编语言,参考b站一位老师的讲解整理而成,感谢老师的无私付出视频链接链接 文章目录 1.第一章1.1计算机组成1.2读取1.3 寄存器及数据存储1.4 mov和and指令1.5 确定物理地址1.6 内存分段表示法1.7debug使用1.8CS:IP1.9jmp指令改变csip1.1…...
Android moneky自动点击应用设想
近期又有人发错私密消息到群聊天里,造成巨大反应的事件,可谓是一失手成大恨,名利受损。 而如果手机里安装一个monkey自动点击程序,没事的时候,跑跑monkey,倒一杯茶,静静的看手机屏幕在那里点击&…...
16.基于主从博弈理论的共享储能与综合能源微网优化运行研究
说明书 MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究 关键词:主从博弈 共享储能 综合能源微网 优化调度 参考文档:《基于主从博弈理论的共享储能与综合能源微网优化运行研究》完全复现 仿真平台:MATLAB …...
使用 ESP32 设计智能手表第 2 部分 - 环境光和心率传感器
我们研究了如何为我们的智能手表项目制作一些有趣的表盘。在这一部分中,我们将研究如何将一些传感器连接到我们的智能手表,并将连接 BH1750 环境光传感器和 MAX30102 心率传感器。我们将分别研究这些模块中的每一个的接口。 先决条件——安装必要的库 本文下方提供的 GitHub …...
分布式事务 --- 理论基础、Seata架构、部署
一、分布式事务问题 1.1、本地事务 本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则: 1.2、分布式事务 分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如&am…...
低代码开发重要工具:JVS列表页字段样式配置说明
列表页中,通常存在各种各样的样式控制,例如字段宽度需要可调、字段的颜色根据内容变化等,那么我们接下来介绍下字段的样式控制的内容以及对应的效果。 1、字段样式控制配置位置 进入列表页的 数据配置界面,每个字段可以有独立的配…...
explain结果字段分析
select_type simple:表示不需要union操作或者不包含子查询的简单select语句。有连接查询时,外层的查询为simple且只有一个。 primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary且只…...
MySQL连接查询
MySQL连接查询 在多表联合查询时,为了减少查询的次数,使用连接查询可以一次查询多个相关联表的数据。 MySQL连接查询:分为内连接查询和外连接查询。 其中外连接查询又分成 left连接查询 和 right连接查询。 下午为两张数据库表,表…...
7. Docker——Dockerfile
本章讲解知识点 DockerfileDockerfile 常用命令Dockerfile 综合示例Docker Compose当我们理解了镜像的基本原理后,我们就可以开始 Dockerfile 的学习了。 1. Dockerfile Dockerfile 是用于构建 Docker 镜像的脚本。它包含一组指令,按顺序执行以创建 Docker 镜像,从而使其可…...
Input事件在应用中的传递(一)
Input事件在应用中的传递(一) hongxi.zhu 2023-4-25 前面我们已经梳理了input事件在native层的传递,这一篇我们接着探索input事件在应用中的传递与处理,我们将按键事件和触摸事件分开梳理,这一篇就只涉及按键事件。 一、事件的接收 从前面的…...
我在VScode学Java(Java一维数组)
我的个人博客主页:如果\真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客:(我在Vscode学Java) 我在VScode学Java(Java一维数组) Java 一维数组 声明数组:先声明,后使用 动态分配内…...
不能使用chatGPT?这3个平替甚至比chatGPT更强
不能使用chatGPT?这3个平替甚至比chatGPT更强 chatGPT,一款由OpenAI开发的新型AI聊天机器人,正在势如破竹地改变着许多人的工作和生活方式。作为一款基于大语言模型的聊天机器人,chatGPT能够理解自然语言并进行人机对话。与传统的…...
基于SLM调制器,MIT研发高效率全息显示方案
此前,青亭网曾报道过NVIDIA、三星、剑桥大学等对空间光调制器(SLM)全息方案的探索。空间光调制器可调节光波的空间分布,在电驱动信号控制下,可改变光在空间中传播的振幅、强度、相位、偏振态等特性,从而形成…...
【Docker】镜像与docker数据卷
文章目录 一、镜像1、镜像2、镜像原理之联合文件系统3、镜像原理之分层4、commit镜像 二、数据卷1、数据卷2、-v使用数据卷3、实战:MySQL 同步数据4、docker volume相关指令5、匿名和具名挂载6、数据卷之Dockerfile7、数据卷容器 一、镜像 1、镜像 镜像是一种轻量级…...
机器学习小结之KNN算法
文章目录 前言一、概念1.1 机器学习基本概念1.2 k 值1.3 距离度量1.4 加权方式 二、实现2.1 手写实现2.2 调库 Scikit-learn2.3 测试自己的数据 三、总结3.1 分析3.2 KNN 优缺点 参考 前言 KNN (K-Nearest Neighbor)算法是一种最简单,也是一个很实用的机器学习的…...
函函函函函函函函函函函数——two
🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,…...
SpringCloud学习笔记06
九十五、Cloud Alibaba简介 0、why会出现SpringCloud alibaba Spring Cloud Netflix项目进入维护模式 1、是什么 官网:spring-cloud-alibaba/README-zh.md at 2.2.x alibaba/spring-cloud-alibaba GitHub 2、能干嘛 3、去哪下 spring-cloud-alibaba/README-…...
学系统集成项目管理工程师(中项)系列14_采购管理
1. 概念和术语 1.1. 采购是从项目团队外部获得产品、服务或成果的完整的购买过程 1.2. 三大类 1.2.1. 工程 1.2.2. 产品/货物 1.2.3. 服务 2. 主要过程 2.1. 编制采购管理计划 2.2. 实施采购 2.3. 控制采购 2.4. 结束采购 3. 合同 3.1. 包括买方和卖方之间的法律文…...
PMP课堂模拟题目及解析(第3期)
21. 一家农业设备制造商因一个缺陷部件而召回数千个产品。这个问题导致许多客户不满,公司花费 500 万美元来修理和更换零件。哪一种成本预算类型可以防止这个问题? A. 非一致性成本 B. 一致性成本 C. 矩阵图 D. 多标准决策分析 22. 一位团队成员…...
华为OD机试 - 微服务的集成测试( Python)
题目描述 现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次服务自身启动加载会消耗一些时间。 给你一个 n x n 的二维矩阵useTime,其中 useTime[i][i]=10 表示服务i自身启动加载需要消耗10s useTime[i][j] = 1 表示服务i启动依赖服务j启动完…...
SLAM面试笔记(4) — 企业面试汇总
目录 1 大疆 一面(50min) 二面(30min) 三面(30min) 2 华为 一面(30min) 二面(30min) 三面(30min) 3 海康 一面(…...
五大新兴产业中,有三个中国出口全球占比居首-机器视觉工程师正处于需求旺盛阶段
五大新兴产业包含生物保健和电动汽车,新一代半导体、新一代显示器、二次电池。 在五大新兴产业中的三大领域——新一代半导体、新一代显示器、二次电池,中国对外出口在全球所占比重最高。 电动汽车,汽车行业一直对机器视觉工程师有着强烈的需求,无论比亚迪,特斯拉等等…...
网络安全监管
网络安全监管 网络安全法律体系建设计算机犯罪、信息安全等基本概念我国立法体系及网络安全法我国的立法体系网络安全法出台背景基本概念安全法主要结构第一章 总则第二章 网络安全支持与促进第三章 网络运行安全第四章 网络信息安全第五章 监测预警与应急处置第六章 法律责任 …...
【code review】代码评审的18个军规(建议收藏)
文章目录 背景1. 添加必要的注释2.日志打印规范3. 命名规范4.参数校验5. 判空处理6. 异常处理规范7. 模块化,可扩展性8. 并发控制规范9. 单元测试规范10. 代码格式规范11. 接口兼容性12. 程序逻辑是否清晰,主次是否够分明13. 安全规范14. 事务控制规范15. 幂等处理规…...
wordpress 任意下载/管理系统
DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从来源 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的…...
金华做网站/长春免费网上推广
新个税法从1月初开始实施。2018年12月31日,国家税务总局推出“个人所得税”APP,方便纳税人线上填报资料进行专项抵扣。几天来这款APP的下载量和注册量大幅增长。随之而来的是,很多商业公司制作的各类“个税”APP也成为热门。这其中有不少纯属…...
做一个产品网站要多少钱/seo搜索排名优化公司
文章目录一、今日成绩二、错题总结第一题三、知识查缺题目及解析来源:2023年04月12日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 依据题目画出PERT图如下: 关键路径长度(从起点到终点的路径中最长的一条&#x…...
厦门市建设局与管理局网站/性能优化工具
起自从上次在ESXI5.1环境下测试完RHEL6.3版本的fence设备后,一直想着将其它版本的fence设备也测了。记得在写上篇博客时查询过红帽官方的fence设备类型兼容列表,上次测试使用的是fence_vmware_soap设备,根据兼容列表,5版本的5.7(含…...
地方网站不让做吗/智慧营销系统平台
其它说明:windows2000下IIS安装和Windows2003下IIS安装可以参照该教程,大同小异 安装步骤: 1、插入windows xp安装光盘,打开控制面板,然后打开其中的“添加/删除程序” 2、在添加或删除程序窗口左边点击“添加…...
做网站一般需要什么/手机app安装下载
2019独角兽企业重金招聘Python工程师标准>>> 下面介绍应用它进行图像类型转换的方式: 1.从一种图像文件类型转换为另一种文件类型(convert from a format to another) CxImage image; // 定义一个CxImage对象 // 从bmp文件转换为jpg文件(bmp -> …...