程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP標簽

JSP標簽

編輯:關於JSP

1、編寫一個實現tag接口的標簽處理器類

public class ViewIPTag implements Tag {
private PageContext pageContext;
public int doStartTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
JspWriter out = pageContext.getOut();
String ip = request.getRemoteAddr();
       try {
out.write(ip);
} catch (IOException e) {
throw new RuntimeException(e);
}
return 0;
}
public int doEndTag() throws JspException {
return 0;
}
public Tag getParent() {
return null;
}
public void release() {
}
public void setPageContext(PageContext arg0) {
this.pageContext = arg0;
}
public void setParent(Tag arg0) {
}
}


2、在web-inf/目錄下新建tld文件,在tld文件中對標簽處理器進行描述



    
    A tag library exercising SimpleTag handlers.
    1.0
    SimpleTagLibrary
    /itcast   
    
        viewIP  
cn.itcast.web.tag.ViewIPTag
empty
    
        


3、在jsp頁面中導入並使用自定義標簽

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/itcast" prefix="itcast" %>



  
    輸出客戶機的IP
  
  
  
     您的IP是:
  


自定義標簽的擴展功能:
控制jsp頁面某一部分內容是否執行。
1.編寫一個類實現tag接口,控制dostarttag方法的返回值,如果這個方法返回EVAL_BODY_INCLUDE,則執行標簽體,如果返回SKIP_BODY,則不執行標簽體

控制整個jsp頁面是否執行。
2、編寫一個類實現tag接口,控制doendtag方法的返回值,如果這個方法返回EVAL_PAGE,則執行標簽余下的jsp頁面,如果返回SKIP_PAGE,則不執行余下的jsp

控制jsp頁面內容重復執行。
3.編寫一個類實現Iterationtag接口,控制doAfterBody方法的返回值,如果這個方法返回EVAL_BODY_AGAIN, 則web服務器又執行一次標簽體,依次類推,一直執行到doAfterBody方法返回SKIP_BODY,則標簽體才不會重復執行。

修改jsp頁面內容輸出。
4、編寫一個類實現BodyTag接口,控制doStartTag方法,返回EVAL_BODY_BUFFERED,則web服務器會創建BodyContent對象捕獲標簽體,開發人員在doendtag方法體內,得到代表標簽體的bodyContent對象,從而就可以對標簽體進行修改。。。等等操作。

簡單標簽實現頁面邏輯

控制jsp頁面某一部分內容是否執行。
1.在dotag方法裡面不調用jspFrament.invoke方法即可

控制jsp頁面內容重復執行。
1.在dotag方法重復調用jspFrament.invoke方法即可

修改jsp頁面內容輸出
1.在dotag方法調用jspFrament.invoke方法時,讓執行結果寫一個自定義的緩沖中即可,然後開發人員可以取出緩沖的數據修改輸 出

控制整個jsp頁面是否執行。
1.在dotag方法拋SKIPPageException即可,jsp收到這個異常,將忽略標簽余下jsp頁面的執行

生成exe
1、要把工程做成一個可運行的 jar
Main-Class: org.apache.catalina.startup.Bootstrap
2、使用exe4j


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved