当前位置: 首页 > article >正文

JSP 核心基础|动作标签与内置对象全解析

目录一、JSP 核心基础二、JSP 动作元素1. include 动作标签案例1被包含页面includedemo.jsp2主包含页面testinclude.jsp2. forward 动作标签案例JSP 页面转发与参数传递1转发控制页forward.jsp2 目标页面 1big.jsp3目标页面 2small.jsp核心知识点三、JSP常用内置对象1. 常用内置对象案例JSP 用户登录注册功能2登录验证页userinfo.jsp3首页main.jsp4注册页面register.jsp5注册结果页doreg.jsp核心知识点2. out对象案例out对象显示当前时间3. pageContext对象三大核心职能四大作用域核心案例pageContext 的三大核心能力4. exception对象expection对象常用方法案例1出错页面errorpage.jsp2错误页面error.jsp一、JSP 核心基础简单说JSP就是嵌了Java 代码的网页运行在服务器端能够动态生成页面内容最终会被服务器翻译成Servlet来执行。二、JSP 动作元素JSP 动作元素是标准的 XML 格式标签用于控制服务器行为实现动态功能比如包含页面、跳转、操作 JavaBean 等替代繁琐的 Java 脚本代码% %。语法格式jsp:动作名 属性值/ // 无内部子标签时使用 jsp:动作名 属性值 // 有jsp:param等子标签时使用 jsp:param name参数名 value参数值 / /jsp:动作名1. include动作标签运行时动态嵌入另一个页面的内容把多个页面拼成一个页面。语法格式jsp:include page页面路径/或 jsp:include page页面路径 jsp:param name参数名1 value参数值1 / jsp:param name参数名n value参数值n / /jsp:include案例1被包含页面includedemo.jsp% page contentTypetext/html;charsetUTF-8 languagejava % 测试测试O(∩_∩)O被包含页面不需要写完整HTML结构只写内容就行不然页面会嵌套两层结构。2主包含页面testinclude.jsp% page contentTypetext/html;charsetUTF-8 languagejava % html head titleinclude动作标签测试/title /head body h2include动作标签测试/h2 hr/ h2jsp:include pageincludedemo.jsp/jsp:include/h2 /body /html2. forward 动作标签服务器端将请求转给另一个页面由它来响应浏览器用户完全感知不到跳转地址栏不变相当于Servlet的请求转发。语法格式jsp:forward page目标页面路径 / 或 jsp:forward page目标页面路径 jsp:param name转发参数名 value转发参数值 / /jsp:forward案例JSP 页面转发与参数传递根据生成的随机数转发到不同页面并传递参数。目标页面通过request.getParameter(num)获取参数。1转发控制页forward.jsp% page contentTypetext/html;charsetUTF-8 languagejava importjava.util.*% html head title页面转发案例/title /head body % // 生成0-9的随机数 int s (int) (Math.random()*10); if ( s5 ) { % !-- 转发到big.jsp传递num参数 -- jsp:forward pagebig.jsp jsp:param namenum value%s % / /jsp:forward % }else{ % !-- 转发到small.jsp传递num参数 -- jsp:forward pagesmall.jsp jsp:param namenum value%s % / /jsp:forward % } % /body /html2 目标页面 1big.jsp% page contentTypetext/html;charsetUTF-8 languagejava % html head title大于等于5/title /head body !-- 接收转发传递的num参数 -- % request.getParameter(num)% 大于等于5 /body /html3目标页面 2small.jsp% page contentTypetext/html;charsetUTF-8 languagejava % html head title小于5/title /head body % request.getParameter(num)% 小于5 /body /html核心知识点jsp:forward服务器端跳转终止当前页面执行跳转到目标页面jsp:param传递键值对参数目标页面通过request.getParameter(参数名)获取三、JSP常用内置对象JSP 内置对象由Web容器自动创建无需手动定义可直接使用用来简化页面开发。1. 常用内置对象对象名对应 Servlet 类型核心作用生命周期requestHttpServletRequest封装浏览器的一次请求获取参数、存数据、转发一次请求responseHttpServletResponse封装服务器给浏览器的响应重定向、设置编码一次请求sessionHttpSession跟踪同一个用户的多次请求存用户登录信息一次会话浏览器打开到关闭applicationServletContext代表整个 Web 应用所有用户共享全局数据服务器启动到关闭outJspWriter向浏览器输出内容替代 response.getWriter ()当前页面pageContextPageContext页面上下文可获取所有内置对象、操作四大作用域属性当前页面exceptionThrowable封装页面运行时的异常信息用于错误页显示异常详情当前页面仅在isErrorPagetrue页面可用案例JSP 用户登录注册功能1登录页面login.jsp提供表单输入用户名、密码提交到登录验证页2登录验证页userinfo.jsp校验用户名密码通过则重定向到首页失败则返回登录页3首页main.jsp从会话中获取用户名展示欢迎信息4注册页面register.jsp用户填写注册信息把数据发给 doreg.jsp 做后续判断和处理5注册结果页doreg.jsp接收注册表单参数3 秒自动跳转登录页核心知识点分类代码语句功能说明表单提交form action methodpost提交数据到后台处理编码处理request.setCharacterEncoding(UTF-8)解决中文乱码获取参数request.getParameter()获取单个表单值request.getParameterValues()获取多值复选框会话session.setAttribute()存储用户登录信息session.getAttribute()获取登录用户名页面跳转response.sendRedirect()重定向跳转response.setHeader(refresh,3;url)定时自动跳转导入类% page import包.类 %导入 Java 工具类页面输出out.print()向网页输出内容2. out对象out 是 JSP的内置输出对象无需创建直接使用用于向网页动态输出内容。案例out对象显示当前时间每次刷新页面都会更新当前时间out.print()与% 变量 %功能等价均用于向页面输出内容前者可输出拼接字符串后者更简洁。3. pageContext对象pageContext 是 JSP 页面上下文对象相当于当前页面的总控中心可管理数据、调取其他内置对象、实现页面跳转仅在当前页面生效页面执行完毕便自动销毁。三大核心职能管数据统一操作 page、request、session、application 四大作用域完成数据存取与检索。管对象作为入口获取 request、response、session 等所有 JSP 内置对象。管页面提供 forward、include 方法实现页面请求转发与包含。四大作用域核心pageContext 可以统一操作 4 个不同范围的数据作用域有效范围关键字page仅当前 JSP 页面PAGE_SCOPErequest一次请求内有效REQUEST_SCOPEsession一次会话浏览器打开→关闭内有效SESSION_SCOPEapplication整个 Web 项目运行期间有效APPLICATION_SCOPE案例pageContext 的三大核心能力验证 pageContext 可以获取内置对象演示四大作用域的存值、取值演示findAttribute()自动查找属性4. exception对象exception是 JSP 内置异常对象封装页面运行时抛出的错误信息仅在开启isErrorPagetrue的错误页面中可用普通 JSP 页面无法直接使用。expection对象常用方法exception.getMessage()获取简短异常描述信息exception.toString()获取异常类型 完整信息exception.printStackTrace()打印异常堆栈后台控制台看详情案例1出错页面errorpage.jsp% page contentTypetext/html;charsetUTF-8 languagejava errorPage/myjsp/error.jsp % !-- errorPage 出错自动跳转到错误页 -- html head titleTitle/title /head body % int[] anew int[5]; a[5]100; // 数组下标越界产生异常 % /body /html2错误页面error.jsp% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8% % page isErrorPagetrue % !-- 开启exception对象没有这句就不能用 -- !DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title页面出错了 | Error/title style * { margin: 0; padding: 0; box-sizing: border-box; font-family: Segoe UI, Roboto, Microsoft YaHei, sans-serif; } body { background-color: #f8f9fc; display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 20px; } .error-container { text-align: center; max-width: 600px; width: 100%; background: #fff; padding: 60px 40px; border-radius: 20px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); animation: fadeIn 0.6s ease forwards; } keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .error-code { font-size: 80px; font-weight: 900; color: #ff6b6b; margin-bottom: 20px; } .error-title { font-size: 24px; color: #333; margin-bottom: 12px; } .error-desc { font-size: 16px; color: #666; line-height: 1.6; margin-bottom: 30px; } .error-msg { background: #fdf0f0; color: #d32f2f; padding: 12px 16px; border-radius: 8px; margin-bottom: 30px; font-size: 14px; word-break: break-all; } .btn-group { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; } .btn { padding: 12px 24px; border-radius: 8px; text-decoration: none; font-weight: 500; transition: all 0.3s; cursor: pointer; border: none; font-size: 15px; } .btn-home { background: #409eff; color: white; } .btn-home:hover { background: #3385e0; } .btn-back { background: #e5e7eb; color: #333; } .btn-back:hover { background: #d1d5db; } media (max-width: 576px) { .error-code { font-size: 60px; } .error-container { padding: 40px 20px; } } /style /head body div classerror-container div classerror-code % response.getStatus() % %--把错误对应的HTTP数字状态码比如500展示在页面上--% /div h2 classerror-title抱歉页面好像出错了/h2 p classerror-desc 服务器遇到了意外情况无法完成你的请求。br 你可以返回首页或稍后再试。 /p % if (exception ! null) { % div classerror-msg % exception.getMessage() % %--获取异常的简短提示信息--% /div % } % div classbtn-group button classbtn btn-home onclickwindow.location.href/返回首页/button button classbtn btn-back onclickhistory.back()返回上一页/button /div /div /body /html

相关文章:

JSP 核心基础|动作标签与内置对象全解析

目录 一、JSP 核心基础 二、JSP 动作元素 1. include 动作标签 案例: (1)被包含页面(includedemo.jsp) (2)主包含页面(testinclude.jsp) 2. forward 动作标签 案…...

Xbox手柄电量监控:告别游戏中断的终极解决方案

Xbox手柄电量监控:告别游戏中断的终极解决方案 【免费下载链接】XB1ControllerBatteryIndicator A tray application that shows a battery indicator for an Xbox-ish controller and gives a notification when the battery level drops to (almost) empty. 项目…...

为什么极限不是总存在的?

并不总是存在,是因为“趋近”的过程必须满足非常严苛的条件:唯一性和确定性。如果函数在趋近某个点时的表现变得“混乱”或“不一致”,极限就会失效。如果函数在趋近某个点时的表现变得“混乱”或“不一致”,极限就会失效。以下是…...

BiliTools:解锁B站学习新姿势,5分钟掌握视频AI总结与智能下载

BiliTools:解锁B站学习新姿势,5分钟掌握视频AI总结与智能下载 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bili…...

突破性音源聚合!洛雪音乐实现全网高品质音乐自由

突破性音源聚合!洛雪音乐实现全网高品质音乐自由 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否曾因音乐平台版权限制而无法听到心仪歌曲?是否厌倦了在不同应用间切…...

不止于找Flag:从BUUCTF流量分析题,我总结出这3个Wireshark高效排查思路

从CTF到实战:Wireshark流量分析的三大高阶排查策略 在网络安全领域,流量分析就像数字世界的法医鉴定。当我在一次企业内网渗透测试中,面对超过50GB的混杂流量数据时,那些曾经在BUUCTF等CTF比赛中磨练出的Wireshark技巧突然变得无比…...

网站优化对企业营销有什么作用_SEO优化能带来哪些好处

网站优化对企业营销有什么作用_SEO优化能带来哪些好处 在当前数字化时代,企业的在线存在感已经成为衡量其市场竞争力的重要指标。在这种背景下,网站优化(特别是搜索引擎优化,SEO)不仅仅是一个技术细节,而是…...

OpenClaw安全防护指南:千问3.5-27B本地化部署的权限管控策略

OpenClaw安全防护指南:千问3.5-27B本地化部署的权限管控策略 1. 为什么需要特别关注OpenClaw的安全防护? 去年冬天,我在自己的MacBook上部署OpenClaw时,曾因为一个简单的配置疏忽差点酿成大祸。当时我只是想让AI助手帮我整理桌面…...

StructBERT语义相似度工具快速体验:输入句子秒出结果

StructBERT语义相似度工具快速体验:输入句子秒出结果 1. 工具简介与核心价值 当你需要快速判断两段中文文字是否表达相同含义时,传统方法往往需要人工逐字比对或依赖复杂的算法配置。现在,基于StructBERT-Large模型的语义相似度工具让这个过…...

OpenClaw未来展望:Qwen3-4B与Agent技术融合趋势

OpenClaw未来展望:Qwen3-4B与Agent技术融合趋势 1. 从工具到伙伴:个人自动化助手的进化之路 去年冬天的一个深夜,我正为一份紧急报告焦头烂额时,电脑突然弹出一条提示:"检测到您连续工作超过4小时,已…...

Ascend C

Ascend C 是专为昇腾AI处理器设计的一种异构并行编程语言,核心用于开发在NPU上运行的高性能算子。它通过一套分层的API、基于流水线并行的编程范式和完备的开发工具链,让开发者能够高效地利用昇腾硬件的强大算力。 🧱 核心组成:从“发令”到“干活” 一个完整的Ascend C算…...

DJI Payload-SDK实战指南:构建工业级无人机智能载荷的完整方案

DJI Payload-SDK实战指南:构建工业级无人机智能载荷的完整方案 【免费下载链接】Payload-SDK DJI Payload SDK Official Repository 项目地址: https://gitcode.com/gh_mirrors/pa/Payload-SDK 作为系统集成商和解决方案提供商,您是否正在寻找一种…...

G-Helper:让华硕笔记本焕发新生的轻量级控制中心

G-Helper:让华硕笔记本焕发新生的轻量级控制中心 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, a…...

Sony-PMCA-RE技术解析与实战指南:解锁Sony相机潜能的开源工具

Sony-PMCA-RE技术解析与实战指南:解锁Sony相机潜能的开源工具 【免费下载链接】Sony-PMCA-RE Reverse Engineering Sony Digital Cameras 项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE 一、价值定位:重新定义相机控制边界 1.1 开源…...

资源捕获总失败?3个配置密码让工具效率提升200%

资源捕获总失败?3个配置密码让工具效率提升200% 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 资源嗅探配置是提升网页资源捕获成功率…...

Vant Weapp组件库无障碍颜色方案实践指南

Vant Weapp组件库无障碍颜色方案实践指南 【免费下载链接】vant-weapp 轻量、可靠的小程序 UI 组件库 项目地址: https://gitcode.com/gh_mirrors/va/vant-weapp 问题引入:被忽视的视觉障碍用户体验痛点 在小程序开发中,颜色设计往往聚焦于视觉美…...

告别Calibre中文路径乱码:3步实现完美文件名保护的终极解决方案

告别Calibre中文路径乱码:3步实现完美文件名保护的终极解决方案 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文(中文)命名 项…...

3分钟搞定!BaiduPCS-Web免费解锁百度网盘满速下载终极方案

3分钟搞定!BaiduPCS-Web免费解锁百度网盘满速下载终极方案 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在为百度网盘下载速度慢如蜗牛而烦恼吗?每次下载大文件都要等上几个小时甚至一整天&#…...

SEO 关键词工具哪个最准确

SEO关键词工具哪个最准确? 在当今的互联网时代,SEO(搜索引擎优化)已经成为了网站流量增长的关键。而在SEO优化过程中,关键词研究是非常重要的一环。作为网站运营者,选择一个准确的SEO关键词工具至关重要。…...

TQVaultAE:让《泰坦之旅》装备管理不再头痛的黑科技

TQVaultAE:让《泰坦之旅》装备管理不再头痛的黑科技 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 4大核心功能彻底释放你的背包空间与创造力 在《泰坦之旅》的…...

探索SillyTavern:重新定义AI角色交互体验的开源平台

探索SillyTavern:重新定义AI角色交互体验的开源平台 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 在人工智能与人类交互日益紧密的今天,如何打破传统聊天界面的局…...

3DS GBA原生运行技术全解析:从兼容性突破到性能优化实践

3DS GBA原生运行技术全解析:从兼容性突破到性能优化实践 【免费下载链接】open_agb_firm open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware. 项目地址: https://gitcode.com/gh_mirrors/op/open_agb_firm …...

让普通鼠标秒变生产力工具:Mac Mouse Fix 深度体验指南

让普通鼠标秒变生产力工具:Mac Mouse Fix 深度体验指南 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为Mac上鼠标滚轮滚动生硬…...

ROS1环境下Intel RealSense深度相机:从零部署到点云应用实战

1. 环境准备:从零搭建ROS1与RealSense开发环境 第一次接触ROS和深度相机的开发者,往往会卡在环境配置这一步。我当年用D435i做项目时,光是驱动兼容性问题就折腾了两天。下面这套配置流程经过多个项目验证,特别适合Ubuntu 18.04/20…...

OFA视觉语义蕴含(iic/ofa_visual-entailment_snli-ve_large_en)零基础入门指南

OFA视觉语义蕴含(iic/ofa_visual-entailment_snli-ve_large_en)零基础入门指南 1. 镜像简介 本镜像已经完整配置好了 OFA 图像语义蕴含模型 运行所需的一切环境,基于 Linux 系统 Miniconda 虚拟环境构建。你不需要手动安装任何依赖、配置环…...

3大核心价值+5种应用场景:番茄小说下载器开源工具全解析

3大核心价值5种应用场景:番茄小说下载器开源工具全解析 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 番茄小说下载器是一款基于Rust语言开发的开源工具&#xff…...

vllm 安装

别在Windows里安装vllm了,总有很多问题, 可以在WSL2的Unbuntu 24.04里安装vllm,轻松完成 一、相关链接 vllm https://docs.vllm.ai/en/latest/index.html github https://github.com/vllm-project/vllm vLLM 中文站 https://vllm.hyper.…...

Seata 1.6.1 + Nacos配置避坑指南:Windows环境从安装到整合SpringBoot的完整链路

Seata 1.6.1与Nacos深度整合实战:Windows环境下的全链路配置精要 当微服务架构遇上分布式事务,Seata无疑是Java开发者手中的瑞士军刀。但在Windows环境下,从零搭建Seata服务端到与SpringBoot应用无缝集成,这条路上布满的配置陷阱足…...

从 MSYS2 环境中提取独立 MinGW-w64 工具链的技术方案

提取包下载:作者主页资源 一、问题背景 在配置 Windows 平台 C/C 开发环境时,开发者可能误将 MSYS2 完整环境当作 MinGW-w64 编译器套件下载安装。MSYS2 是一个集成了 Pacman 包管理器的 Unix-like 开发环境,其内部包含了完整的 MinGW-w64 工…...

3个强力方法解决百度网盘下载限速问题:开源工具实现本地优化加速

3个强力方法解决百度网盘下载限速问题:开源工具实现本地优化加速 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 作为技术探索者&#xff0…...