Java Web程序设计

刘肃平、聂军、王华、李勇波、魏碧晴

目录

  • 1 Java Web概述
    • 1.1 任务导引
    • 1.2 动态网页技术介绍
    • 1.3 JSP的运行环境
    • 1.4 JSP的运行原理
    • 1.5 JSP程序开发模式
    • 1.6 JSP开发工具
    • 1.7 任务实施:JSP开发环境搭建及第一个Hello World程序
  • 2 JSP基本语法
    • 2.1 任务导引
    • 2.2 JSP的基本组成
    • 2.3 脚本元素
    • 2.4 指令元素
    • 2.5 动作元素
    • 2.6 任务实施
  • 3 服务器交互
    • 3.1 任务导引
    • 3.2 JSP内置对象概述
    • 3.3 out对象
    • 3.4 request对象
    • 3.5 response对象
    • 3.6 session对象
    • 3.7 application对象
    • 3.8 其他内置对象
    • 3.9 任务实施:使用JSP内置对象实现登录和注销功能
  • 4 JavaBean技术
    • 4.1 任务引导
    • 4.2 JavaBean概述
    • 4.3 JavaBean的应用
    • 4.4 JavaBean的作用域
    • 4.5 任务实施
    • 4.6 JSP中的文件操作
  • 5 Servlet技术
    • 5.1 任务引导
    • 5.2 Servlet基础
    • 5.3 Servlet开发
    • 5.4 Servlet常用API
    • 5.5 任务实施
  • 6 第6章 过滤器和监听器
    • 6.1 任务导引
    • 6.2 Servlet过滤器
    • 6.3 过滤器创建与配置
    • 6.4 Servlet监听器
    • 6.5 Servlet3.0新特性
    • 6.6 任务实施
  • 7 Java Web的数据库操作
    • 7.1 任务导引
    • 7.2 JDBC技术
    • 7.3 使用JDBC驱动程序访问数据库
    • 7.4 数据库连接的JavaBean
    • 7.5 JDBC对事务的操作
    • 7.6 连接池技术
    • 7.7 任务实施
    • 7.8 扩展阅读
  • 8 JSP高级技术
    • 8.1 任务导引
    • 8.2 EL概述
    • 8.3 JSTL标签库简介
    • 8.4 JSTL核心标签
    • 8.5 JSP与Ajax
    • 8.6 任务实施
    • 8.7 扩展阅读
  • 9 JSP实用组件技术
    • 9.1 任务导引
    • 9.2 上传与下载组件
    • 9.3 发送E-mail
    • 9.4 JSP动态图表
    • 9.5 在线编辑器
    • 9.6 任务实施
JSTL核心标签

请同学们先浏览PPT,这是一个任务点哈!完成后有惊喜哟!




1.输出结果标签<c:out>

 <c:out>是用来输出数据或表达式的结果到JspWriter对象中,(out是JspWriter的实例)。该标签有两种语法格式,具体如下: 

(1)不包含body内容的情况。

<c:out value="value" [escapeXml={true|false}"] [default="default"]/> 

(2)包含body内容的情况。 

<c:out value="value" [escapeXml={true|false}"]/>

       default

</c:out> 

<c:out>标签的属性如表8-2所示。            

 

属性名称

 
 

类型

 
 

说明

 
 

value

 
 

Object

 
 

表示在JSP页面显示的值

 
 

escapeXML

 
 

boolean

 
 

表示是否转换特殊字符,默认值为true

 
 

default

 
 

Object

 
 

default是默认值,如果value为null,则显示default的值

 


2.对象属性设置标签<c:set> 

<c:set>标签主要用于在一个范围中(request、session)设置某个值或者设置某个对象的属性,该标签有以下4种形式。 

(1)使用value属性的值设定某个范围内变量的值,语法格式如下:

<c:set value="var" var="var" [scope="{page|request|session|application}"]/>

(2)使用body内容设定某个范围内变量的值,语法格式如下:

<c:set var="var" [scope="{page|request|session|application}"]>

    //body 内容

</c:set>

(3)使用value属性的值设定某个对象的属性值,语法格式如下:

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

(4)使用body内容设定某个对象的属性值,语法格式如下:

<c:set value="value" target="target" property="property">

      //body 内容

</c:set> 

3.对象值删除设置标签<c:remove> 

<c:remove>标签的主要用途是用于删除某个变量或者属性。该标签的语法格式如下: 

<c:remove  var="var" [scope="{page|request|session|application}"]/> 

var:表示将要删除的参数名,类型为String。

scope:表示var的有效范围,类型为String。 


举例: <c:remove var="sampleValue" scope="session"/> 

以上代码也相当于:session.removeAttribute("sampleValue");

注意:如果没有指定var的范围scope时,那么将会执行pageContext.removeAttribute(var)的操作。

4.捕捉异常标签<c:catch>

<c:catch>为捕捉异常标签,该标签主要用于处理产生错误的异常情况,并且将错误信息进行存储,该标签语法格式如下: 

<c:catch  [var="var"]>

         //省略

</c:catch> 

var:用于标记异常的名字,类型为String,该属性的作用域必须是page。 

注意:<c:catch>标签捕获的异常都应该属于java.lang.Throwable类型并且var类型与捕获到的异常类型要相同。

5.if条件判断标签<c:if>

<c:if>是条件判断标签,是流程控制标签之一。该标签主要用于进行条件判断并且只有当条件成立时才会处理body内容,相当于java中的if语句。其具体的语法格式有如下两种: 

(1)不包含body内容。

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

(2)包含body内容。

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

        body 内容

</c:if> 

6.choose条件判断标签<c:choose>

<c:choose>标签是流程控制标签之一,其主要用于条件选择,作为<c:when>与<c:otherwise>的父标签,该标签不含任何属性。<c:choose>和两个子标签的组合相当于java中的if-else语句,具体的语法格式如下: 

 <c:choose>

     <c:when test="condition1">

            body content1

     </c:when>

     ……//省略

     <c:otherwise>

            body content

     </c:otherwise>

</c:choose> 

7.条件分支标签<c:when>和其它条件分支标签<c:otherwise>

<c:when>为条件分支标签,是<c:choose>标签的子标签,并且是流程控制标签之一。该标签的用途类似于<c:if>标签且只有在test所指定的条件成立时,才会执行body内容。该标签的具体语法格式如下: 

<c:when test="condition"> 

        body content

</c:when> 

test:说明表达式的条件,类型为boolean。

<c:otherwise>为其它条件分支标签,是流程控制标签之一。该标签与<c:when>子标签相互匹配。如果<c:choose>父标签内所有的<c:when>子标签的test条件都不成立,那么,将会执行<c:otherwise>子标签。<c:otherwise>子标签的具体语法格式如下: 

<c:otherwise>

        body content

</c:otherwise> 

8.迭代标签<c:forEach>

迭代标签有两种:<c:forEach>、<c:forTokens>。<c:forEach>标签的主要功能是用于循环控制并且可以将集合中的成员循环浏览一遍,相当于java中的遍历操作。<c:forTokens>标签的主要功能是用于浏览字符串中的所有成员并且可以指定一个或多个分隔符。 

<c:forEach>标签的语法格式如下: 

<c:forEach [var="varName"] items="collection"[varStaus="varStatusName"][begin="begin"] [end="end"][step="step"]>

标签体

</c:forEach> 

<c:forTokens>标签的语法格式如下: 

<c:forTokens items="stringofTokens" [var="varName"] [varStatus="varStatusName"]

                      [begin="begin"] [end="end"][step="step"]>

标签体

</c:forTokens> 

9.导入URL资源标签<c:import>

<c:import>是导入URL资源标签。是URL资源标签之一。该标签主要是用于将其它静态或动态文件引入到当前的jsp页面中。该标签的两种语法格式如下: 

(1)被引入的文件内容(URL属性指定的网页内容)以String对象的形式输出,语法格式如下: 

<c:import url="url" [context="context"][var="var"]

[scope="{page|request|session|application}"][charEncoding="charencoding"]>

…… //省略

</c:import> 

(2)被引入的文件内容(URL属性指定的网页内容)以Reader对象的形式输出。其具体语法格式如下: 

<c:import url="url"[context="context"] varReader="varreader"

[charEncoding="charencoding"]>

    …… //省略

</c:import> 

10.构造URL标签<c:url>

<c:url>是构造URL标签,是URL资源标签之一。该标签主要用来为J2EE Web应用程序构造URL(生成一个URL)。即当前网页的路径名,其语法格式有如下两种。 

(1)不包含body内容

<c:url value="value"[context="context"][var="var"][scope="{page|request|session|qpplication}"]/> 

(2)包含body内容

<c:url value="value"[context="context"][var="var"][scope="{page|request|session|qpplication}"]>

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

</c:url> 

11.重定向URL标签<c:redirect>和URL参数传递标签<c:param>

<c:redirect>是重定向URL标签,是URL资源标签之一。该标签用来将客户端的请求从一个jsp页面导入到其它的页面并且该标签主要用于http(超文本传输协议)重定向。<c:redirect>标签的语法格式有如下两种: 

(1)不包含body内容。

<c:redirect  url="url" [context="context"] />

(2)包含body内容。

<c:redirect  url="url" [context="context"] >

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

</c:redirect> 

12.格式化标签<fmt:formatDate>

JSTL的格式化标签有两2个,分别是:<fmt:formatDate>和<fmt:formatNumber>。 

(1)<fmt:formatDate>是格式化日期/时间标签,该标签主要用来设定日期和时间的格式并按照设定的格式输出相关信息。语法格式如下: 

<fmt:formatDate value="date/time"  [type="type"][dateStyle="dateStyle"]

[timeStyle="timeStyle"][pattern="patternexpression"]

[timeZone="timeZone"][var="varname"]

[scope="{page|request|session|application}"]/> 

(2)<fmt:formatNumber>是格式化数值标签,该标签主要用于设置特定语言环境下的数值输出方式。其语法格式如下: 

<fmt:formatNumber value="number"  [type="type"] [pattern="patternexpression"]

[currencyCode="currencycode"]  [currencySymbol="currencysymbol"]

[maxintegerDigits="maxintegerdigits"]  [minintegerDigits="minintegerdigits"]

[maxFractionDigits="maxfractiondigits"]  [maxFractionDigits="minfractiondigits"]

[groupingUsed="groupinUsed"]  [var="var"] [scope="scope"]/>