• JSP和El表达式和JSTL标签库使用


    核心标签库:

      1 <%@ page 
      2    language="java" 
      3    import="java.util.*"
      4    pageEncoding="utf-8"
      5    session="true"
      6   %>
      7 
      8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      9 <html>
     10   <head> 
     11     <title>page指令</title>  
     12   </head>
     13   
     14   <body>
     15       <%
     16            //String name = null;
     17            //name.charAt(1);
     18            int i = 100/0;
     19            
     20           HttpSession session1 = request.getSession();
     21           //session.getId();
     22        %>
     23   </body>
     24 </html>
     25 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" buffer="1kb"%><%
     26         for(int i=1;i<=1024;i++){
     27             out.write("a");
     28         }
     29         //查看缓存区大小
     30         System.out.println("当前缓存区大小:"+out.getBufferSize());
     31         //查看缓存区剩余大小
     32         System.out.println("缓存区剩余大小:"+out.getRemaining());
     33         //刷新缓存
     34         //out.flush();
     35         response.getWriter().write("123");
     36      %>
     37   </body>
     38 </html>
     39 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     40 
     41 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     42 <html>
     43   <head> 
     44     <title>从四个域中获取数据</title>  
     45   </head>
     46   
     47   <body>
     48     page域:<%=pageContext.getAttribute("message",PageContext.PAGE_SCOPE) %><br/>
     49     request域: <%=pageContext.getAttribute("message",PageContext.REQUEST_SCOPE) %><br/>
     50     session域: <%=pageContext.getAttribute("message",PageContext.SESSION_SCOPE) %><br/>
     51     context域:<%=pageContext.getAttribute("message",PageContext.APPLICATION_SCOPE) %><br/>
     52   </body>
     53 </html>
     54 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     55 
     56 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     57 <html>
     58   <head> 
     59     <title>EL语法</title>  
     60   </head>
     61   
     62   <body>
     63     <%
     64      String name = "rose";  
     65      //放入域中
     66      //pageContext.setAttribute("name",name);
     67      pageContext.setAttribute("name",name,PageContext.REQUEST_SCOPE); 
     68       %>
     69       <%=name %>
     70       <br/>
     71       <%--
     72       1)从四个域自动搜索
     73        --%>
     74       EL表达式: ${name }
     75       <%--
     76           ${name } 等价于
     77               <%=pageContext.findAttribute("name")%>
     78        --%>
     79        <%--
     80         2) 从指定的域中获取数据
     81         --%>
     82         EL表达式: ${pageScope.name }
     83         <%--
     84             ${pageScope.name } 等价于
     85              <%= pageContext.getAttribute("name",PageContext.PAGE_SCOPE)%>
     86             
     87          --%>
     88   </body>
     89 </html>
     90 <%@ page language="java" import="java.util.*,gz.itcast.b_entity.*" pageEncoding="utf-8"%>
     91 
     92 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     93 <html>
     94   <head> 
     95     <title>EL输出不同类型的数据</title>  
     96   </head>
     97   
     98   <body>
     99     <%--
    100         1)EL输出对象的属性    
    101      --%>
    102      <%
    103          //保存数据
    104          Student student = new Student("eric",20);
    105          //放入域中
    106          pageContext.setAttribute("student",student);
    107          
    108          //List
    109          List<Student>  list = new ArrayList<Student>();
    110          list.add(new Student("rose",18));
    111          list.add(new Student("jack",28));
    112          list.add(new Student("lucy",38));
    113          //放入域中
    114          pageContext.setAttribute("list",list);
    115          
    116          //Map
    117          Map<String,Student> map = new HashMap<String,Student>();
    118          map.put("100",new Student("mark",20));
    119          map.put("101",new Student("maxwell",30));
    120          map.put("102",new Student("narci",40));
    121          //放入域中
    122          pageContext.setAttribute("map",map);
    123          
    124       %>
    125       
    126       <%--使用EL获取对象 --%>
    127       ${student.name} - ${student.age }
    128       <%--
    129        ${student.name} 等价于     (点相对于调用getXX()方法)
    130           <%=((Student)pageContext.findAttribute("student")).getName()%>
    131        --%>
    132        
    133        <hr/>
    134        <%--使用EL获取List对象 --%>
    135        ${list[0].name } - ${list[0].age }<br/>
    136        ${list[1].name } - ${list[1].age }<br/>
    137        ${list[2].name } - ${list[2].age }
    138        <%--
    139        list[0]等价于       (中括号相对于调用get(参数)方法)
    140                ((List)pageContext.findAttribute("list")).get(0)
    141         --%>
    142         <hr/>
    143         <%--使用EL获取Map对象 --%>
    144         ${map['100'].name } -  ${map['100'].age }<br/>
    145         ${map['101'].name } -  ${map['101'].age }<br/>
    146         ${map['102'].name } -  ${map['102'].age }<br/>
    147   </body>
    148 </html>
    149 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    150 
    151 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    152 <html>
    153   <head> 
    154     <title>EL表达式计算</title>  
    155   </head>
    156   
    157   <body>
    158     <%--
    159         1)算术表达式
    160           +  -  *  /
    161      --%>
    162      ${10+5 }<br/>
    163      ${10*5 }
    164      <hr/>
    165      <%--
    166         2)比较运算
    167         >  <  >=  <=  ==   !=
    168      --%>
    169      ${10>5 }<br/>
    170      ${10<5 }<br/>
    171      ${10!=10 }
    172      <hr/>
    173      <%--
    174         3)逻辑运算
    175          &&  ||  !
    176      --%>
    177      ${true && false }<br/>
    178      ${true || false }<br/>
    179      ${!false }<br/>
    180      <hr/>
    181       <%--
    182         4)判空
    183         null 或 空字符串:  empty
    184      --%>
    185      <%
    186          //String name = "eric";
    187          //String name = null;
    188          String name = "";
    189          pageContext.setAttribute("name",name);
    190       %>
    191       判断null: ${name==null }<br/>
    192       判断空字符: ${name=="" }<br/>
    193      判空:  ${name==null || name=="" }
    194      另一种判空写法: ${empty name }
    195      
    196          
    197   </body>
    198 </html>
    199 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    200 
    201 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    202 <html>
    203   <head> 
    204     <title>动作标签</title>  
    205   </head>
    206   
    207   <body>
    208     <%--转发 --%>
    209     <%
    210         //request.getRequestDispatcher("/09.action2.jsp?name=eric").forward(request,response);
    211      %>
    212     <%-- 参数 --%>
    213     <%--
    214     <jsp:forward page="/09.action2.jsp">
    215         <jsp:param value="jacky" name="name"/>
    216         <jsp:param value="123456" name="password"/>
    217     </jsp:forward>
    218       --%>
    219       
    220       <%--包含 --%>
    221       <%--
    222    <jsp:include page="/common/header.jsp">
    223            <jsp:param value="lucy" name="name"/>
    224        </jsp:include>
    225         --%>
    226         <%@include file="common/header.jsp" %>
    227       主页的内容
    228      
    229   </body>
    230 </html>
    231 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    232 
    233 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    234 <html>
    235   <head> 
    236     <title>动作标签</title>  
    237   </head>
    238   
    239   <body>
    240     <%--转发 --%>
    241     <%
    242         //request.getRequestDispatcher("/09.action2.jsp?name=eric").forward(request,response);
    243      %>
    244     <%-- 参数 --%>
    245     <%--
    246     <jsp:forward page="/09.action2.jsp">
    247         <jsp:param value="jacky" name="name"/>
    248         <jsp:param value="123456" name="password"/>
    249     </jsp:forward>
    250       --%>
    251       
    252       <%--包含 --%>
    253       <%--
    254    <jsp:include page="/common/header.jsp">
    255            <jsp:param value="lucy" name="name"/>
    256        </jsp:include>
    257         --%>
    258         <%@include file="common/header.jsp" %>
    259       主页的内容
    260      
    261   </body>
    262 </html>
    View Code
      1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
      2 
      3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      4 <html>
      5   <head> 
      6     <title>动作标签</title>  
      7   </head>
      8   
      9   <body>
     10     <%--转发 --%>
     11     <%
     12         //request.getRequestDispatcher("/09.action2.jsp?name=eric").forward(request,response);
     13      %>
     14     <%-- 参数 --%>
     15     <%--
     16     <jsp:forward page="/09.action2.jsp">
     17         <jsp:param value="jacky" name="name"/>
     18         <jsp:param value="123456" name="password"/>
     19     </jsp:forward>
     20       --%>
     21       
     22       <%--包含 --%>
     23       <%--
     24    <jsp:include page="/common/header.jsp">
     25            <jsp:param value="lucy" name="name"/>
     26        </jsp:include>
     27         --%>
     28         <%@include file="common/header.jsp" %>
     29       主页的内容
     30      
     31   </body>
     32 </html>
     33 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     34 
     35 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     36 <html>
     37   <head> 
     38     <title>动作标签</title>  
     39   </head>
     40   
     41   <body>
     42     <%=request.getParameter("name")%><br/>
     43     <%=request.getParameter("password")%>
     44   </body>
     45 </html>
     46 <%@ page language="java" import="java.util.*,gz.itcast.b_entity.*" pageEncoding="utf-8"%>
     47 <%--导入标签库 --%>
     48 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     49 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     50 <html>
     51   <head> 
     52     <title>核心标签库</title>  
     53   </head>
     54   
     55   <body>
     56     <%--使用标签 --%>
     57     <%--set标签 :保存数据(保存到域中)默认保存到page域 --%>
     58     <c:set var="name" value="rose" scope="request"></c:set>
     59     
     60     <%
     61         String msg = null;
     62         pageContext.setAttribute("msg",msg);
     63      %>
     64     
     65     ${msg }
     66     <br/>
     67     <%--out标签: 获取数据(从域中) 
     68     default: 当value值为null时,使用默认值
     69     escapeXml: 是否对value值进行转义,false,不转义,true,转义(默认)
     70     --%>
     71     <c:out value="${msg}" default="<h3>标题3</h3>" escapeXml="true"></c:out>
     72     
     73     <hr/>
     74     
     75     <%--if标签 :单条件判断--%>
     76     <c:if test="${!empty msg}">
     77         条件成立
     78     </c:if>
     79     
     80     <hr/>
     81     <%--choose标签+when标签+otherwirse标签: 多条件判断 --%>
     82     <c:set var="score" value="56"></c:set>
     83     
     84     <c:choose>
     85         <c:when test="${score>=90 && score<=100}">
     86             优秀
     87         </c:when>
     88         <c:when test="${score>=80 && score<90}">
     89             良好
     90         </c:when>
     91         <c:when test="${score>=70 && score<80}">
     92             一般
     93         </c:when>
     94         <c:when test="${score>=60 && score<70}">
     95             及格
     96         </c:when>
     97         <c:otherwise>
     98             不及格
     99         </c:otherwise>
    100     </c:choose>
    101     
    102     <%-- forEach标签:循环 --%>
    103     <%
    104         //List
    105          List<Student>  list = new ArrayList<Student>();
    106          list.add(new Student("rose",18));
    107          list.add(new Student("jack",28));
    108          list.add(new Student("lucy",38));
    109          //放入域中
    110          pageContext.setAttribute("list",list);
    111          
    112          //Map
    113          Map<String,Student> map = new HashMap<String,Student>();
    114          map.put("100",new Student("mark",20));
    115          map.put("101",new Student("maxwell",30));
    116          map.put("102",new Student("narci",40));
    117          //放入域中
    118          pageContext.setAttribute("map",map);
    119      %>
    120      <hr/>
    121      <%--
    122       begin="" : 从哪个元素开始遍历,从0开始.默认从0开始
    123       end="":     到哪个元素结束。默认到最后一个元素
    124       step="" : 步长    (每次加几)  ,默认1
    125       items="": 需要遍历的数据(集合) 
    126       var="": 每个元素的名称 
    127       varStatus="": 当前正在遍历元素的状态对象。(count属性:当前位置,从1开始)
    128       
    129      --%>
    130     <c:forEach items="${list}" var="student" varStatus="varSta">
    131         序号:${varSta.count} - 姓名:${student.name } - 年龄:${student.age}<br/>
    132     </c:forEach>
    133     
    134     <hr/>
    135     
    136     <c:forEach items="${map}" var="entry">
    137         ${entry.key } - 姓名: ${entry.value.name } - 年龄:${entry.value.age }<br/>
    138     </c:forEach>
    139     <hr/>
    140     <%-- forToken标签: 循环特殊字符串 --%>
    141     <%
    142         String str = "java-php-net-平面";
    143         pageContext.setAttribute("str",str);
    144      %>
    145     
    146     <c:forTokens items="${str}" delims="-" var="s">
    147         ${s }<br/>
    148     </c:forTokens>
    149     
    150     <%--redrict:重定向 --%>
    151     <c:redirect url="http://www.baidu.com"></c:redirect>
    152     
    153   </body>
    154 </html>
    View Code

    JSP 指令是通知JSP引擎如何处理该JSP页面,不是针对程序员的。

    共有三种指令:

       1.page指令:

           1.1. language="Java"  默认是java,只能写java

           1.2.import="package.class"  引入源码包

           1.3.session="true"   默认创建session,true表示自动创建,jsp和servlet能获取同样的HttpSession

           1.4.buffer="8kb"  JSP输出内容,不是一下到浏览器的,而是等缓存满了以后,才会输出到浏览器,该JSP缓存默认大小为8kb

           1.5.errorPage="url"   表示该页面出错后跳转到哪个页面

            isErrorPage="true"   显示出错信息页面必须声明为true,这样JSP就会创建exception对象。

                   以上2个属性都是处理局部异常处理的。

             全局异常:

             配置web.xml文件

        

    [html] view plain copy
     
    1. <error-page>  
    2.   
    3.        <error-code>500</error-code>  
    4.   
    5.        <location>/WEB-INF/sys500.jsp</location>  
    6.   
    7. </error-page>  



             也可以处理类型异常

         

    [html] view plain copy
     
    1. <error-page>  
    2.   
    3.        <error-type>java.lang.ArithmeticException</error-type>  
    4.   
    5.        <location>/WEB-INF/sys500.jsp</location>  
    6.   
    7.  </error-page>  



             类型异常优先级高。局部异常优先级最高。

              contentType="UTF-8"。对内:表示JSP保存的编码;对外:表示浏览器用什么方式解码

              pageEncoding="UTF=8";和contentType作用相同

              当两个属性同时存在的时候,对内有pageEncoding决定。

              isELIgored="false"

               是否忽略EL表达式,默认支持EL表达式

       2.include指令:

              <$@ include file="被包含的jsp页面"$>

                          在翻译成servlet是将被包含的jsp页面中的内容翻译成servlet中了,即多个jsp只会翻译成一个Servlet 我们通常将     

                  include指令包含的jsp页面叫静态包含,就是说编译时包含。

      3.taglib指令:

      

    [html] view plain copy
     
    1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>  

           可以将数据绑定到域对象中

          <c:set var="name" value="靠谱" scope="request"/>

                             将“靠谱”字符串绑定到request域中,名称为name。

          <c:out value="${NAME}" default="查无此人"/>   

                            用EL表达式调用名字为name的数据,如果查不到,返回空字符串。

            request.getAttribute("NAME");   该方法如果查不到数据,返回的是null

     

    JSP九大隐式对象:

         JSP中叫法             Servlet中叫法

        1.request                   HttpServletRequest

        2.response                HttpServletResponse    

        3.session                   HttpSession

        4.application             ServletContext

        5.config                     ServletConfig

        6.out                         JspWriter

        7.exception               特殊情况下使用

        8.page                      this 本jsp页面

        9.pageContext         无


    下面演示:request/session/application用法:

       

    [html] view plain copy
     
    1. <html>  
    2.   <body>   
    3.     参数值:<%=request.getParameter("name") %><br/>  
    4.     <%  
    5.         session.setAttribute("name", "哈哈");  
    6.         application.setAttribute("age", "20");  
    7.      %>  
    8.     姓名:<%=session.getAttribute("name") %><br/>  
    9.     年龄:<%=application.getAttribute("name") %>  
    10.   </body>  
    11. </html>  


    out对象和Servlet中PrintWriter的区别:


                 1,out内容先输入jspwriter缓存区,然后输给printwriter缓存区,然后在输给浏览器
                 2,pageContext是一个作用域,仅在当前jsp页面中有效,也能完成转发和包含功能。

                 3,pageContext也可以获取其他八个内置对象

                 4,pageContext能将值绑定到其他域对象中。

                 5,pageContext对象的findAttribute方法会依次从page->request -> session -> application域对象查找,找到即止。

    映射JSP

          web.xml文件:

    [java] view plain copy
     
    1. <servlet>  
    2.   
    3.     <servlet-name>SimpleJspServlet</servlet-name>  
    4.   
    5.     <jsp-file>/simple.jsp</jsp-file>  
    6.   
    7. </servlet>  
    8.   
    9. <servlet-mapping>  
    10.   
    11.     <servlet-name>SimpleJspServlet</servlet-name>  
    12.   
    13.     <url-pattern>index.html</url-pattern>  
    14.   
    15. </servlet-mapping>  

     



    El表达式:

             ${} :可以自动获取域中对象,request,session,application,pageContext,EL找不到返回空白字符串。

        EL表达式中11大内置对象

               1,pageContext        获取页面context的Map对象     

               2,pageScope        获取页面域的Map对象

               3,requestScope        获取request域的Map对象

               4,sessionScope        获取session域Map对象

               5,applicationScope      获取context的Map对象

               6,param                     获取一个请求参数

               7,paramValues        获取一个请求参数数组    

               8, header                  获取一个请求域对象

               9,headerValues

              10,cookies

              11,initParam               获取web.xml中的参数

    [html] view plain copy
     
    1. <context-param>  
    2.   
    3.         <param-name></param-name>  
    4.   
    5.           <param-value></param-value>  
    6.   
    7. </context-param>   


      

    <init-param>只有在本servlet中有效

    El表达式中可以直接获取域中的数据:


     

    [html] view plain copy
     
    1. <%  
    2.      pageContext.setAttribute("NAME","哈哈");  
    3.  %>              
    4.  姓名:${NAME}<br/>  
    5.  <hr/>  
    6.  <%  
    7.      User user = new User(2015,"呵呵",10000D);  
    8.      request.setAttribute("USER",user);  
    9.  %>  
    10.  编号:${USER.id}<br/>  
    11.  姓名:${USER.name}<br/><!--自动调用getter方法-->  
    12.  薪水:${USER.sal}<br/>  
    13.  <hr/>  
    14.  <%  
    15.      List<StringnameList = new ArrayList<String>();  
    16.      nameList.add("A");  
    17.      nameList.add("B");  
    18.      nameList.add("C");  
    19.      session.setAttribute("NAMELIST",nameList);      
    20.  %>  
    21.  第二个元素是:${NAMELIST[1]}<br/>  
    22.  <hr/>  
    23.  <%  
    24.      Map<String,Integermap = new LinkedHashMap<String,Integer>();  
    25.      map.put("jack",10000);  
    26.      map.put("marry",12000);  
    27.      map.put("sisi",14000);  
    28.      application.setAttribute("MAP",map);      
    29.  %>  
    30.  SISI的工资是:${MAP['sisi']}<br/>  
    31.  <hr/>  
    32.  <%  
    33.      String[] strArray = {"北京","上海","广州","深圳"};  
    34.      pageContext.setAttribute("STRARRAY",strArray);  
    35.  %>  
    36.  你目前所在的城市是:${STRARRAY[2]}<br/>      
    37.  <hr/>  
    38.  姓名:${NAMEE}<br/>  



        
        
    EL表达式中的运算符:

    [html] view plain copy
     
    1. <%@ page language="java" pageEncoding="UTF-8"%>  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    3. <html>  
    4.   <body>  
    5.       
    6.     10+3=${10+3}<br/>  
    7.     10-3=${10-3}<br/>  
    8.     10*3=${10*3}<br/>  
    9.     10/3=${10/3}<br/>  
    10.     10%3=${10%3}<br/>  
    11.     <hr/>  
    12.     true && false = ${true && false}<br/>  
    13.     true || false = ${true || false}<br/>  
    14.     ! false = ${! false}<br/>  
    15.     <hr/>  
    16.     10>3=${10>3}<br/>  
    17.     10!=3=${10 ne 3}<br/>  
    18.     10==3=${10 eq 3}<br/>  
    19.       
    20.   </body>  
    21. </html>  





    EL表达式中的三木运算符:

    [html] view plain copy
     
    1. <%@ page language="java" pageEncoding="UTF-8"%>  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    3. <html>  
    4.   <body>  
    5.     <%  
    6.           
    7.         pageContext.setAttribute("city","深圳");  
    8.     %>  
    9.     城市:  
    10.     <select name="city">  
    11.         <option>选择城市</option>  
    12.         <option ${city=='北京'?'selected':''}>北京</option>  
    13.         <option ${city=='上海'?'selected':''}>上海</option>  
    14.         <option ${city=='深圳'?'selected':''}>深圳</option>  
    15.         <option ${city=='广州'?'selected':''}>广州</option>  
    16.     </select>              
    17.   </body>  
    18. </html>  



    [objc] view plain copy
     
    1. <%@ page language="java" pageEncoding="UTF-8"%>  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    3. <html>  
    4.   <body>  
    5.     当前web应用的根目录名:${pageContext.request.contextPath}<br/>  
    6.     <a href="${pageContext.request.contextPath}/el/03_el.jsp">点点</a><br/>  
    7.     <%  
    8.         session.setAttribute("NAME","哈哈");  
    9.     %>      
    10.     姓名:${sessionScope.NAME}<br/>  
    11.     参数值:${param.name}<br/>  
    12.     第三个爱好是:${paramValues.like[2]}<br/>  
    13.     请求头1:${header.host}<br/>  
    14.     请求头2:${headerValues["Accept-Encoding"][0]}<br/>  
    15.     cookie的名:${cookie.PASS.name}<br/>  
    16.     cookie的值:${cookie.PASS.value}<br/>  
    17.     <hr/>  
    18.     web初始化参数之driver为:${initParam.driver}<br/>  
    19.     web初始化参数之url为:${initParam.url}<br/>  
    20.       
    21.   </body>  
    22. </html>  

     

    JSP-JSTL标签库----函数fn

     

        1,导入相关的jstl包

        2,要在使用jstl的页面中用taglib指令引入相关包

    [html] view plain copy
     
    1. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  



           fn:toLowerCase("str")       字符串变成小写

           fn:toUpperCase("str")       字符串变成大写

           fn:trim("str")                       去掉字符串两端空白

           fn:split("String","regex")     切割字符串

           fn:join("array","#")              用#把array中每个元素连接

           fn:indexOf("str","s")           返回第二个参数在第一个参数首次出现的位置    

           fn:contains("s1","s2")         返回第二个参数是否包含在第一个参数

           fn:startsWith("s1","s2")      第一个参数是否以第二个参数开头        

           fn:endsWith("s1","s2")       第一个参数是否以第二个参数结尾    

           fn:replace("s1","s2","s3")   把s1中的所有s2用s3替换

           fn:substring("s1",a,b)         把s1中的第a个字符到b-1个字符截取出来

           fn:substringAfter()              ${fn:substringAfter("www@163@com","@")}

           fn:substringBefore()           ${fn:substringBefore("www@163@com","@")}

    JSP-JSTL标签库---核心core

     

        <c:out>标签 -----把内容输出到浏览器

     

    [html] view plain copy
     
    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
    3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    4. <html>  
    5.   <head>  
    6.    <%  
    7.        pageContext.setAttribute("script", "<script>alert('哈哈');</script>");  
    8.     %>  
    9.   </head>  
    10.    
    11.   <body>  
    12.   <!-- 
    13.       escapeXml="false" 表示不转义js代码 
    14.    -->  
    15.      <c:out value="${script} }" escapeXml="false"/>  
    16.   </body>  
    17. </html>  




      <c:set>标签 ---- 把数据绑定到域中

    [html] view plain copy
     
    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <%@ page import="itcast.util.User" %>  
    3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
    4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    5. <html>  
    6.   <head>  
    7.     <title>My JSP '02_c_set.jsp' starting page</title>  
    8.     <meta http-equiv="pragma" content="no-cache">  
    9.     <meta http-equiv="cache-control" content="no-cache">  
    10.     <meta http-equiv="expires" content="0">      
    11.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
    12.     <meta http-equiv="description" content="This is my page">  
    13.   
    14.   </head>  
    15.    
    16.   <body>  
    17.       <!--  
    18.           class User{  
    19.               private String id;  
    20.               private String name;  
    21.               public void setId(String id){  
    22.                   this.id = id;  
    23.               }  
    24.               public void setName(String name){  
    25.                   this.name = name;  
    26.               }  
    27.               public String getId(){  
    28.                   return this.id;  
    29.               }  
    30.               public String getName(){  
    31.                   return this.name;  
    32.               }  
    33.           }  
    34.        -->  
    35.     <%  
    36.      User user = new User();  
    37.      pageContext.setAttribute("USER", user);  
    38.     %>  
    39.     <c:set target="${pageScope.USER}" property="id" value="2015"/>  
    40.     <c:set target="${pageScope.USER}" property="name" value="笨笨"/>  
    41.       
    42.     编号:${pageScope.USER.id}<br/>  
    43.     姓名:${pageScope.USER.name}  
    44.       
    45.   </body>  
    46. </html>  
     







    <c:remove>标签

            <c:remove var="NAME" scope="page"/>  移除pageContext域中的名为NAME的数据




    <c:catch>标签

        <c:catch var="myError">   

               <%

                     int i = 10/0;

               %>

        </c:catch>

        原因为:${myError.message}<br/>






    <c:if>标签

        <c:if test="判断条件">
            
        </c:if>


    <c:choose>和<c:when><c:otherwise>标签


        
        <c:choose>
              <c:when test="">
                
              </c:when>
              <c:when test="">
                
              </c:when>
              <c:when test="">
                
              </c:when>
              <c:otherwise>
                
              </c:otherwise>
        </c:choose>    




    <c:forEach var items/>标签

    [html] view plain copy
     
    1. <%@ page language="java" pageEncoding="UTF-8"%>  
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
    3. <%@ page import="java.util.*" %>  
    4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    5. <html>  
    6.   <body>  
    7.       
    8.     <%  
    9.         List<StringnameList = new ArrayList<String>();  
    10.         nameList.add("小德子");  
    11.         nameList.add("小格子");  
    12.         nameList.add("小桌子");  
    13.         nameList.add("小羊子");  
    14.         nameList.add("小凳子");  
    15.         pageContext.setAttribute("NAMELIST",nameList);      
    16.     %>          
    17.     <table border="2" align="center">          
    18.         <tr>  
    19.             <th>索引</th>  
    20.             <th>编号</th>  
    21.             <th>姓名</th>  
    22.             <th>是第一个元素吗</th>  
    23.             <th>是最后个元素吗</th>  
    24.         </tr>          
    25.         <c:forEach var="xxx" items="${NAMELIST}" varStatus="stat" begin="0" end="2">  
    26.             <tr>  
    27.                 <td>  
    28.                     ${stat.index}  
    29.                 </td>  
    30.                 <td>  
    31.                     ${stat.count}  
    32.                 </td>  
    33.                 <td>  
    34.                     ${xxx}  
    35.                 </td>  
    36.                 <td>  
    37.                     ${stat.first}  
    38.                 </td>  
    39.                 <td>  
    40.                     ${stat.last}  
    41.                 </td>  
    42.             </tr>  
    43.         </c:forEach>  
    44.     </table>                  
    45.   </body>  
    46. </html>  

     

    <c:url>和<c:param>标签

        <!-- /表示当前web应用的根目录 -->
          <c:url var="downURL" value="/DownloadServlet">
              <!-- c:param负责编码 -->
              <c:param name="filename" value="三国123abc"/>
          </c:url>
        <a href="${downURL}" style="text-decoration:none">
            下载三图[GET]
        </a>


    <c:redirect>标签

               <c:redirect url="/core/07_c_forEach.jsp"/>


    <jsp:forward>标签

               <jsp:forward page="/core/07_c_forEach.jsp"/>    
        

  • 相关阅读:
    20150515
    20150509
    20150507
    好用的log打印类
    20150429
    Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
    word无法切换中文输入法的解决方法
    20140917设置动态壁纸
    WCF入门教程(三)定义服务协定--属性标签
    WCF入门教程(二)从零做起-创建WCF服务
  • 原文地址:https://www.cnblogs.com/linjiaxin/p/6039485.html
Copyright © 2020-2023  润新知