婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > JSP自定義標(biāo)簽案例分析

JSP自定義標(biāo)簽案例分析

熱門標(biāo)簽:企業(yè)怎么在聯(lián)通申請400電話 南京新思維電話機(jī)器人 好操作的電話機(jī)器人廠家 百度地圖添加標(biāo)注圖標(biāo)樣式 聊城智能電銷機(jī)器人外呼 泰州泰興400電話 怎么申請 地圖標(biāo)注市場怎么樣 如何用中國地圖標(biāo)注數(shù)字點 南昌市地圖標(biāo)注app

本文為大家介紹了JSP自定義標(biāo)簽的案例,供大家參考,具體內(nèi)容如下

案例一:實現(xiàn)一個基本防盜鏈標(biāo)簽

1. 標(biāo)簽處理類

public class MyReferer extends BodyTagSupport {
  private String site;
  private String back;
  public String getSite() {
    return site;
  }
  public void setSite(String site) {
    this.site = site;
  }
  public String getBack() {
    return back;
  }
  public void setBack(String back) {
    this.back = back;
  }
  public int doEndTag() throws JspException {
    // 獲取JSP上下文環(huán)境對象
    PageContext pageContext = this.pageContext;
    // 獲取到request對象
    HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
    // 判斷
    String header = request.getHeader("referer");
    if(header != null  header.startsWith(getSite())){
      // 執(zhí)行后續(xù)的頁面
      return Tag.EVAL_PAGE;
    }else{
      // 頁面的重定向
      HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
      try {
        response.sendRedirect(getBack());
      } catch (IOException e) {
        e.printStackTrace();
      }
      // 不執(zhí)行
      return Tag.SKIP_PAGE;
    }
  }
}

2. 描述文件

?xml version="1.0" encoding="UTF-8"?>
taglib 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
  version="2.1">
 !-- 2. 編寫標(biāo)簽庫描述文件 --> 
 tlib-version>1.0/tlib-version>
 short-name>jnb/short-name>
  tag> 
  name>referer/name>
  tag-class>cn.itcast.custom.MyReferer/tag-class>
  body-content>empty/body-content>
   attribute>
    name>site/name>
    required>true/required>
    rtexprvalue>true/rtexprvalue>
  /attribute>
   attribute>
    name>back/name>
    required>true/required>
    rtexprvalue>true/rtexprvalue>
  /attribute>
 /tag>
/taglib> 

3. 引入和使用

%@taglib uri="/WEB-INF/referer.tld" prefix="my"%>
  my:referer site=http://localhost:8080/day11/list.jsp
 back="/day11/list.jsp"/>

JSP2.0自定義標(biāo)簽

---| SimpleTag 接口

定義了標(biāo)簽處理類的生命周期方法。doTag()

-----| SimpleTagSupport 類

全部實現(xiàn)了SimpleTag接口的方法,因此后面我們只需要繼承并重寫該類即可。

案例二:實現(xiàn)自己的if….else標(biāo)簽

目標(biāo):

 %@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  c:choose>
   c:when test="%= 12>1 %>">
      大于
   /c:when>
   c:otherwise>
      小于
   /c:otherwise>
  /c:choose>

分析:

1. ChooseTag.java,必須定義一個標(biāo)記字段屬性

public class ChooseTag extends SimpleTagSupport {
  private boolean tag = true;
  public boolean isTag() {
    return tag;
  }
  public void setTag(boolean tag) {
    this.tag = tag;
  }
  // 遇到標(biāo)簽自動執(zhí)行
  public void doTag() throws JspException, IOException {
    // 獲取標(biāo)簽體對象
    JspFragment body = this.getJspBody();
    // 執(zhí)行標(biāo)簽體
    body.invoke(null);
    super.doTag();
  }
}

2. WhenTag.java

public class WhenTag extends SimpleTagSupport {
  private boolean test;
  public boolean isTest() {
    return test;
  }
  public void setTest(boolean test) {
    this.test = test;
  }
  // 遇到標(biāo)簽自動執(zhí)行
  public void doTag() throws JspException, IOException {
    // 獲取父元素
    ChooseTag choose = (ChooseTag)this.getParent();
    // 獲取父元素的標(biāo)記變量值
    boolean parent = choose.isTag();
    // 判斷
    if( parent  this.isTest() ){
      // 執(zhí)行標(biāo)簽體
      JspFragment body = this.getJspBody();
      body.invoke(null);
    }
    super.doTag();
  }
}

3. Otherwise.java

public class OtherwiseTag extends SimpleTagSupport {
  
  // 遇到標(biāo)簽自動執(zhí)行
  public void doTag() throws JspException, IOException {
    // 獲取父元素
    ChooseTag choose = (ChooseTag)this.getParent();
    // 獲取父元素的標(biāo)記變量值
    boolean parent = choose.isTag();
    // 判斷
    if(parent){
      // 執(zhí)行標(biāo)簽體
      JspFragment body = this.getJspBody();
      body.invoke(null);
    }
    super.doTag();
  }
}

4. 描述文件

?xml version="1.0" encoding="UTF-8"?>
taglib 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
  version="2.1">
 !-- 2. 編寫標(biāo)簽庫描述文件 --> 
 tlib-version>1.0/tlib-version>
 short-name>jnb/short-name>
  tag> 
  name>choose/name>
  tag-class>cn.itcast.tags.ChooseTag/tag-class>
  body-content>scriptless/body-content>   JSP2.0方式
 /tag>
 tag> 
  name>when/name>
  tag-class>cn.itcast.tags.WhenTag/tag-class>
  body-content>scriptless/body-content>
  attribute>
    name>test/name>
    required>true/required>
    rtexprvalue>true/rtexprvalue>
  /attribute>
 /tag>
  
  tag> 
  name>otherwise/name>
  tag-class>cn.itcast.tags.OtherwiseTag/tag-class>
  body-content>scriptless/body-content>
 /tag>
/taglib>

5. 引入和使用

%@taglib uri="/WEB-INF/ifelse.tld" prefix="jnb"%>
   jnb:choose>
    jnb:when test="%= 1>2 %>">
        小于
    /jnb:when>
    jnb:otherwise>
         大于
    /jnb:otherwise>
   /jnb:choose> 

打包自定義標(biāo)簽庫

1.   建立一個taglibs文件夾

2.   將所有的標(biāo)簽處理類對應(yīng)的class文件連同包拷貝到1中的目錄中

3.   在1中的文件夾中建立一個META-INF文件夾

4.   將tld文件拷貝到META-INF目錄

5.   編輯tld文件引入uri元素:uri>http://www.jnb.com/uri>     à提供引入的url路徑

6.   使用jar命令進(jìn)行打包:D:\mytaglibs>jar cvf jnb.jar *

總結(jié)

主要掌握如何使用JSP2.0進(jìn)行自定義標(biāo)簽的開發(fā)和打包。

1.   建立一個taglibs文件夾

2.   將所有的標(biāo)簽處理類對應(yīng)的class文件連同包拷貝到1中的目錄中

3.   在1中的文件夾中建立一個META-INF文件夾

4.   將tld文件拷貝到META-INF目錄

5.   編輯tld文件引入uri元素:uri>http://www.jnb.com/uri>     à提供引入的url路徑

6.   使用jar命令進(jìn)行打包:D:\mytaglibs>jar cvf jnb.jar *

總結(jié)

主要掌握如何使用JSP2.0進(jìn)行自定義標(biāo)簽的開發(fā)和打包。

您可能感興趣的文章:
  • php處理json格式數(shù)據(jù)經(jīng)典案例總結(jié)
  • AngularJs解決跨域問題案例詳解(簡單方法)
  • BootStrap的JS插件之輪播效果案例詳解
  • AngularJS實現(xiàn)元素顯示和隱藏的幾個案例
  • JavaScript多圖片上傳案例
  • ajax請求json數(shù)據(jù)案例詳解
  • JS案例分享之金額小寫轉(zhuǎn)大寫
  • js對象轉(zhuǎn)json數(shù)組的簡單實現(xiàn)案例
  • Ajax $.getJSON案例詳解
  • javascript的理解及經(jīng)典案例分析

標(biāo)簽:銅川 烏蘭察布 開封 山南 臨汾 吉林 自貢 白銀

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP自定義標(biāo)簽案例分析》,本文關(guān)鍵詞  JSP,自定義,標(biāo)簽,案例分析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP自定義標(biāo)簽案例分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于JSP自定義標(biāo)簽案例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    不卡电影免费在线播放一区| 欧美性一级生活| 久久精品国产成人一区二区三区 | 精品国产精品一区二区夜夜嗨 | 国产成人三级在线观看| 亚洲自拍与偷拍| gogo大胆日本视频一区| 99麻豆久久久国产精品免费 | 国产精品久久久久影视| 色老汉av一区二区三区| 秋霞国产午夜精品免费视频 | 自拍偷拍亚洲综合| 亚洲视频在线一区| 精品卡一卡二卡三卡四在线| 成人福利在线看| 久久99精品国产麻豆婷婷| 亚洲欧洲一区二区在线播放| 精品国产亚洲一区二区三区在线观看| 色婷婷av一区| 日韩一区二区在线看片| av影院午夜一区| 国内精品视频666| 国产91精品入口| av成人动漫在线观看| 国产成人精品免费| 国产精品一区在线观看你懂的| 七七婷婷婷婷精品国产| 美女一区二区三区| 亚洲h在线观看| 一区二区三国产精华液| xfplay精品久久| 蜜桃视频在线观看一区二区| 亚洲女与黑人做爰| 国产精品久久久久久久久快鸭| 久久免费看少妇高潮| 久久久777精品电影网影网| 久久久国产一区二区三区四区小说 | 精品少妇一区二区| 国模套图日韩精品一区二区| 精品一区二区三区免费| 亚洲免费看黄网站| 久久天堂av综合合色蜜桃网| 一区二区成人在线| 日韩精品一区第一页| 精品在线一区二区| 国产精品综合av一区二区国产馆| 国产精品美女久久久久久2018| 欧美电影免费观看高清完整版在线 | 性做久久久久久免费观看| 国产精品久久久久婷婷二区次| 在线精品视频一区二区三四| 色婷婷香蕉在线一区二区| 欧美妇女性影城| 日本高清不卡视频| 精品少妇一区二区三区在线播放 | 国产精品一区二区视频| 日韩精品电影一区亚洲| 99久久久国产精品| 国产一区不卡在线| 91激情五月电影| 亚洲国产精品一区二区尤物区| 亚洲视频中文字幕| 国产精品免费av| 成人av午夜电影| 精品免费国产二区三区 | 国产精品乱码妇女bbbb| 亚洲一区在线看| 国产成a人无v码亚洲福利| 在线观看成人小视频| 综合电影一区二区三区 | 精品国内二区三区| 亚洲免费在线观看视频| 综合久久给合久久狠狠狠97色| 精久久久久久久久久久| 99精品视频一区二区| 国产精品国产三级国产普通话99| 国产一区在线观看视频| 欧美国产精品v| 国产馆精品极品| 欧美精品一区二区三区在线播放| 久久精品国产99国产| 精品第一国产综合精品aⅴ| 国产传媒欧美日韩成人| 亚洲视频小说图片| 一区二区中文视频| 91影院在线观看| 天天综合天天综合色| 国产精品网曝门| 日韩欧美色综合网站| 日韩美女久久久| 日韩视频免费直播| 中文字幕乱码日本亚洲一区二区| 国产一区二区剧情av在线| 亚洲国产精品激情在线观看| 欧美日韩免费电影| 经典三级一区二区| 老司机午夜精品99久久| 欧美成人a在线| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲日本电影在线| 在线综合视频播放| 欧美日本乱大交xxxxx| 成a人片国产精品| 国产精品热久久久久夜色精品三区| 在线观看av一区| 国产精品99精品久久免费| 91精品午夜视频| 99国产精品久久久久久久久久 | 亚洲欧洲在线观看av| 国产精品毛片久久久久久久| 成人av先锋影音| 国产精品一线二线三线精华| 成人精品小蝌蚪| 亚洲精品久久嫩草网站秘色| 一区二区三区四区乱视频| 国产精品视频一二三| 中文字幕一区二区三区不卡在线| 国产精品美日韩| 国产亚洲一区二区三区在线观看| 日韩欧美在线123| 精品国产乱码久久久久久牛牛| 91蜜桃在线免费视频| 91片黄在线观看| 久久97超碰国产精品超碰| 国产精品69久久久久水密桃| 激情综合网天天干| 欧美疯狂做受xxxx富婆| 911精品国产一区二区在线| 日本高清无吗v一区| 国产精品一卡二| 一区二区三区精品视频在线| 国产亚洲精品中文字幕| 欧美国产日韩精品免费观看| 亚洲另类在线制服丝袜| 亚洲图片欧美一区| 日韩中文字幕亚洲一区二区va在线| 亚洲成人综合视频| 亚洲在线观看免费| 99久久伊人精品| 欧美伊人久久久久久久久影院 | 国产日韩欧美在线一区| 国产精品久久久久久久久图文区| 久久成人麻豆午夜电影| 久久精品av麻豆的观看方式| 91美女片黄在线观看91美女| 欧美一区二区视频免费观看| 日韩理论片网站| 中文字幕欧美国产| 精品一区二区久久| 在线精品亚洲一区二区不卡| 精品国产一区久久| 国产精品久久久久影院色老大| 人人狠狠综合久久亚洲| 在线一区二区三区四区五区| 欧美激情一区三区| 69精品人人人人| 亚洲一区二区视频| 国产精品小仙女| 99久久久国产精品| 久久先锋影音av鲁色资源| 亚洲日本va在线观看| 日韩和的一区二区| 欧美在线一二三| 亚洲国产一区二区在线播放| 亚洲成人精品一区| 91福利视频在线| 国产成人av电影在线观看| 欧美网站一区二区| 一二三四区精品视频| 成人a区在线观看| 亚洲精品一区二区三区精华液| 日日嗨av一区二区三区四区| 成人性生交大片免费看中文 | 国产精品乱人伦| 成人激情校园春色| 亚洲国产一区二区视频| 国产欧美日韩不卡| 国产欧美日韩三级| 国产精品久久毛片| 在线精品视频一区二区| 国产91精品久久久久久久网曝门 | 国产视频911| 精品一区二区免费在线观看| 欧美午夜电影在线播放| 加勒比av一区二区| 国产精品情趣视频| 91丝袜呻吟高潮美腿白嫩在线观看| 中文字幕一区三区| 在线观看日韩一区| 9l国产精品久久久久麻豆| 91黄色小视频| 国产成人av一区二区三区在线 | 欧美在线观看一二区| 亚洲免费观看高清完整版在线观看熊| 欧美三级电影在线看| 国产成人精品网址| 成人黄色小视频| 美国十次了思思久久精品导航| 亚洲精品在线一区二区| 一区在线观看视频|