25@JSP_day11

 

一、jsp基础
  1、什么是jsp?
  2、如何写一个jsp?
    step1 写一个.jsp为后缀的文件
    step2 添加如下的内容
      1)html(css,javascript): 直接写。
      2)java代码:
        a, java代码片断  <%   %>
        b, jsp表达式   <%=  %>
        c, jsp声明    <%!   %> 为jsp所对应的servlet增加新的属性和方法。
      3)指令
        a, page指令
          import属性:导包
          pageEncoding属性: 告诉容器, jsp文件的编码。
          contentType属性: 添加response.setContentType。
          session属性: true(缺省值)/false。当值为false时,对应的servlet不再创建session。
          isErrorPage属性:true/false(缺省值),当值为true,表示这是一个错误处理页面。
          errorPage属性: 用来指定一个错误处理页面的地址。
            step1 写一个错误处理页面,在这个错误处理页面当中,一般设置isErrorPage=true,这样,才能够访问exception隐含对象。
            step2 在发生错误的页面当中,使用errorPage属性指定一个错误处理页面。
          isELIngnored属性: 是否忽略el表达式,true表示忽略。
        b, include指令:
          在.jsp文件转换成.java文件时,在该指令所在的位置插入file所指定的文件的内容。
            <%@include file="head.jsp"%>
        c, taglib指令:
          引入标签。
      4)隐含对象
        a,out
        b,request
        c,response
        d,session
        e,application
        f,exception:只有isErrorPage为true时,才能使用。
        g,pageContext: 容器会为每一个jsp实例(jsp所对应的servlet对象)创建一个pageContext 对象,作用:
          作用一:绑订数据
            setAttribute,getAttribute,removeAttribute
          作用二:查找其它隐含对象
            该对象提供了查找其它八个隐含对象的方法。
        h,config: ServletConfig对象
        i, page: 相当于this,指向jsp实例本身。
      5) 注释
        <!--注释内容-->: 注释内容可以是java代码,该代码会执行,但是,输出的内容不会显示在浏览器端。
        <%--注释内容--%>:注释的内容不能是java代码,输出的内容不会显示在浏览器端。
  3、jsp如何执行
    step1 .jsp文件转换成.java文件。
      a,  html  ----> service方法里,使用out.write输出。
      b, <%  %> ---> service方法里,照搬。
      c, <%=  %> --> service方法里,使用out.print输出。
      d, <%!   %> ---> 为jsp所对应的servlet增加新的属性和方法。
    step2 调用servlet的service方法(因为jsp已经转换成了一个servlet)。


二、jsp标签

  1、什么是jsp标签
    在.jsp文件当中,使用标签(类似于html标记)来代替直接编写java代码,这样做的好处是,jsp文件会更简洁,方便维护。
  2、什么是el表达式
    el表达式是一套计算规则,用于给jsp标签的属性赋值,在新的版本当中,也可以直接输出。
  3、el表达式的基本使用
    1)语法
      ${el表达式}
    2)基本使用
      a, 访问bean的属性
        方式一:  ${user.name}
          该表达式的执行过程:
            容器依次从pageContext,request,session,application这四个隐含对象中查找(比如执行request.getAttribute("user"))绑订名为"user"的对象,如果找到了,则不再向下查找,然后,调用getName方法,并输出其结果。如果找不到,输出""。
        方式二: ${user["name"]},这种用法,允许[]里面是一个变量。此外,还可以允许出现从0开始的下标,用来访问数组的某个元素值。
                         
          如果要指定查找的范围:
            ${requestScope.user.name}
              pageScope: 从pageContext查找。
              requestScope,sessionScope,applicationScope
      b,获得请求参数值
        方式一: ${param.username}
          相当于request.getParameter("username");
        方式二:${paramValues.interest}
          相当于request.getParameterValues("interest");
      c, 计算表达式的值,输出。
        算术运算: "+","-","*","/","%",但是,"+"操作不能够连接字符串。
        逻辑运算: && || !
        关系运算: ">",">=","<","<=","==","!="。
        empty运算: 以下四种情况为true
          空字符串
          集合内容为空
          值为null
          值不存在
      d,计算表达式的值,用于给标签的属性赋值。
  4、jstl(标准标签库)
    1)jstl是什么?
      apache将一些常用的标签捐献给了sun,sun将其命名为java standard taglib。
    2)jstl核心标签的使用 :
      step1 将标签相关的jar文件拷贝到WEB-INF\lib
        MyEclipse 5.5.1 GA\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_5.5.1\data\libraryset\JSTL1.1\lib
          standard.jar jstl.jar
      step2 使用taglib指令引入标签。
        <c:if test="" var="" scope="">:
          当test属性值为true时,执行标签体的内容。
          test属性值可以使用el表达式。
          var属性值指定绑订名
          scope属性指定绑订值
          scope的值可以是"page","request","session","application"。要注意,page指的是pageContext隐含对象。
        <c:choose> <c:when test=""> <c:otherwise>
          when,otherwise要放在choose里。
          when可以出现多次,但otherwise只能出现一次,表示例外。
        <c:forEach var="" items="" varStatus="">
          var属性值指定绑订名, 绑订范围是pageContext
          items属性指定要遍历的集合。
          varStatus属性指定绑订名,绑订值是一个封装了当前遍历状态的对象。比如该对象的getIndex()返回遍历的对象的下标(下标从0开始),getCount()返回是第几次遍历。            
  5、自定义标签
  6、el函数
  7、自定义el函数   

 

posted @ 2012-06-07 00:14  笑仁术Rex  阅读(185)  评论(0编辑  收藏  举报