`
topcss
  • 浏览: 100819 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

Jsp_Servlet_JavaBean_Chapter08_理论笔记

阅读更多
1、EL表达式的使用
   * 语法: ${表达式}
     EL: Expression Lanuage(表达式语言)
     注意:EL表达式只能在支持Servlet2.4和Jsp2.0的容器上才能使用。
     表达式=运算符+操作数
  
   * 运算符
     a) 算术运算符:+ - * /(div) %(mod)
     b) 逻辑元算符:&&(and) ||(or) !(not)
     c) 比较运算符:>(gt:great than) <(lt:less than) >=(ge:great and equal) <=(le:less and equal) ==(eq:equal) !=(ne:not equal)
     d) 条件运算符: ? :
     e) 空运算符: empty:null, ""
     说明: 与Java中的运算符比较:多一个空运算符,少赋值运算符

   * 操作数
     常量
     a) 整型
     b) 小数
     c) 布尔型
     d) 字符型(用单引号或双引号均可)
     e) 空(null)
     
     变量:
        a) 实质:四个标准范围的属性
        b) 变量的搜索顺序:按照范围从小到大的顺序搜索:pageContext < request < session < application
        c) 变量的访问:可以通过.运算符或者[]运算符访问
    
     隐式对象
        a) 与作用范围有关的: pageScope, requestScope, sessionScope, applicationScope
        b) 与输入有关的: param, paramValues
        c) pageContext:通过这个隐式对象可以访问到request, session, servletContext
        d) header, cookie

   * 使用场合
        a) 用于html标签中
        b) 与JavaBean结合使用: 创建的JavaBean必须要放到某一个标准范围中,提供相应的get方法进行对象导航
        c) 与jstl结合使用
        d) 其他用法:el表达式输出Map, List, 数组和对象数组中的值

2、JSTL的使用
   * 基本概念:Jsp Standard Taglib Library,主要用于提供无脚本环境
     注意:JSTL只能够在支持Servlet2.4和Jsp2.0的容器上才能正常使用。
    
   * 分类
     a) 核心标签库:通用标签库,条件标签库,迭代标签库
     b) I18N标签库
     c) SQL标签库
     d) XML标签库
     e) 函数库
  
   在使用JSTL的时候,首先要将JSTL库导入到当前工程中,并且在Jsp页面中通过taglib指令将标签库描述符文件导入
  
   * 核心标签库
     a) 通用标签库:用于在JSP页面内设置、删除变量和显示变量的值
        set:
           功能:设置指定范围内的变量值,如果该变量不存在,则创建它。
           语法:<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”]/>
                 var:指定变量的名称,value:指定变量的值 scope:指定变量的存储范围,默认为page
          
        remove:
           功能:用于删除变量
           语法:<c:remove var=”varName” [scope=”{page|request|session|application}”]/>
                 var:指定要删除的变量名  scope:指定变量的存储范围
       
        out:
           功能:计算表达式并将结果显示在页面上
           语法:<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”] />
                 <c:out value=”value” [escapeXml=”{true|false}”]>
                     default value
</c:out>
                 value:指定表达式或变量 default:指定输出的默认值 escapteXml:如果value中包含<,>,&,',"
                 等特殊字符,在输出的时候是否将其转换为其对应的字符实体代码。默认值为true.
       
     b) 条件标签库:用于控制程序执行流程
       
        if(....) {
        ....
        }
       
        if
          语法:<c:if test=”testCondition” var=”varName” [scope=”{page|request|session|application}”]/>
                <c:if test=”testCondition” [var=”varName”] [scope=”{page|request|session|application}”]>
body content
</c:if>
                test:指定条件表达式  var:指定变量名 scope:指定变量存储的范围
       
        switch...case...
       
        choose:
           语法:<c:choose>
                    <c:when test=”testCondition1”>
body content
</c:when>
<c:when test=”testCondition2”>
body content
</c:when>
...
<c:otherwise>
conditional block
</c:otherwise>
                </c:choose>
                test:指定条件表达式
           
     c) 迭代标签库
        forEach:(相当于java中的for循环)
      语法:<c:forEach [var=”varName”] items=”collection” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>
               body content
           </c:forEach>
          
           <c:forEach [var=”varName”][varStatus=”varStatusName”]begin=”begin” end=”end” [step=”step”]>
               body content
           </c:forEach>
           items:指定要迭代的集合 var:指定变量名 varStatus:指定迭代计数变量名 begin:指定迭代集合的开始标号
           end:指定迭代集合的结束标号 step:指定迭代步长
      
       示例:对List,Set,Map,数组的循环遍历    
          
        forTokens:
           <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
              body content
           </c:forTokens>
           items:指定要迭代的字符串 delims:指定字符串中的分隔符 var:指定变量名 varStatus:指定迭代中的计数变量
           begin:指定迭代的起始标号 end:指定迭代的结束标号 step:指定迭代步长
    
   * I18N标签库
     formatNumber
功能:格式化数字
语法:<fmt:formatNumber value=”numericValue”
[type=”{number|currency|percent}”]
[pattern=”customPattern”]
[currencyCode=”currencyCode”]
[currencySymbol=”currencySymbol”]
[groupingUsed=”{true|false}”]
[maxIntegerDigits=”maxIntegerDigits”]
[minIntegerDigits=”minIntegerDigits”]
[maxFractionDigits=”maxFractionDigits”]
[minFractionDigits=”minFractionDigits”]
[var=”varName”]
[scope=”{page|request|session|application}”]/>]

<fmt:formatNumber [type=”{number|currency|percent}”]
[pattern=”customPattern”]
[currencyCode=”currencyCode”]
[currencySymbol=”currencySymbol”]
[groupingUsed=”{true|false}”]
[maxIntegerDigits=”maxIntegerDigits”]
[minIntegerDigits=”minIntegerDigits”]
[maxFractionDigits=”maxFractionDigits”]
[minFractionDigits=”minFractionDigits”]
[var=”varName”]
[scope=”{page|request|session|application}”]>
numeric value to be formatted
</fmt:formatNumber>
    
     formatDate
     功能:格式化日期
        语法:<fmt:formatDate value="date"
[type="{time|date|both}"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
[pattern="customPattern"]
[timeZone="timeZone"]
[var="varName"]
[scope="{page|request|session|application}"]/>
       
  
   * SQL标签库
      setDataSource
        功能:设置数据源
       
      语法:<sql:setDataSource {dataSource="dataSource" | url="jdbcUrl"
                              [driver="driverClassName"]
[user="userName"]
[password="password"]}
[var="varName"]
[scope=”{page|request|session|application}”]/>

        示例:<sql:setDataSource driver="com.mysql.jdbc.Driver"
                                url="jdbc:mysql://localhost:3306/studentdb"
        user="root"
        password="root"
        var="con"
        scope="page" />
       
      query
      功能:执行数据库查询
     
      语法:
         <sql:query sql="sqlQuery"
var="varName" [scope=”{page|request|session|application}”]
[dataSource=”dataSource”]
[maxRows="maxRows"]
[startRow="startRow"]/>

<sql:query sql="sqlQuery"
var="varName" [scope=”{page|request|session|application}”]
[dataSource=”dataSource”]
[maxRows="maxRows"]
[startRow="startRow"]>
<sql:param> actions
</sql:query>

<sql:query var="varName"
[scope=”{page|request|session|application}”]
[dataSource=”dataSource”]
[maxRows="maxRows"]
[startRow="startRow"]>
query
optional <sql:param> actions
</sql:query>

示例:
     <sql:query var="rows" dataSource="${con}">
select * from student
</sql:query>

<sql:query var="rows" dataSource="${con}">
select * from student where sid = ?
<sql:param value="1" />
</sql:query>
     
      update
      功能:执行数据库更新
     
      语法:
          <sql:update sql="sqlUpdate"
[dataSource=”dataSource”]
[var="varName"] [scope=”{page|request|session|application}”]/>

<sql:update sql="sqlUpdate"
[dataSource=”dataSource”]
[var="varName"] [scope=”{page|request|session|application}”]>
<sql:param> actions
</sql:update>
     
            <sql:update [dataSource=”dataSource”]
[var="varName"] [scope=”{page|request|session|application}”]>
update statement
optional <sql:param> actions
</sql:update>

示例:
    <sql:transaction dataSource="${con}">
<sql:update var="rowCount">
update student set stuAge = ? where sid = ?
<sql:param value="100" />
<sql:param value="2" />
</sql:update>
</sql:transaction>

      transaction
          功能:执行事务
         
          语法:
             <sql:transaction [dataSource=”dataSource”]
[isolation=isolationLevel]>
<sql:query> and <sql:update> statements
   </sql:transaction>
  
isolationLevel ::= "read_committed" | "read_uncommitted" | "repeatable_read" | "serializable"
         
          示例:
     
      param
      功能:设置sql参数
     
      语法:
          <sql:param value=”value”/>
         
          <sql:param>
parameter value
</sql:param>

示例:
     
   * 函数库
         格式:前缀 + 冒号 + 函数名
        
         自定义函数的实现步骤:
         1、创建Java类,在类中提供静态的方法(定义)
            public static List findUsers() {
								Group g1 = new Group("少年组");
								Group g2 = new Group("中年组");
								Group g3 = new Group("老年组");
								
								User u1 = new User("zs", 10, g1);
								User u2 = new User("lisi", 30, g2);
								User u3 = new User("wangwu", 60, g3);
								
								List userList = new ArrayList();
								userList.add(u1);
								userList.add(u2);
								userList.add(u3);
								
								return userList;
						}

        
         2、要到WEB-INF创建标签库描述符文件(.tld)(描述)
         <?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">

<description>my functions library</description>
<display-name>my functions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>http://www.westaccp.com/functions</short-name>
<uri>http://www.westaccp.com/functions</uri>

<function>
<name>finduser</name>
<function-class>
com.westaccp.store.MyFounctions
</function-class>
<function-signature>
java.util.List findUsers()
</function-signature>
</function>

</taglib>
        
         3、在Jsp页面中,通过taglib指令引入标签库并使用(使用)
            <c:set var="userList" value="${my:finduser() }" scope="page" />

<select>
<c:forEach items="${userList}" var="u">
<option value="${u.age }">${u.group.name }</option>
</c:forEach>
</select>
分享到:
评论

相关推荐

    jsp-servlet-javaBean.zip_Servlet/JSP_javabean_javabean servlet_j

    本教程通过"jsp-servlet-javaBean.zip"压缩包,旨在帮助开发者深入理解并熟练运用Servlet、JSP(JavaServer Pages)以及JavaBean,实现经典的MVC(Model-View-Controller)设计模式。以下将详细介绍这三个核心概念...

    (JSP_JavaBean_Servlet).zip_Jsp/Servlet_javabean servlet_servlet

    在IT行业中,Web开发是至关重要的领域,而JSP(JavaServer Pages)、JavaBean和Servlet是构建动态Web应用的三大核心技术。本项目"(JSP+JavaBean+Servlet)"结合了这三个组件,旨在创建一个功能丰富的Web应用程序。接...

    jsp_servlet_javaBean_MVC.rar_jsp servlet javabean_servlet jsp_

    在IT领域,`jsp_servlet_javaBean_MVC.rar`这个压缩包文件似乎是一个关于Web开发的教学资源,重点展示了如何利用Java技术栈中的JSP(JavaServer Pages)、Servlet和JavaBeans来构建一个基于MVC(Model-View-...

    denglu(JSP-Servlet-JavaBean).zip_servlet jsp_servlet+javabean

    本项目"登录系统(denglu)(JSP-Servlet-JavaBean).zip_servlet jsp_servlet+javabean"就是一个典型的Java Web应用示例,它通过结合JSP(JavaServer Pages)、Servlet和JavaBean来实现用户登录功能。下面将详细介绍这...

    JSP_Servlet_JavaBean—在线通讯录完整版

    【JSP_Servlet_JavaBean—在线通讯录完整版】是一个典型的Web应用程序示例,它展示了如何使用Java技术栈来构建一个功能完善的在线通讯录系统。这个项目主要涉及了三个核心技术:JavaServer Pages (JSP)、Servlet以及...

    ACCP 二期JSP_servlet_javabean笔记

    ### ACCP 二期JSP_servlet_javabean笔记 #### 一、Java EE架构概述与组件介绍 根据描述中的信息,“北大青鸟二期的笔记”涵盖了Java EE的基础概念及重要组成部分,包括显示层(示)、业务逻辑层(模)以及持久化层...

    jsp+servlet+javaBean实现MVC-jspmvc.zip

    jsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_...

    基于JSP_Servlet_JavaBean的电子书店

    【基于JSP_Servlet_JavaBean的电子书店】 在IT领域,开发Web应用程序时,我们经常使用Java技术栈,特别是对于构建动态网站,如电子书店。这个项目“基于JSP_Servlet_JavaBean的E-Book电子书店”是这样一个实例,它...

    Y2_开发基于JSP_Servlet_JavaBean的网上交...

    Y2_开发基于JSP_Servlet_JavaBean的网上交北大青鸟y2课程之一

    jiaotong.rar_JSP 管理系统_JavaBean servlet jsp_jsp_jsp servlet_交通 管理

    jsp+javabean+servlet架构,交通资讯网后台管理系统

    jsp_servlet_javaBean 增删改查

    `jsp_servlet_javaBean` 是一种经典的Web开发模式,主要应用于Java Web应用程序,用于实现模型(Model)、视图(View)和控制器(Controller)的分离,以提高代码的可维护性和可扩展性。在本项目中,我们将深入探讨如何...

    jsp-servlet-javabean留言本.rar_javabean_jsp_servlet jsp_三层架构_留言本

    标题"jsp-servlet-javabean留言本.rar_javabean_jsp_servlet jsp_三层架构_留言本"表明这是一个基于JSP、Servlet和JavaBean技术实现的在线留言本系统。其中,"jsp-servlet-javabean"暗示了这个系统采用了经典的Web...

    BBS.rar_MVC模式BBS论坛_bbs jsp_javabean_jsp/servlet BBS_servlet BB

    【标题】"BBS.rar_MVC模式BBS论坛_bbs jsp_javabean_jsp/servlet BBS_servlet BB" 涉及的是一个使用MVC(Model-View-Controller)设计模式构建的BBS论坛项目。在这个项目中,开发人员利用JSP(JavaServer Pages)、...

    JSP_Servlet_BBS.rar_jsp servlet_servlet BBS论坛

    例如,`&lt;jsp:include&gt;`用于包含其他页面,`&lt;jsp:useBean&gt;`用于实例化JavaBean。 3. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。初始化阶段,Servlet会被实例化并调用`init()`...

    JSP_SERVLET_JAVABEAN

    总的来说,JSP、Servlet和JavaBean是Java Web开发中不可或缺的部分,它们共同构建了强大的Web应用程序框架,提供了一种高效、灵活的方式来开发动态网页和Web服务。理解并熟练掌握这些技术,对于成为一名优秀的Java ...

    bbs.rar_bbs jsp_bbs servlet_java servlet_javabean_mvc bbs

    《基于JSP+Servlet+JavaBean的BBS系统解析》 在互联网技术发展的历程中,BBS(Bulletin Board System)论坛系统作为一种互动性强、信息交流便捷的平台,扮演了重要的角色。本文将深入探讨一个使用JSP+Servlet+...

    MVC.rar_FCKeditor jsp_fckeditor_mvc_mvc jsp_servlet

    【标题】"MVC.rar_FCKeditor jsp_fckeditor_mvc_mvc jsp_servlet" 涉及到的关键技术主要包括MVC(Model-View-Controller)架构模式、FCKeditor、以及Java web开发中的jsp、javabean和servlet。这个项目是一个使用...

    基于JSP_Servlet_JavaBean的网上交易平台

    **基于JSP、Servlet和JavaBean的网上交易平台详解** 在Web开发领域,JSP(JavaServer Pages)、Servlet和JavaBean是构建动态网站和应用程序的重要技术。这个“基于JSP_Servlet_JavaBean的网上交易平台”项目,就是...

    开发基于JSP_Servlet_JavaBean的网上交易系统课件

    在IT行业中,构建一个基于JSP(JavaServer Pages)、Servlet和JavaBean的网上交易系统是一项常见的任务,尤其在教育领域,如北大青鸟的教学课程中,这类技术的应用被广泛教授。下面将详细解释这些技术以及如何结合...

    jsp+servlet+javabean+mysqlbbs.rar_MySQL+JSP+servlet_javabean mys

    【标题】"jsp+servlet+javabean+mysqlbbs.rar_MySQL+JSP+servlet_javabean mys" 涉及的是一个基于Java技术栈开发的BBS(Bulletin Board System,即论坛系统)项目,这个项目利用了JSP(JavaServer Pages)、Servlet...

Global site tag (gtag.js) - Google Analytics