Java Web入门之JSTL标签的解析及使用(超详细必看)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: Java Web入门之JSTL标签的解析及使用(超详细必看)

前言


JSTL叫做标准标签库 但实际上它是由5个功能不同的标签库组成 这5个标签库分别是核心标签库 格式标签库  SQL标签库 XML标签库和函数标签库 在使用这些标签库之前,必须在JSP页面的顶部用<%@taglib%>指令定义引用的标签库和访问前缀


一、表达式标签


1:<c:out>标签用于将表达式的值输出到JSP页面中 该标签类似于JSP的表达式<%=表达式%>


或者EL表达式${expression} 它由两种语法格式 一种没有标签体 另一种有标签体 这两种语言的输出结果完全相同


1:没有标签体

<c:out value="expression" [escapeXml="true[false"][default="defaultValue"]/>


2:有标签体

<c:out value="expression"[escapeXml="true[false"]>
 defaultValue
</c:out>


2:<c:set>标签用于在指定范围中定义保存某个值的变量 或为指定的对象设置属性值 使用该标签可以在页面中定义变量 而不用在JSP页面中嵌入打乱HTML排版的JAVA代码 有四种语法格式


1:在scope指定的范围内将变量值存储的变量中

<c:set var="name" value="value" [scope="范围"]/>


2:在scope指定范围内将标签体存储到变量中

<c:set var="name" [scope="page|request|session|application"]>
  标签体
</c:set>


3:将变量值存储在target属性指定的目标对象的propName属性中

<c:set value="value" target="object" property="propName"/>


4:将标签体存储到target属性指定的目标对象的propName属性中

<c:set target="object" property="propName"/>
标签体
</c:set>


3:<c:remove>标签用于移除指定的JSP范围内的变量 语法如下

<c:remove var="name" [scope="范围"]/>


4:<c:catch>标签用于捕获程序中出现的异常 如果需要它还可以将异常信息保存在指定的变量中 该标签与java中的  try...catch语句类似 语法如下

<c:catch [var="exception"]>
 //可能存在异常的代码
</catch>



二、URL相关标签


1:<c:import>标签可以导入站内或者其他网页的静态和动态文件到Web页面中 与JSP中<jsp:include>类似 不同的是JSP只能导入站内资源 而import还可以导入站外资源


有如下两种语法


1:

<c:import url="url" [context="context"] [var="name"] [scope="范围"] [charEncoding="encoding"]>
标签体
</c:import>


2:

<c:import url="url" varReader="name" [context="context"] [charEncoding="encoding"]>
[标签体]
</c:import>


2:<c:url>标签用于生成一个URL路径的字符串 这个生成的字符串可以赋予HTML的<a>标记实现URL的连接 或者用这个生成的URL字符串实现网页转发与重定向等 两种语法如下

<c:url value="url" var="name"][scope="范围"] [context="context"]/>
<c:url value="url" var="name"][scope="范围"][context="context]>
 <c:param/>
 可以有多个<c:param>标签
</c:url>


3:<c:direct>重定向标签可以将客户端发出的request请求重定向到其他URL服务端 由其他程序处理客户端的请求 这期间可以对request请求中的属性进行修改或添加 然后把所有属性传递到目标路径 语法有如下两种

<c:redirect url="url" [context="/context"]/>
<c:redirect url="url" [context="/context"]>
  <c:param/>
  可以有多个<c:param>标签
</c:redirect>


4:<c:param>标签用于为其他标签提供参数信息 可以实现动态指定参数 从而使标签可以完成更复杂的程序应用 语法如下

<c:param name="paramName" value="paramValue"/>


三:流程控制标签

流程控制标签在程序中会根据不同的条件去执行不同的代码来产生不同的运行结果 使用流程控制可以处理程序中任何可能发生的事情


1:<c:if>条件判断标签可以根据不同的条件处理不同的业务 它与Java语言中的if语句类似 只不过该标签没有else标签

判断条件表达式 并将表达结果保存在var属性指定的变量中

<c:if test="condition" var="name" [scope=page|request|session|application]/>


语法二还可以根据条件判断结果去执行标签体

<c:if test="conditon" var="name" [scope="范围"]>
 标签体
</c:if>


2:<c:choose>标签可以根据不同的条件完成指定的业务逻辑 如果没有符合条件就执行默认条件的业务逻辑<c:choose>标签只能作为<c:when><c:otherwise>标签的父标签 而要实现条件选择逻辑可以在<c:choose>中嵌套<c:when><c:otherwise>标签来完成


即判断when的条件是否正确 正确则显示 否则判断下一个 直到判断到otherwise


<c:choose>
 标签体
</c:choose>


3:<c:when>条件测试标签是<c:choose>的子标签 它根据不同的条件执行相应的业务逻辑

<c:when test="conditon">
 标签体
</c:when>


4:<c:otherwise>同上 语法如下

</c:otherwise>
标签体
</:otherwise>


四:循环标签


1:<c:forEach>循环标签可以根据循环条件 遍历数组和集合类中的所有或部分数据  语法有两种

<c:forEach items="data" [var="name"] [begin="start"][end="finish"][step="step]
[varStatus="statusName"]>
 标签体
</c:forEach>
<c:forEach begin="start" end="finish" [var="name"] [varStatus="statusName"][step="step"]>
标签体
</c:forEach>


2:<c:forTokens>迭代标签可以用指定的分隔符将一个字符串分隔开 根据分割的数量确定循环的次数 语法如下

<c:forTokens items="String" delims="char" [var="name"] [begin="start"] [end="end"][step="len"][varStatus="statusName"]>
 标签体
</c:forTokens>


总结


首先对JSTL标签库进行了简要介绍 最后重点对表达式标签 URL相关标签 流程控制标签和循环标签进行了详细介绍

相关文章
|
6天前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
|
8天前
|
JSON JavaScript 前端开发
蓝桥杯web组赛题解析和杯赛技巧
本文作者是一位自学前端两年半的大一学生,在第十五届蓝桥杯Web组比赛中获得省一和国三。文章详细解析了比赛题纲,涵盖HTML、CSS、JavaScript、Echarts和Vue等技术要点,并分享了备赛技巧和比赛经验。作者强调了多写代码和解题思路的重要性,同时提供了省赛和国赛的具体流程及注意事项。希望对参赛者有所帮助。
|
9天前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
29 4
|
14天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
49 4
|
13天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
41 2
|
17天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
56 3
|
29天前
|
前端开发 开发者 容器
构建响应式Web界面:Flexbox与Grid布局的深度解析
【10月更文挑战第11天】本文深入解析了CSS3中的Flexbox和Grid布局,探讨了它们的特点、应用场景及使用方法。Flexbox适用于一维布局,如导航栏;Grid布局则适用于二维布局,如复杂网格。通过示例代码和核心属性介绍,帮助开发者灵活构建响应式Web界面。
51 5
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
前端大模型入门(三):编码(Tokenizer)和嵌入(Embedding)解析 - llm的输入
本文介绍了大规模语言模型(LLM)中的两个核心概念:Tokenizer和Embedding。Tokenizer将文本转换为模型可处理的数字ID,而Embedding则将这些ID转化为能捕捉语义关系的稠密向量。文章通过具体示例和代码展示了两者的实现方法,帮助读者理解其基本原理和应用场景。
159 1
|
8天前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
24 0
WK
|
14天前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
16 0

热门文章

最新文章

推荐镜像

更多