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的映射如下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值