| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java Web10 -> 正文阅读 |
|
[Java知识库]Java Web10 |
一、 1、<c:if>标签 在程序开发中,经常需要使用d语句进行条件判断,如果要在JSP页面中进行条件判断,就需要使用Core标签库提供的<:1>标签,该标签专门用于完成JSP页面中的条件判断,它有两种语法格式,如下。 语法1:没有标签体的情况 <c:主f test="testCondition" var="result" [iscope="{page | reques | session | application}"]/> 语法2:有标签体的情况,在标签体中指定要输出的内容 <c:if test-"testCondition" var="result" [scope="(page IrequestIsessionlapplication}"]> ? ? ? ??body content </c:if> <c:if>标签有3个属性: (1)test属性用于设置逻辑表达式 (2)var属性用于指定逻辑表达式中变量的名字 (3)scope属性用于指定var变量的作用范围,默认值为page。如果属性test的计算结果为tue,那么标签体将被执行,否则标签体不会被执行。 2、在WebContent目录下创建一个名为?c_if.jsp的文件。 ?3、?<c:choose>标签 在程序开发中不仅需要使用if条件语句,还经常会使用if-else语句。为了在JSP页面中也可以完成同样的功能,Core 标签库提供了<c:choose>标签,该标签用于指定多个条件选择的组合边界,它必须与<c:when>、<c:otherwise>标签一 起使用。 (1)<c:choose>标签没有属性,在它的标签体中只能嵌套一个或多 个<c:when>标签和零个或一个<c:otherwise>标签,并且同一个<c:choose>标签中所有的<c:when>子标签必须出现在<c:otherwise>子标签之前,其语法格式如下。 <c: choose> ? ? ? ?Body content (<when> and <otherwise> subtags) </c:choose> (2)<c:when>标签只有一个test属性,该属性的值为布尔类型。test 属性支持动态值,其值可以是一个条件表达式,如果条件表达式的值为true, 就执行这个<c:when>标签体的内容,其语法格式如下。 <c:when test="testCondition"> ? ? ? ? ??Body content </c:when> (3)<c:otherwise>标签没有属性,它必须作为<c:choose>标签最后分支出现。当所有的<c:when>标签的test条件都不成立时,才执行和输出<c:otherwise>标签体的内容,其语法格式如下。 <c:otherwise> ? ? ??conditional block </c:otherwise> 4、在WebContent目录下创建一个名为c_choose.jsp的文件。 ?5、<c:forEach>标签 在JSP页面中,经常需要对集合对象进行循环迭代操作,为此,Core 标签库提供了一个<c:forEach>标签,该标签专门用于迭代集合对象中的元素,如Set、List、 Map、数组等,并且重复执行标签体中的内容。 语法1:迭代包含多个对象的集合 <c:forEach?[var="varName"] items="collection"?[varStatus="varStaatusName"] [begin="begin"] [end="end"] [step-"step")> ? ? ??body content </c:forEach> 语法2:迭代指定范围内的集合 <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin"?end="end" [step="step"]> ? ? ?body content </c: forEach> ●var属性用于指定将当前迭代到的元素保存到page域中的名称。 ●items属性用于指定将要迭代的集合对象。 ●varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称。 ●begin属性用于指定从集合中第几个元素开始进行迭代,begin的索引值从0开始。如果没有指定items属性,就从begin指定的值开始迭代,直到迭代结束为止。 ●step属性用于指定迭代的步长,即迭代因子的增量。 6、c_foreach1.jsp ? ?7、c_foreach2.jsp ?8、c_foreach3.jsp ?9、c_url.jsp ? ?10、Filter 过滤器 Fiter被称作过滤器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Serviet进行响应处理前后实现些特殊功能。 这就好比现实中的污水净化设备, 它可以看作一个过滤器,专门用于过滤污水杂质。 ( 1)首先在Eclipse中创建- -个名为chapter08的Web项目,然后在该项目的src目录下创建一个名为cn.itcast.chapter08.filter包,最后在该包下创建一个名为MyServlet的Servlet类,该类用于访问时在浏览器中输出“Hello MyServlet"。 MyServlet 类的具体代码如下: Web.xml ?(2)在cn.itcast.chapter08.filter 包中创建一-个名为MyFilter 的Filter 类,该类用于拦截MyServlet程序。MyFilter 的实现代码及web.xml中的代码和运行图: ?11、Filter 映射 1、 (1)使用通配符“.” 拦截用户的所有请求 Filter的<filter -mapping>元素用于配置过滤器拦截的资源信息,如果想让过滤器拦截所有的请求访问,那么需要使用通配符“*” 来实现。 ?(2)拦截不同方式的访问请求 在webxn文件中,一个<filter-mapper>无素用于配置一个Filer 所负责拦截的资源。 2、在chaper8项目的cn icast chapter08 iter包中,创建一个名为FowarSerlet的Seviel类.该类用于将请求转发给frstjsps页面。 实现代码及web.xml中的代码和运行图: ? ?3、为了拦截ForwardServlet通过forward()方法转发的first.jsp 页面,需要在web.xml文件中的对应过滤器配置信息中增加一个<dispatcher>子元素,将该元素的值设置为FORWARD,修改后的Forwardilter的映射如下。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:25:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |