jsp语法(2)

HX720数据采集实战:从硬件连接到姿态解析(含避坑指南) 本文详细介绍了HX720高精度ADC芯片在数据采集与姿态解析项目中的实战应用。内容涵盖从硬件电路设计、驱动源码编写与优化,到原始数据处理、校准以及最终姿态角度计算的完整流程,并提供了关键的避坑指南和调试技巧,帮助开发者高效完成从传感器信号到可用姿态数据的转换。 阅读详情

从例12-2中可以看到,在JSP容器生成的Servlet类的_jspService()方法中,定义了几个对象,而这些对象就是我们在编写JSP页面时,可以使用的隐含对象。要注意的是,因为这些隐含对象是在_jspService()方法中定义的,所以我们只能在脚本段和表达式中使用这些对象。

在JSP页面中,总共有9个隐含对象:request,response,pageContext,session,application,out,config,page和exception。在基于HTTP协议的实现中,这9个隐含对象与它们各自的类型如表12-3所示。

表12-3 JSP隐含对象的类型

隐含对象

类 型

request

javax.servlet.http.HttpServletRequest

response

javax.servlet.http.HttpServletResponse

pageContext

javax.servlet.jsp.PageContext

session

javax.servlet.http.HttpSession

application

javax.servlet.ServletContext

out

javax.servlet.jsp.JspWriter

config

javax.servlet.ServletConfig

page

java.lang.Object

exception

java.lang.Throwable

其中request,response,session,application和config对象所属的类及其用法在前面的Servlet章节中我们已经介绍过了,下面主要介绍一下其他的对象。

12.4.1 pageContext

pageContext对象提供了访问其他隐含对象的方法,如下:

? public abstract javax.servlet.ServletRequest getRequest()
? public abstract javax.servlet.ServletResponse getResponse()
? public abstract javax.servlet.http.HttpSession getSession()
? public abstract javax.servlet.ServletContext getServletContext()
? public abstract JspWriter getOut()
? public abstract javax.servlet.ServletConfig getServletConfig()
? public abstract java.lang.Object getPage()
? public abstract java.lang.Exception getException()

在pageContext对象中,可以使用下面两个方法来保存和获取属性。

? public abstract void setAttribute(java.lang.String name, java.lang.Object value)
? public abstract java.lang.Object getAttribute(java.lang.String name)

在pageContext对象中保存的属性,只能在当前页面中去获取,也就是说,pageContext对象具有页面范围(详见12.5节)。

利用pageContext对象,还可以设置和得到在其他范围对象中保存的属性。pageContext对象提供了另外两个setAttribute()和getAttribute()方法,如下:

? public abstract void setAttribute(java.lang.String name, java.lang.Object value, int scope)
? public abstract java.lang.Object getAttribute(java.lang.String name, int scope)

其中的scope参数用于指定要获取哪一个范围对象的属性,有四个可能的取值,其中PageContext. PAGE_SCOPE表示页面范围,PageContext.REQUEST_SCOPE表示请求范围,PageContext.SESSION_ SCOPE表示会话范围,PageContext.APPLICATION_SCOPE表示Web应用程序范围。

在pageContext对象中,可以使用下面两个方法来删除范围中的属性。

? public abstract void removeAttribute(java.lang.String name, int scope)

删除指定范围内名字为name的属性。

? public abstract void removeAttribute(java.lang.String name)

删除所有范围内名字为name的属性。

pageContext对象还提供了搜索属性的方法:

? public abstract java.lang.Object findAttribute(java.lang.String name)

该方法会按照page,request,session和application范围的顺序搜索指定名字的属性,如果找到,则返回属性的值,如果没有找到,则返回null。关于范围,请参见12.5节。

pageContext对象也提供了请求转发的两个方法forward()和include(),其内部实现是调用RequestDispatcher对象的forward()和include()方法。

从pageContext对象提供的方法可以看出,pageContext对象实际上是为我们提供了访问其他隐含对象的统一入口,在多数情况下,直接利用pageContext对象就可以完成想要实现的功能。

12.4.2 out

out对象的类型是javax.servlet.jsp.JspWriter,该类从java.io.Writer类派生,以字符流的形式输出数据。out对象实际上是PrintWriter对象的带缓冲的版本(在out对象内部使用PrintWriter对象来输出数据),可以通过page指令的buffer属性来调整缓冲区的大小,默认的缓冲区是8kb。

在out对象中,提供了几个和缓冲区操作相关的方法,如下所示。

? public abstract void clear() throws java.io.IOException

清除缓冲区中的内容。如果缓冲区已经被刷新,clear()方法将抛出IOException异常。

? public abstract void clearBuffer() throws java.io.IOException

清除缓冲区中的当前内容。这个方法和clear()方法的区别是,如果缓冲区已经被刷新,这个方法不会抛出IOException异常。

? public abstract void close() throws java.io.IOException

刷新缓冲区,关闭输出流。注意,我们在编写JSP页面时,不需要显式地去调用这个方法,因为在JSP容器所生成的代码中会自动包含对close()方法的调用。

? public abstract void flush() throws java.io.IOException

刷新缓冲区。

? public int getBufferSize()

获得out对象使用的缓冲区的大小。

? public abstract int getRemaining()

获得缓冲区中未使用的字节数。

? public boolean isAutoFlush()

判断out对象是否是自动刷新。

out对象针对不同的数据类型,提供了多个重载的print()和println()方法,用于输出数据。要注意的是,虽然println()方法会输出一个换行,但是客户端的浏览器在显示页面时会忽略输出的换行。

12.4.3 page

page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:

Object page = this;

在JSP页面中,很少使用page对象。

12.4.4 exception

exception对象表示了JSP页面运行时产生的异常,该对象只有在错误页面(在page指令中指定属性isErrorPage=true的页面)中才可以使用。

在JSP页面中,我们可以利用page指令的errorPage属性指定一个错误处理页面,当JSP页面运行发生错误时,JSP容器会自动调用指定的错误处理页面。要注意的是,如果一个JSP页面使用errorPage属性定义了错误页面,那么在web.xml文件中定义的任何错误页面将不会被使用。

下面我们看一个例子:

price.jsp

<%@ page errorPage="excep.jsp" %>

<%

String strPrice=request.getParameter("price");

double price=Double.parseDouble(strPrice);

out.println("Total price = "+price * 3);

%>

excep.jsp

<%@page isErrorPage="true" %>

<%

out.println("exception.toString():");

out.println("<br>");

out.println(exception.toString());

out.println("<p>");

out.println("exception.getMessage():");

out.println("<br>");

out.println(exception.getMessage());

%>

在price.jsp页面中,通过page指令的errorPage属性指定错误处理页面为excep.jsp。在excep.jsp页面中,通过page指令的isErrorPage属性指定当前页面是错误处理页面,只有设置了isErrorPage为true,在此页面中才可以使用exception对象。

我们访问price.jsp页面时,输入URL:http://localhost:8080/ch12/price.jsp?price=5.0

将看到输出:

Total price = 15.0

如果输入:http://localhost:8080/ch12/price.jsp?price=abc

将看到如下的错误信息:

exception.toString():

java.lang.NumberFormatException: For input string: "abc"

exception.getMessage():

For input string: "abc"

继电器控制LED灯具导致触点烧蚀粘连的解决办法 阅读详情

相关推荐

open-mmlab / mmpose安装、使用教程

mmpose安装、使用教程mmpose安装教程1. 安装mmcv-full2. 安装MMPose2. 安装mmdet使用教程1. 预测图片2. 预测视频 mmpose mmpose是商汤旗下有又一款好用的工具箱,主要是针对姿态识别任务开发的,包括人体姿态识别和动物姿态识别。里面继承很多现成的网络可以供大家使用,并且提供了训练好的权重。用户可以更具自己的需求训练自己的数据,或者直接应用他们的结果,反正就是很全面啦!!!! github连接:https://github.com/open-mmlab/mmpos

CharmsLUO的博客 1万+

JSP 技术练习题

JSP隐式对象:(1) out 用于页面输出 (2) request 得到用户请求信息 (3) response 服务器向客户端回应信息 (4) config 服务器配置,可以取得初始化参数 (5) session 用来保存用户的信息 (6) application 所有用户的共享信息 (7) page 指当前页面转换后的Servlet类的实例 (8) pageContext JSP的页面容器 (9) exception 表示JSP页面所发生的异常,在错误页中才起作用。......

weixin_48053866的博客 9394

HC32F460 FPU实战:从零开启硬件浮点加速

本文详细介绍了如何在HC32F460开发板上启用和优化FPU(浮点运算单元),以显著提升硬件浮点运算性能。从工程配置、关键代码修改到实战优化技巧,全面解析FPU加速的实现方法,并分享常见问题的解决方案,帮助开发者避免常见陷阱,充分发挥HC32F460的硬件潜力。

weixin_42620340的博客 348

JavaWeb高级开发技术第六章答案

web高级开发技术第六章答案

qq_68149578的博客 2050

C++和蓝图1:Unreal Engine 中 C++ 与蓝图的桥梁

摘要: 本文介绍了Unreal Engine(UE)中C++与蓝图可视化脚本的结合机制,重点解析了宏系统(UCLASS、UPROPERTY、UFUNCTION)如何实现代码与蓝图的交互。相比Unity的纯C#脚本模式,UE的双轨制开发允许程序员用C++处理核心逻辑,同时通过蓝图让非程序员快速迭代。文章对比了两大引擎的编程范式差异,指出UE的反射系统和宏标记提供了更精细的控制,并给出了从Unity迁移到UE的具体思路。核心在于理解UE的混合编程优势:C++保证性能,蓝图提升开发效率,二者通过宏系统无缝协作。

qq_46348216的博客 1407

双目视觉入门实战:用Matlab标定相机,再到Python OpenCV完成测距的完整链路

本文详细介绍了双目视觉技术的完整实现流程,从Matlab相机标定到Python OpenCV测距的全链路实践。重点解析了Matlab与OpenCV的参数转换技巧,以及立体校正、视差计算等关键步骤的代码实现,帮助开发者快速掌握双目测距系统的搭建方法。

weixin_29166013的博客 447

JavaWeb作业9 JSP-2

答案说明 :JSP隐式对象:(1) out 用于页面输出 (2) request 得到用户请求信息 (3) response 服务器向客户端回应信息 (4) config 服务器配置,可以取得初始化参数 (5) session 用来保存用户的信息 (6) application 所有用户的共享信息 (7) page 指当前页面转换后的Servlet类的实例 (8) pageContext JSP的页面容器 (9) exception 表示JSP页面所发生的异常,在错误页中才起作用。

weixin_57242411的博客 971

Matlab实战:3种雷达间歇采样干扰的仿真与识别(附完整代码)

本文通过Matlab实战,详细仿真了雷达有源间歇采样干扰的三种核心样式:直接转发、重复转发和循环转发干扰。文章提供了完整的代码实现,并深入探讨了基于时频分析和循环平稳分析的特征提取与识别方法,为雷达抗干扰技术的学习与实践提供了清晰的工程实现路径。

weixin_29053695的博客 364

JSP隐式对象——out对象、pageContext对象、exception对象

JSP隐式对象的概述 在JSP页面中,有一些对象需要频繁使用,如果每次都重新创建这些对象则会非常麻烦。为了简化Web应用程序的开发,JSP2.0规范中提供了9个隐式(内置)对象,它们是JSP默认创建的,可以直接在 JSP 页面中使用。这9个隐式对象的名称、类型和描述如表所示。 名称 类型 描述 范围 out javax.servlet.jsp.JspWriter 用于输出页面 page request javax.servlet.http.HttpServletRequest 得到用户信

醉瑾_的博客 4848

three.js中如何高效加载并播放GLB格式的3D动画

本文详细介绍了在three.js中高效加载并播放GLB格式3D动画的最佳实践。通过对比GLB与GLTF格式的优势,提供从环境搭建、模型加载到动画控制的完整解决方案,并分享性能优化技巧和常见问题排查方法,帮助开发者提升3D动画项目的开发效率和用户体验。

weixin_27890975的博客 362

【Bug已解决】Auto mode cannot determine the safety of an action — Claude Code 自动模式安全判断失败解决方案

将已知安全的操作添加到白名单,分类器不再拦截这些操作。# 步骤 1:编辑 Claude Code 配置"Read","Write"EOF# 步骤 2:白名单中的操作将自动通过# 不在白名单中的操作仍需分类器判断# 步骤 3:重启 Claude Codeclaude方案适用场景推荐指数难度方案一:手动审批偶发回退,安全优先⭐⭐⭐⭐⭐低方案二:/compact 压缩上下文超限导致⭐⭐⭐⭐低方案三:拆分步骤复杂操作触发⭐⭐⭐⭐低方案四:跳过审批隔离环境,CI/CD。

博客 1万+

JSP技术

JSP全称Java Server Pages,是建立在Servlet之上的动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常结束。JSP文件中,HTML代码和Java代码共存。HTML代码实现网页静态内容显示,Java代码实现网页中动态内容显示。JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

m0_52432110的博客 740

使用Simulink对固定翼无人机的自动起飞与降落进行仿真

本文介绍了基于Simulink的固定翼无人机自动起飞与降落控制系统设计方法。系统包含飞行器动力学模型、控制系统、环境模拟等模块,通过简化动力学方程描述无人机运动特性。详细说明了从创建模型、设置动力学方程、设计PID控制器(包括自动起飞和降落控制策略)到添加环境模拟的完整仿真流程。重点阐述了升降舵和发动机推力的控制律设计,以及性能评估要点。本方法可有效验证控制系统设计,优化飞行稳定性和安全性参数,为无人机自主控制提供仿真支持。

amy_mhd的博客 223

【JSP 】第2章 jsp语法

基本结构 在传统的HTML页面文件中加入Java程序片和JSP标签,就构成了一个JSP页面。 JSP页面可由5种元素组合而成: ① 普通的HTML标记符; ② JSP标记,如指令标记、动作标记; ③ 变量和方法的声明; ④ Java程序片; ⑤ Java表达式 当服务器上的一个JSP页面被第一次请求执行时 JSP引擎 将 jsp页面文件 转译成 Java文件 再编译成 字节码文件 然后执行字节码文件响应用户请求 JSP引擎为每个用户启动一个线程, 该线程负责执行常驻内存的字节码文件来响应相应用户的请求

chentao326的博客 2004

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JSP知识点2——JSP语法

一、JSP页面的基本结构 1、一个JSP页面=传统的页面文件+Java程序片+JSP标签。 2、JSP页面的五种元素组成: (1)普通的HTML标记符;(2)JSP标记,如指令标记、动作标记;(3)变量和方法的声明; (4)Java程序片;(5)Java表达式; 3、当服务器上的一个JSP页面被第一次请求执行时:服务器上的JSP引擎首先将JSP页面文件转译成一个Java文件,再将这个Ja...

Knowledge warehouse 2677

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JSP教程【2】JSP基本语法

脚本程序脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。 脚本程序的语法格式:<% 代码片段 %>或者使用XML<jsp:scriptlet> 代码片段 </jsp:scriptlet>代码实例:<html> <head><title>Hello World</title></head> <body> Hello World!<br/> <% out.

Pnoker 1628

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

jsp 2 jsp语法

脚本程序 脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。 脚本程序的语法格式: 任何文本、HTML标签、JSP元素必须写在脚本程序的外面。 下面给出一个示例,同时也是本教程的第一个JSP示例: Hello World Hello World! out.println("Your IP address is " + request

lulula的博客 311

6.2 JSP基本语法

JSP脚本元素是指嵌套在"" 中的一条或多条Java代码。通过JSP脚本元素可以将Java代码嵌入HTML代码中,所有可执行的Java代码都可以通过JSP脚本元素执行。在JSP文件中可以嵌套许多内容,例如JSP的脚本元素和注释等,这些内容的编写都需要遵循一定的语法规范。JSP表达式用于向页面输出信息,它以""结束,并且自动将结果转为字符串。在前面的学习中,虽然已经创建过JSP文件,但并未对JSP页面的构成进行详细介绍,下面将详细介绍JSP页面的基本构成。

tang7mj的博客 1165

Jsp语法(2)、Jsp指令

一、Jsp语法: 4、Jsp的声明 1)语法:<%! 变量或方法 %> 2)作用: 声明jsp的变量或方法。 3)注意:变量翻译成成员变量,方法翻译成成员方法。5、Jsp的注释 1)语法: <%!– jsp注释 –%> 2)注意:html的注释会被翻译和执行。而jsp的注释不能被翻译和执行。二、Jsp的三大指令 1、include指令 1)作用: 在当前页面用于包含其他页

一点一滴 472

J2EE 2.JSP语法

目录 JSP语法 JSP 指令标记 JSP 动作标记 实验 实验2_2 JSP指令标记 实验2_3 JSP动作标记 SP语法 “&lt;%!”和“%&gt;”之间声明的变量在整个JSP页面内都有效,与“&lt;%!”、“%&gt;” 标记符在JSP页面中所在的书写位置无关。JSP引擎将JSP页面转译成Java 文件时,将“&lt;%!”、“%&gt;” 标记符之间声明的变量作为类的...

越开源越幸运 8328

JSP_2th_JSP基本语法

介绍了JSP的变量定义、方法声明、注释以及部分内置对象。

weqpo的博客 393

JSP 语法详解 2【转帖】

导读:   描述/r   表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。因为这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式(形式和ASP完全一样).   当你在JSP中使用表达式时请记住以下几点:   你不能用一个分号(";")来作为表达式的结束符.但是同样的表达式用在scriptlet中就需要以分号

维他命的学前班 430

JSP(2)_JSP 的脚本语法

JSP JSP 的 scriptlet ● 从单词上分析 script 是脚本:let 在 JAVA 中表示的小程序,scriptlet 表示脚本小程序。 ● JSP 中的 Java 代码块就是最常见的动态信息。它分为三种: <%…%>:java 代码片段 代码片段会原模原样的出现在真身中,不会有变动。正常的 Java 代码都可以在代码片段中出现。 <%=…%>:表达...

魏宇轩 765

从头开始学习jsp(2)——jsp的基本语法

第一部分:jsp文件中默认会创建的一些东西。 以MyEclipse8.0为例,新建一个jsp文件,默认的会创建以下代码。 <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPo

shirenfeigui的专栏 2031

JSP实用教程(2)——JSP语法

JSP实用教程(2)JSP语法JSP页面的基本结构声明变量和定义方法Java程序片Java表达式Java中的注释JSP指令标记page指令include指令标记JSP动作标记include动作标记param动作标记forward动作标记 JSP语法 JSP页面的基本结构 6种元素: 普通的HTML标记和JavaScript标记;(给用户浏览器执行显示) JSP标记,如指令标记、动作标记; 变量和方法的声明; Java程序片;(2-4由服务器负责处理和执行,将需要显示的结果发给用户端浏览器) Java表达式

weixin_43325374的博客 476

JSP 语法(2)

表达式 包含一个符合JSP语法的表达式 JSP 语法 例子     . 描述表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。因为这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式(形式和ASP完全一样). 当你在JSP中使用表达式时请记住以下几点:  你不能用一个分号(";")来作为表达式的结束符.但是同样

拉索的专栏 987
上一篇: JSP的语法
下一篇: jsp(3)
wula0010
博客等级 码龄22年 90粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值