¡¡¡¡SUN µÄаæJ2EE1.4ÌṩÁËÔÚJ2EEÖпª·¢Web ServiceµÄ»ù´¡£¬¶Ô¿ª·¢¹¤¾ß×öÁËһЩÖØÒªµÄÔöÇ¿£¬ÔÚÓ¦ÓóÌÐò²¿ÊðºÍ·þÎñÆ÷¹ÜÀí·½ÃæÒ²ÌṩÁËеıê×¼£¬ÔÚ¼¯³ÉÐԺͰ²È«ÐÔ·½ÃæÓÐËùÔöÇ¿£¬ÌáÉýÁËJ2EE ¿ª·¢WebÓ¦ÓóÌÐòµÄÄÜÁ¦£»ÔÚ±à³ÌÄ£ÐÍ·½ÃæµÄÖØÒª±ä»¯°üÀ¨JSP±í´ïʽÓïÑÔ¡¢¼ò»¯µÄ±ê¼Ç¿âµÈ£»EJB 2.1ÖÐÌṩÁËеÄtimer·þÎñ£¬²éѯÓïÑÔ£¨QL£©Ò²ÓÐËùÔöÇ¿£»Jdbc3.0 API°Ñͨ³£µÄJdbc APIÓëÀ©³äAPI½áºÏÆðÀ´£»J2EE Connectors¹æ·¶ºÍ¶ÀÁ¢ÓÚÏûÏ¢ÀàÐ͵ÄEJBÌṩÁ˶ÔË«ÏòͨÐŵÄÖ§³Ö¡£ÏÂÃæ¸ø´ó¼ÒÖصã½éÉÜJ2EE1.4Öаüº¬µÄJSP2.0¡¢ Servlet2.4¡¢Jdbc3.0ÒÔ¼°EJB2.1·½ÃæµÄÐÂÌØÐÔ¡£
¡¡¡¡JSP 2.0ÊôÓÚJ2EE 1.4ƽ̨£¬ËüÔÚJSP 1.2»ù´¡Ö®ÉÏÔö¼ÓÁËÐµĹ¦ÄÜ¡£Ëü±£Ö¤ÁËÏòϼæÈÝ£¬ÔÏÈʹÓõÄJSP¼¼ÊõÔÚJSP 2.0Öж¼¿ÉÒÔÖ§³Ö¡£JSP 2.0µÄй¦ÄÜÖ÷Òª°üÀ¨ÏÂÃ漸²¿·Ö£º
¡¡¡¡Ò»£©ÔËÐл·¾³±ä»¯
¡¡¡¡1¡¢web.xml¸ñʽ±ä»¯
¡¡¡¡ÎÒÃÇÖªµÀJSP 1.2¿ÉÒÔÔÚJava 2±ê×¼°æ1.3°æ±¾ÔËÐУ¬¶øJSP 2.0ÒªÇóʹÓÃJava 2±ê×¼°æ1.4»ò¸üа汾£¬JSP 2.0ʹÓÃÓÉServlet 2.4¹æ¶¨µÄWeb³ÌÐò²¿ÊðÃèÊö¸ñʽ¡£
¡¡¡¡ÔÚWeb³ÌÐòÃèÊöÎļþweb.xmlÖÐÐèҪʹÓÃxml schema´òÍ·µÄ¸ñʽ¡£ÔÚweb.xmlÖÐÖ÷ÒªµÄ±ä»¯ÊÇËùÓÐÓйØJSPµÄÉèÖÃÐÅÏ¢Òª·ÅÔÚ£¼jsp-config£¾±ê¼ÇÖС£ÏÂÃæ³ÌÐòÀý1ÏÔʾÁËÒ»¸öweb.xml´óÖµÄÑù×Ó¡£
¡¡¡¡ Àý1£º
¡¡¡¡ £¼?xml version="1.0" encoding="IS0-8859-1"?£¾
¡¡¡¡ £¼web-app 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 web-app_2_4.xsd
¡¡¡¡ version="2.4"£¾
¡¡¡¡ .......
¡¡¡¡ £¼jsp-config£¾
¡¡¡¡ £¼taglib£¾
¡¡¡¡ £¼taglib-uri£¾
¡¡¡¡ http://www.icconcept.com/ics/sample-taglib
¡¡¡¡ £¼/taglib-uri£¾
¡¡¡¡ £¼taglib-location£¾
¡¡¡¡ /WEB-INF/jsp/sample-taglib.tld
¡¡¡¡ £¼/taglib-location£¾
¡¡¡¡ £¼/taglib£¾
¡¡¡¡ ........
¡¡¡¡ £¼jsp-property-group£¾
¡¡¡¡ £¼description£¾
¡¡¡¡ For config the ICW sample application
¡¡¡¡ £¼/description£¾
¡¡¡¡ £¼display-name£¾JSPConfiguration£¼/display-name£¾
¡¡¡¡ £¼url-pattern£¾/jsp/datareset.jsp£¼/url-pattern£¾
¡¡¡¡ £¼el-ignored£¾true£¼£¯el-ignored£¾
¡¡¡¡ £¼page-encoding£¾ISO-8859-1£¼/page-encoding£¾
¡¡¡¡ £¼scripting-invalid£¾true£¼/scripting-invalid£¾
¡¡¡¡ £¼include-prelude£¾/jsp/prelude.jspf£¼/include-prelude£¾
¡¡¡¡ £¼include-coda£¾/jsp/coda.jspf£¼/include-coda£¾
¡¡¡¡ £¼/jsp-property-group£¾
¡¡¡¡ £¼/jsp-config£¾
¡¡¡¡ £¼/web-app£¾
¡¡¡¡2¡¢JSPÉèÖÃ
¡¡¡¡ÔÚ£¼jsp-config£¾±ê¼ÇÌṩÁËWeb³ÌÐòÖÐJSP³ÌÐòµÄÉèÖÃÐÅÏ¢¡££¼jsp-config£¾°üÀ¨£¼ taglib£¾ºÍ£¼jsp-property-group£¾Á½ÀàÔªËØ¡££¼taglib£¾¶¨ÒåÁËWeb³ÌÐòʹÓÃµÄ custom tag£¬ËüµÄÓ÷¨ºÍÒÔÇ°JSP 1.2ÖеÄÓ÷¨Ïàͬ¡££¼jsp-property-group£¾¶¨ÒåÁËÒ»×éJSPµÄÌØÐÔ¡£ÕâЩÌØÐÔʵ¼ÊÉ϶ÔÓ¦JSPµÄpage directive¶¨ÒåµÄÌØÐÔ¡£Í¨¹ý£¼jsp-property-group£¾Ö»²»¹ý¿ÉÒÔ·½±ãµØ¶Ô¶à¸ö¾ßÓÐÏàͬÊôÐÔµÄJSPͳһ¶¨Òå¡£
¡¡¡¡£¼jsp-property-group£¾¶¨ÒåÒ»¸ö»ò¶à¸öURLÑùʽ£¬ÔÚ£¼jsp-property-group£¾Öж¨ÒåµÄÊôÐÔ»áÊÊÓÃÓÚÆ¥ÅäÕâЩURLÑùʽµÄËùÓÐJSPÎļþ¡£ÔÚ£¼jsp-property-group£¾ÖеÄÊôÐÔ¿ÉÒÔ¶¨ÒåÒÔÏÂÉèÖãº
¡¡¡¡ (1)ÔÊÐí»ò½ûֹʹÓñí´ïʽÓïÑÔ(EL)
¡¡¡¡ÔÚ£¼jsp-property-group£¾ÖпÉÒÔÉ趨ÊÇ·ñÔÊÐí¶ÔÓ¦£¼url-pattern£¾µÄJSPʹÓÃJSTL±í´ïʽÓïÑÔ (EL)¡£Èç¹û£¼el-ignored£¾ÊôÐÔ±ê¼Ç±»É趨Ϊfalse£¬JSPÖеÄEL±í´ïʽ»á±»´¦Àí£»Èç¹ûÊÇtrue£¬WebÈÝÆ÷»áÔÚת»» JSPʱºöÂÔEL±í´ïʽ¡£
¡¡¡¡ (2)ÔÊÐí»ò½ûֹʹÓÃscripting
¡¡¡¡£¼scripting-invalid£¾ÊôÐÔ¿ÉÒÔÔÊÐí»ò½ûֹʹÓÃJSPµÄ½Å±¾ÓïÑÔ(scripting)¡£Èç¹ûÕâ¸öÊôÐÔ±ê¼Ç¶ÔӦΪtrue£¬¼´scriptingÔªËر»½ûÖ¹£¬ÔòJSPÖв»ÄÜʹÓÃscriptlet£¬scripting±í´ïʽºÍdeclaration£¬·ñÔò»áÓÐת»»´íÎó¡£µ±Õâ¸öÊôÐÔ±ê¼ÇΪfalseʱ£¬JSP¿ÉÒÔÏñÔÚ1.2°æ±¾Ö®Ç°ÄÇÑùʹÓýű¾ÓïÑÔ¡£
¡¡¡¡ (3)ÉùÃ÷JSP±àÂë
¡¡¡¡Í¨¹ý£¼page-encoding£¾±ê¼Ç¿ÉÒÔÉèÖöÔÓ¦£¼url-pattern£¾µÄJSPÍøÒ³µÄ±àÂë¡£Õâ¸öÊôÐÔ¶ÔӦÿ¸öJSPÖеÄpageEncodingÊôÐÔ£¬WebÈÝÆ÷½«¸ù¾ÝÕâ¸öÊôÐÔ¶ÔJSPÄÚÈݽøÐбàÂë¡£
¡¡¡¡ (4)¶ÔÓ¦Òþº¬°üÀ¨(Implicit Includes)
¡¡¡¡ÔÚ£¼jsp-property-group£¾ÖпÉÒÔÔÚ¶ÔÓ¦JSPÖмÓÈȩ̈ͷ(preludes)ºÍ½áβ(coda)£¬Ê¹Óã¼ include-prelude£¾ºÍ£¼include-coda£¾ÊôÐÔ¿ÉÒÔÉ趨ÔÚJSPÍøÒ³ÖаüÀ¨µÄpreludesºÍcodaµÄ jspfÎļþ¡£ÕâЩÎļþµÄλÖÃÏà¶ÔÓÚµ±Ç°Web³ÌÐòµÄcontext¡£µ±Óг¬¹ýÒ»¸öpreludes»òcodaÔªËØÔÚ£¼jsp-property- group£¾ÖÐʱ£¬JSP»á°´ÕÕÆä˳Ðò¼ÓÈëµ½ÄÚÈÝÖС£
¡¡¡¡
¡¡¡¡¶þ£©ÒýÈë±í´ïʽÓïÑÔ(EL)
¡¡¡¡JSP 2.0µÄÒ»¸öÖ÷ÒªÌصãÊÇËüÖ§³Ö±í´ïÓïÑÔ(expression language)¡£JSTL±í´ïʽÓïÑÔ¿ÉÒÔʹÓñê¼Ç¸ñʽ·½±ãµØ·ÃÎÊJSPµÄÒþº¬¶ÔÏóºÍJavaBeans×é¼þ£¬JSTLµÄºËÐıê¼ÇÌṩÁËÁ÷³ÌºÍÑ»·¿ØÖƹ¦ÄÜ¡£×ÔÖƱê¼ÇÒ²ÓÐ×Ô¶¨Ò庯ÊýµÄ¹¦ÄÜ£¬Òò´Ë»ù±¾ÉÏËùÓÐseriptletÄÜʵÏֵŦÄܶ¼¿ÉÒÔÓÉJSPÌæ´ú¡£ÔÚJSP 2.0ÖУ¬½¨Ò龡Á¿Ê¹ÓÃEL¶øʹJSPµÄ¸ñʽ¸üÒ»Ö¡£
¡¡¡¡ÔÚweb.xmlµÄ£¼jsp-property-group£¾ÖпÉÒÔ¿ØÖÆÒ»×éJSPÊÇ·ñʹÓÃEL£¬ÔÚÿ¸öJSPÖÐÒ²¿ÉÒÔÖ¸¶¨ÊÇ·ñ¸ÃJSPʹÓÃEL¡£ÔÚpage directiveÖеÄisELIgnoredÊôÐÔÓÃÀ´Ö¸¶¨ÊÇ·ñºöÂÔ¡£¸ñʽΪ£º
¡¡¡¡£¼%@ page isELIgnored£½"true|false"%£¾
¡¡¡¡Èç¹ûÉ趨ΪÕ棬ÄÇôJSPÖеıí´ïʽ±»µ±³É×Ö·û´®´¦Àí¡£±ÈÈçÏÂÃæÕâ¸ö±í´ïʽ£¼p£¾${2000 % 20}£¼/p£¾ÔÚisELIgnored£½"true"ʱÊä³öΪ${2000 % 20}£¬¶øisELIgnored£½"false"ʱÊä³öΪ100¡£WebÈÝÆ÷ĬÈÏisELIgnored£½"false"¡£
¡¡¡¡ËäÈ»JSP 2.0¿ÉÒÔʹJSPÖÐÍêȫʹÓñí´ïÓïÑÔ¶ø±ÜÃâscriptlet£¬ÔÚʵ¼Ê±à³ÌÖУ¬Ó¦¸Ã¸ù¾Ý³ÌÐòµÄ¹¦ÄÜÒªÇóºÍ±à³ÌÈËÔ±µÄ×ÔÉíÌõ¼þÑ¡ÔñºÏÊʵķ½Ê½¡£Ê¹Óñí´ïÓïÑÔµÄJSP±È½Ï·½±ã¹æÕû£¬µ«ÊÇÓÉÓÚÐèÒª½«±ê¼Ç½øÐÐת»»£¬ÔÚµÚÒ»´Î±»µ÷ÓÃʱ»á±È½ÏÂý£»ÓÐЩ±à³ÌÈËÔ±ÓÉÓÚ¶ÔJava±È½ÏÁ˽⣬Òò¶ø¸üÏ°¹ßJSP 1.2֮ǰµÄ±à³Ì·½Ê½£¬Òò´Ë£¬ÔÚʹÓÃÖÐÓ¦ÒòµØÖÆÒ˵ØÑ¡ÔñÊÊÓõıà³Ì·½·¨¡£
¡¡¡¡Èý£©SimpleTag
¡¡¡¡JSP 2.0ÖмÓÈëÁËеĴ´½¨×ÔÖƱê¼ÇµÄAPI£¬javax.servlet.jsp.tagext.SimpleTag¶¨ÒåÁËÓÃÀ´ÊµÏÖ¼òµ¥±ê¼ÇµÄ½Ó¿Ú¡£ºÍ JSP 1.2ÖеÄÒÑÓнӿڲ»Í¬µÄÊÇ£¬SimpleTag½Ó¿Ú²»Ê¹ÓÃdoStartTag()ºÍdoEndTag()·½·¨£¬¶øÌṩÁËÒ»¸ö¼òµ¥µÄdoTag()·½·¨¡£Õâ¸ö·½·¨ÔÚµ÷Óøñê¼Çʱֻ±»Ê¹ÓÃÒ»´Î¡£¶øÐèÒªÔÚÒ»¸ö×ÔÖƱê¼ÇÖÐʵÏÖµÄËùÓÐÂß¼¹ý³Ì¡¢Ñ»·ºÍ¶Ô±ê¼ÇÌåµÄÆÀ¹ÀµÈ¶¼ÔÚÕâ¸ö·½·¨ÖÐʵÏÖ¡£´ÓÕâ¸ö·½ÃæÀ´½²£¬ SimpleTagºÍIterationTag¿ÉÒԴﵽͬµÈµÄ×÷Óᣵ«SimpleTagµÄ·½·¨ºÍ´¦ÀíÖÜÆÚÒª¼òµ¥µÃ¶à¡£ÔÚSimpleTagÖл¹ÓÐÓÃÀ´ÉèÖÃJSPÄÚÈݵÄseUspBody()ºÍgetJspBody()·½·¨¡£WebÈÝÆ÷»áʹÓÃsetJspBody()·½·¨¶¨ÒåÒ»¸ö´ú±íJSPÄÚÈÝµÄ JspFragment¶ÔÏó¡£ÊµÏÖSimpleTag±ê¼ÇµÄ³ÌÐò¿ÉÒÔÔÚdoTag·½·¨Öиù¾ÝÐèÒª¶à´Îµ÷ÓÃgetJspBody().invoke()·½·¨ÒÔ´¦ÀíJSPÄÚÈÝ¡£
¡¡¡¡ÀýÈ磬³ÌÐòÀý2 SimpleTag¸ù¾ÝÖ¸¶¨µÄ´ÎÊý(times)½øÐÐÑ»·²¢Êä³öµ±Ç°ÐòºÅ(sequence)¡£³ÌÐòµÄ½á¹¹±È½Ï¼òµ¥£¬ËùÓÐÂß¼¶¼ÔÚdoTag·½·¨ÖÐʵÏÖ¡£
¡¡¡¡Àý2£º
¡¡¡¡ packageICW.taglib;
¡¡¡¡ importjavax.servlet.jsp.JspException;
¡¡¡¡ importjavax.servlet.jsp.tagext.SimpleTagSupport;
¡¡¡¡ importjava.util.HashMap;
¡¡¡¡ importjava.io.IOException;
¡¡¡¡ public class IterationSimpleTag extends SimpleTagSupport{
¡¡¡¡ privateint times;
¡¡¡¡public void setTimes(int_times){
¡¡¡¡ this.times=_times;
¡¡¡¡ }
¡¡¡¡ public void doTag() throws JspException,IOException{
¡¡¡¡ HashMapparams=new HashMap();
¡¡¡¡ for(inti=0; i£¼times;i++){
¡¡¡¡ params.put("sequence",String.valueOf(i+1));
¡¡¡¡ getJspBody().invoke(null,params);
¡¡¡¡ }
¡¡¡¡ }
¡¡¡¡ }
¡¡¡¡Õâ¸ö±ê¼ÇµÄTLDÎļþÄÚÈÝÈçÏ£¬ËüʹÓÃÁËXML schcma¶¨Òå±ê¼ÇµÄʹÓ÷½·¨¡£
¡¡¡¡ ³ÌÐòÀý3ÈçÏ£º
¡¡¡¡ £¼?xml version="1.0" encoding="UTF-8" ?£¾
¡¡¡¡ £¼taglibxmlns=http://java.sun.com/xml/ns/i2ee
¡¡¡¡ xmlns:xsi=http://WWW.w3.org/2001/XMLSchema-instance
¡¡¡¡ xsl:schemaLocation=http://java.sun.com/xml/ns/j2ee web-jsptaglihrary_2_0.xsd
¡¡¡¡ version="2.0"£¾
¡¡¡¡ £¼taglib£¾
¡¡¡¡ £¼tiib-version£¾1.0£¼/tlib-version£¾
¡¡¡¡ £¼short-name£¾Jwad book simple tag£¼/short-name£¾
¡¡¡¡ £¼uri£¾/JwadSimpleTag£¼/uri£¾
¡¡¡¡ £¼description£¾Simple Tag Handler£¼/description£¾
¡¡¡¡ £¼tag£¾
¡¡¡¡ £¼name£¾iteration£¼/name£¾
¡¡¡¡ £¼tag-class£¾ICW.taglib.IterationSimpleTag£¼/tag-class£¾
¡¡¡¡ £¼body-content£¾scriptless£¼/body-content£¾
¡¡¡¡ £¼description£¾Iteration Tag£¼/description£¾
¡¡¡¡ £¼variable£¾
¡¡¡¡ £¼description£¾Current iterationnumber£¼/description£¾
¡¡¡¡ £¼name-given£¾sequence£¼/name¡ªgiven£¾
¡¡¡¡ £¼/variable£¾
¡¡¡¡ £¼attribute£¾
¡¡¡¡ £¼name£¾times£¼/name£¾
¡¡¡¡ £¼required£¾true£¼/required£¾
¡¡¡¡ £¼rtexprvalue£¾true£¼/rtexprvalue£¾
¡¡¡¡ £¼/attribute£¾
¡¡¡¡ £¼/tag£¾
¡¡¡¡ £¼/taglib£¾
¡¡¡¡³ÌÐòÀý4ÖеÄJSPʹÓÃÉÏÃæÀý3Öж¨ÒåµÄIterationSimpleTag£¬Ëü¸ù¾ÝWebÇëÇó²ÎÊýÖиø¶¨µÄ¡°times¡±µÄÖµ½øÐÐÒ»¶¨´ÎÊýµÄÑ»·¡£ÔÚÿ´ÎÑ»·Öн«Êä³ö"sequence"µÄÖµ¡£
¡¡¡¡ Àý4£º
¡¡¡¡ £¼%@ taglib prefix="ictag" uri="/WEB-INF/ics-jsp2.tld" %£¾
¡¡¡¡ £¼HTML£¾£¼HEAD£¾£¼TITLE£¾Simple Tag Sample£¼/TITLE£¾£¼/HEAD£¾
¡¡¡¡ £¼BODY£¾
¡¡¡¡ £¼CENTER£¾
¡¡¡¡ £¼FONT COLOR='#009999' SIZE='4' face='Arial'£¾
¡¡¡¡ £¼STRONG£¾Interation Simple Tag£¼/STRONG£¾
¡¡¡¡ £¼/FONT£¾
¡¡¡¡ £¼/CENTER£¾
¡¡¡¡ £¼HR£¾
¡¡¡¡ £¼c:setvar="time" value="${param.times}"/£¾
¡¡¡¡ £¼p£¾£¼B£¾Reminder:£¼/B£¾£¼/p£¾£¼br£¾
¡¡¡¡ £¼ictag:iteration times="${times}"£¾
¡¡¡¡ This is the ${sequence} Of ${times} times of reminder£¼br£¾
¡¡¡¡ £¼/ictag:iteration£¾
¡¡¡¡ £¼/body£¾
¡¡¡¡ £¼/html£¾
¡¡¡¡ËÄ£©Ê¹ÓÃJSP fragment
¡¡¡¡JSP 2.0ÖеÄÒ»¸öÖ÷Òª¹¦ÄÜÊÇJSP fragment£¬ËüµÄ»ù±¾ÌصãÊÇ¿ÉÒÔʹ´¦ÀíJSPµÄÈÝÆ÷ÍƳÙÆÀ¹ÀJSP±ê¼ÇÊôÐÔ¡£ÎÒÃÇÖªµÀÒ»°ãJSPÊÇÊ×ÏÈÆÀ¹ÀJSP±ê¼ÇµÄÊôÐÔ£¬È»ºóÔÚ´¦ÀíJSP±ê¼ÇʱʹÓÃÕâЩÊôÐÔ£¬¶øJSP fragmentÌṩÁ˶¯Ì¬µÄÊôÐÔ¡£Ò²¾ÍÊÇ˵£¬ÕâЩÊôÐÔÔÚJSP´¦ÀíÆä±ê¼ÇÌåʱÊÇ¿ÉÒÔ±»¸Ä±äµÄ¡£JSPÐèÒª½«ÕâÑùµÄÊôÐÔ¶¨ÒåΪ javax.servlet.jsp.tagext.JspFragmentÀàÐÍ¡£µ±JSP±ê¼ÇÉèÖóÉÕâÖÖÐÎʽʱ£¬ÕâÖÖ±ê¼ÇÊôÐÔʵ¼ÊÉϵĴ¦Àí·½·¨ÀàËÆÓÚ±ê¼ÇÌå¡£ÔÚʵÏÖ±ê¼ÇµÄ³ÌÐòÖУ¬±ê¼ÇÊôÐÔ¿ÉÒÔ±»·´¸´ÆÀ¹À¶à´Î¡£ÕâÖÖÓ÷¨³ÆΪJSP fragment¡£JSP fragment»¹¿ÉÒÔ¶¨ÒåÔÚÒ»¸öSimpleTag´¦Àí³ÌÐòÖÐʹÓõÄ×ÔÖƱê¼Ç¶¯×÷¡£ÏñÇ°ÃæÀý×Ó˵Ã÷µÄ£¬getJspBody·µ»ØÒ»¸ö JspFragment¶ÔÏ󲢿ÉÒÔÔÚdoTag·½·¨Öжà´ÎʹÓá£ÐèҪעÒâµÄÊÇ£¬Ê¹ÓÃJSP fragmentµÄJSPÖ»ÄÜÓÐÒ»°ãµÄÎı¾ºÍJSP action£¬²»ÄÜÓÐscriptletºÍscriptlet±í´ïʽ¡£
¡¡¡¡ÎÒÃÇ¿ÉÒÔ¼òµ¥µØÈÏΪJSP fragmentÊÇÒ»¶Î¿ÉÒÔÖظ´Ê¹ÓõÄJSP¡£Ò»¶ÎJSP fragment¿ÉÒÔ±»´«µÝµ½ÁíÒ»¸öJSPÖв¢±»Ê¹Óá£ÓëJSP include¸ÅÄͬµÄÊÇ£¬JSP fragmentÒ»°ã¹¦ÄܱȽ϶ÌС¼òµ¥¶øÇÒÖظ´Ê¹ÓÃÂʸߡ£
¡¡¡¡JSP fragmentÒ»°ãÔÚ£¼jsp:attribute£¾±ê¼ÇÌåÄÚ»ò£¼jspcbody£¾±ê¼ÇÌåÄÚ¶¨Ò塣ÿ´Îµ±º¬ÓÐJSP fragmentµÄ±ê¼Ç±»Ê¹ÓÃʱ£¬WebÈÝÆ÷Éú³ÉÒ»¸öJspFragment¶ÔÏó£¬Õâ¸ö¶ÔÏóºÍµ±Ç°JSPµÄpage scopeÁªÏµÆðÀ´¡£Í¬Ê±£¬Õâ¸öJspFragment¶ÔÏóºÍ°üº¬ËüµÄ¸¸±ê¼Ç½¨Á¢ÁªÏµ¡£JspFragment¶ÔÏó¿ÉÒÔÓÐÁ½ÖÖµ÷Ó÷½Ê½£ºÊ¹ÓÃJava±àдµÄ±ê¼Ç´¦Àí³ÌÐò£¬»òÕßʹÓñê¼ÇÎļþ(tag file)¡£±ê¼ÇÎļþ¿ÉÒÔʹÓã¼jsp:invoke£¾£¬»òÕߣ¼jsp:doBody£¾¶¯×÷ʹÓÃJSP fragment¡£ JSP±ê¼ÇÎļþ¿ÉÒÔºÍJSP fragment¹²Í¬¹¤×÷¡£CustomTag¶¼ÊÇÒÔ±à³Ì·½Ê½ÊµÏֵġ£JSP±ê¼ÇÎļþÊÇÓÃÎı¾Îļþ¸ñʽ(JSPÓï·¨)ʵÏÖ×ÔÖƱê¼Ç£¬ÕâÒ²ÊÇJSP 2.0µÄÒ»¸öÖ÷Ҫй¦ÄÜ¡£Ò»¸ö±ê¼ÇÎļþ¿ÉÒÔ¶ÔÓ¦Ò»¸ö±ê¼Ç£¬¿ÉÒÔ²»ÐètldÎļþ¶¨Òå¸Ã±ê¼ÇµÄ·½·¨¡£ÕâÑù£¬¼´Ê¹±à³ÌÈËÔ±²»ÊìϤJava£¬Ò²¿ÉÒÔʹÓÃJSPÓï·¨¶¨Òå×Ô¼ºµÄ±ê¼Ç¡£±ê¼ÇÎļþÒ»°ãʹÓÃ.tagΪºó׺²¢·ÅÔÚWeb³ÌÐòµÄ/WEB-INFĿ¼Ï¡£
¡¡¡¡³ÌÐòÀý5ÖеÄtaskstatus.jspʹÓÃÁËÁ½¸öJSP fragment¡£Õâ¸öJSPµÄ¹¦ÄÜÊÇÏÔʾһ×éTaskµÄÃû³ÆºÍÍê³ÉÈÕÆÚ£¬Ëüͨ¹ý£¼jsp:attribute name£½"..."£¾¶¨ÒåÁËÁ½¶ÎJSPfragment(Ãû³ÆΪonSeheduleºÍdelayed)¡£ÔÚ£¼jsp: attribute£¾±ê¼ÇÄÚµÄJSP¾ÍÊÇJSPfragment£¬¶ø£¼jsp:attribute£¾±ê¼Ç±»Ò»¸ö£¼ietag: listTasks£¾°üΧ¡£Õâ¸ö±ê¼ÇÊÇÒ»¸öͨ¹ý±ê¼ÇÎļþ¶¨ÒåµÄ×ÔÖƱê¼Ç£¬ËüµÄ¶¨ÒåÎļþÔÚ/WEB-INF/tagsĿ¼Ï¡£±ê¼ÇÎļþµÄÃû³ÆºÍ±ê¼ÇÃû³ÆÒ»ÖÂΪ¡°listTasks.tag"¡£Õâ¸ö±ê¼Ç»áʹÓõ½Ç°Ã涨ÒåµÄÁ½¸öJSP fragment¡£
¡¡¡¡Àý5:
¡¡¡¡ £¼%@ taglib prefix="ictag" tagdir="/WEB-INF/tags" %£¾
¡¡¡¡ £¼HTML£¾£¼HEAD£¾£¼TITLE£¾JSP Fragment Sample£¼/TITLE£¾£¼/HEAD£¾
¡¡¡¡ £¼BODY£¾
¡¡¡¡ £¼CENTER£¾
¡¡¡¡ £¼FONT COLOR='#009999' SIZE='4' face='Arial'£¾
¡¡¡¡ £¼STRONG£¾JSP Fragment Sample Using Tag Files£¼/STRONG£¾
¡¡¡¡ £¼/FONT£¾
¡¡¡¡ £¼/CENTER£¾
¡¡¡¡ £¼HR£¾
¡¡¡¡ £¼h2£¾Tasks£¼/h2£¾
¡¡¡¡ £¼ietag:listTasks£¾
¡¡¡¡ £¼jsp:attribute name="onSchedule"£¾
¡¡¡¡ £¼td£¾
¡¡¡¡ Name:${name}£¼br/£¾
¡¡¡¡ £¼/td£¾£¼td£¾
¡¡¡¡ Date:${date}
¡¡¡¡ £¼/td£¾
¡¡¡¡ £¼/jsp:attribute£¾
¡¡¡¡ £¼jsp:attribute name="delayed"£¾
¡¡¡¡ £¼td£¾Name:${name}£¼br/£¾
¡¡¡¡ £¼/td£¾£¼td£¾
¡¡¡¡ £¼font color="red"£¾Plan:£¼strike£¾ ${pianDate}£¼/strike£¾£¼/font£¾£¼br/£¾
¡¡¡¡ £¼b£¾Actural:${actDate}£¼/b£¾
¡¡¡¡ £¼/td£¾
¡¡¡¡ £¼/jsp:attribute£¾
¡¡¡¡ £¼/ictag:listTasks£¾
¡¡¡¡ £¼/BODY£¾
¡¡¡¡ £¼/HTML£¾
¡¡¡¡Î壩ÆäËûÌØÐÔ
¡¡¡¡JSP2.0»¹ÓÐһЩÆäËûÌØÐԱ仯£¬±ÈÈçÑϸñÐÞÕýÁËI18NµÄÓï·¨¹æÔò£¬¸Ä½øJSP¶ÔÓ¦XMLÓï·¨´Ó¶øÔÊÐíʹÓÃnamespacesµÈ¡£ÕâЩ²¢²»ÊǺËÐŦÄÜ£¬´ó¼Ò¿ÉÒÔ²ÎÕÕjava.sun.comµÄÓйØ×ÊÁÏÁ˽⹦ÄܵÄϸ½Ú£¬ÕâÀï¾Í²»ÔÙ²ûÊö¡£