JSTL与EL的基本介绍

介绍JSTL与EL就不能不介绍一下JSP的标准动作元素。
JSP的标准动作元素:
<jsp:useBean>使用javabean的元素
<jsp:getProperty>从一个JavaBean组件取得一个性质值,并将其增加到响应中去
<jsp:setProperty>设置一个JavaBean的属性值
<jsp:include>在请求处理阶段包含来自一个Servlet或JSP页面的响应
<jsp:forward>将某个请求的处理转发到一个Servlet或JSP页面
<jsp:param>对使用<jsp:include>或<jsp:forward>传递到另一个Servlet或JSP页面的请求增加一个参数值
<jsp:plugin>

<jsp:attribute>基于此元素的体设置动作属性的值
<jsp:body>基于此元素的体设置动作元素体。当动作元素包含<jsp:attribute>动作元素时,<jsp:body>则是必要的
<jsp:element>动态生成一个XML元素,可以通过嵌套的<jsp:attribute>和<jsp:body>动作定义属性和体
<jsp:text>用于封装需要原样使用的模板文本,通常 仅在编写为XML文档的JSP页面中需要。
JSTL 是JSP标准标记库(JSP Standard Tag Library,JSTL),EL是表达式语言(Expression Language,EL)。这是JSP的一部分,虽然有时与JSP的动作元素的功能相同,但每种元素的存在都有一定的用处,只是用的地方并不相同。
EL语言的操作符:
. 访问一个bean性质或Map项
[] 请问一个数组或List元素
() 括起一个子表达式,以改变计算顺序
?: 条件测试:condition ? ifTrue:ifFalse
empty 空变量测试(null,空String,或者任何不含元素的数组,Map或Collection)
func(arg)函数调用,在此func为函数名,arg是一个函数参数
隐式EL变量
PageScope:所有页面作用域变量的集合(java.util.Map)
requestScope:所有请求作用域变量的集合(java.util.Map)
sessionScope:
applicationScope:
Param:所有请求参数值的集合(java.util.Map),每个参数对应为一个String值。
ParamValues:所有请求参数值的集合(java.util.Map),每个参数对应为一个String值。
Header:所有请求首部值的集合(java.util.Map),每个参数对应为一个String值。
HeaderValues:所有请求首部值的集合(java.util.Map),每个参数对应为一个String值。
Cookie:所有请求Cookie值的集合(java.util.Map),每个cookie对应为一个javax.servlet.http.Cookie值
InitParam:所有应用初始化参数值的集合(java.util.Map),每个参数对应为一个String值。
PageContext:javax.servlet.jsp.PageContext类的一个实例,提供了对各种请求数据的访问。



用JSP/JSTL/EL访问JAVABEAN

在JSP页面中声明BEAN并获取BEAN存储的信息
<jsp:useBean id="cartoon" scope="page" class="com.ora....CartoonBean">
<img src="<jsp:getProperty name="cartoon" property="filename" />">
要将JSP动作属性设置为由另一个动作所生成的值,必须使用以下<jsp:attribute>动作标准
<jsp:setProperty name="msg" property="category">
<jsp:attribute name="value" trim="true">
<jsp:getProperty name="myBean" property="myProperty">
</jsp:attribute>
</jsp:setProperty>
在JSP页面中使用EL表达式处理BEAN
<img src="image/${cartoon.fileName}">

设置BEAN性质
可以使用下面两个动作来设置其值,分别为:<jsp;setProperty>或<c:set>
使用<jsp:setProperty>动作
<jsp:useBean id="msg" class=""></jsp:useBean>

<jsp:setProperty name="msg" property="category" value="thoughts" />
<jsp:setProperty name="msg" property="category" value="quotes" />
使用<c:set>动作
<c:set target="${msg}" property="category" value="thoughts" />



JSP/JSTL/EL处理用户表单的输入与用户页面的输出

使用JSTL动作访问参数值
<input type="text" name="userName">
<input type="checkbox" name="food" value="z">
<input type="checkbox" name="food" value="b">
<input type="checkbox" name="food" value="c">

打印相关变量值:
<c:out value="${param.userName}">
<c:forEach items="${paramValues.food}" var="current">
<c:out value="${current}" />
</c:forEach>

----------------------------------------------------------
JSTL <c:out>的属性
value:必要。增加至响应的值。
escapeXml:Boolean:可选,如果值中的特殊字符应当轮换为字符实体码,则为true,默认为true。
Default:可选,value属性为null时所用的值,也可以由体定义。
-----------------------------------------------------------
JSTL <c:forEach>属性
items:可选,如果指定,则完全循环,否则,就要指定begin和end。
var:可选,保存当前元素值的变量的名
varStatus:可选,保存一个LoopTagStatus对像的变量的名
begin:可选,第一个索引(从0开始)
end:可选,最后一个索引(从0开始)
step:可选,每次迭代时的索引增量。
-----------------------------------------------------------
隐式变量pageContext的request性质,可以访问到的属性:
authType:保护请求鉴别机制的名字
characterEncoding:(String)请求体字符编码,如果未知则为null。
contentLength:(int)请求体长度,如果未知则为-1。
contentType:(String)请求体MIME类型
contextPath:请求体的上下文路径
cookies:(javax.servlet.http.Cookie[])由客户请求的cookie
locale:(java.util.Locale)客户的首选本地化环境
locales:(java.util.Enumeration)所有用户本地化环境的列表,按首选程度排序
method:(String)请求方法
protocol:协议名和版本
remoteAddr:客户IP地址
remoteHost:客户机的主机名,如果未知则显示ip地址
remoteUser:如果页面受到保护,则用于发出请求的用户名,否则为null
requestURI:请求URI,例如:/app/page.jsp
requestURL:请求URL例如:http://server/app/page.jsp
scheme:机制,如http或https
servletPath:请求的上下文相对路径:例如/page.jsp
servername:服务器名
serverPort:端口
secure:如果在一个安全通道上(ssl)建立请求,则为TRUE。
userPrincipal:(java.security.Principal)如果页面得到保护,则为表示用户建立请求的Principal(主体),否则为null
----------------------------------------------------------------------------------------
使用bean捕获参数值
<jsp:useBean id="userinfo" class="">
<jsp:setProperty name="userinfo" property="*" />
</jsp:useBean>
---------------------------------------------------------------------------------------
本指南详细阐述基于Python编程语言结合OpenCV计算机视觉库构建实时眼部状态分析系统的技术流程。该系统能够准确识别眼部区域,并对眨眼动作持续闭眼状态进行判别。OpenCV作为功能强大的图像处理工具库,配合Python简洁的语法特性丰富的第三方模块支持,为开发此类视觉应用提供了理想环境。 在环境配置阶段,除基础Python运行环境外,还需安装OpenCV核心模块dlib机器学习库。dlib库内置的HOG(方向梯度直方图)特征检测算法在面部特征定位方面表现卓越。 技术实现包含以下关键环节: - 面部区域检测:采用预训练的Haar级联分类器或HOG特征检测器完成初始人脸定位,为后续眼部分析建立基础坐标系 - 眼部精确定位:基于已识别的人脸区域,运用dlib提供的面部特征点预测模型准确标定双眼位置坐标 - 眼睑轮廓分析:通过OpenCV的轮廓提取算法精确勾勒眼睑边缘形态,为状态判别提供几何特征依据 - 眨眼动作识别:通过连续帧序列分析眼睑开合度变化,建立动态阈值模型判断瞬时闭合动作 - 持续闭眼检测:设定更严格的状态持续时间闭合程度双重标准,准确识别长时间闭眼行为 - 实时处理架构:构建视频流处理管线,通过帧捕获、特征分析、状态判断的循环流程实现实时监控 完整的技术文档应包含模块化代码实现、依赖库安装指引、参数调优指南及常见问题解决方案。示例代码需具备完整的错误处理机制性能优化建议,涵盖图像预处理、光照补偿等实际应用中的关键技术点。 掌握该技术体系不仅有助于深入理解计算机视觉原理,更为疲劳驾驶预警、医疗监护等实际应用场景提供了可靠的技术基础。后续优化方向可包括多模态特征融合、深度学习模型集成等进阶研究领域。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值