| ¥N
¦Ò Áp ¨t |
|
Mail: |
| PassBiBle |
 |
PassBiBle.Com |
| Msn
: |
| PassBiBle |
 |
HotMail.Com |
| QQ
: 6411019 |
|
 |
| |
|
JSP³Ì·s¯S©Ê¤Î«ä·Qªº³Ì¨Î¹ê½î
|
| |
¡@ ·§n¡G
JSP³WSªº¤£Â_¶i®i¡A¥i¥Îªºjsp¶}µo¤u¨ã¼Æ¶q¤£Â_¼W¦h¡A¥H¤Îjsp§Þ³N¥i¯A¤Î»â°ìªº¤£Â_ªºÂX®i¡A«P¶i¤F°ò¤_jsp§Þ³Nªº°ªºûÅ@©Ê¯à©M¼Ðã¤ÆªºÊIµ¸À³¥Îªº¶}µo¡C³o½g¤å³¹°Q½×¤F¦bjsp¶i®i¤¤ªº¤@¨Ç¥Dn¤º®e¥H¤Î¦p¦ó§ó®e©öªº¶}µo°·§§ªºJSPÊIµ¸À³¥Î¡C³o½g¤å³¹¥i¥HÀ°§UŪªÌ´£°ªÀ³¥ÎJSP±j¤j¥\¯àªº¯à¤O¡A¦}¯à°÷Åý§A¬°±N¨ÓJSPªº¤É¯Å°µ¦nã³Æ¡C
£€¡@¦Û±q§Ú¡]ì¤å§@ªÌ¡^¦b2001¦~©³µoªí¤F¡§JSP³Ì¨Î¹ê½î¡¨¥H¨Ó¡AJSP§Þ³N¤w¸g¦³¤FÀ¸¼@©Êªºµo®i¡C³\¦hªº¤u¨ã¤w¸g¨Ï±o¶}µo°ò¤_JSP§Þ³NªºÊI¶Åܪº§ó¥[®e©ö¡C¦b¤W¤@½g§Úªº¡§³Ì¨Î¹ê½î¡¨ªº¤å³¹¤¤©Ò´£¨ìªº¹ê½î¨ÌµMÓì¥Î¡CµM¦Ó¡AÀHµÛ·sªº¯S©Ê¡A¤u¨ã¡A¥H¤ÎJSP¶}µo«ä·Qªº¥X²{§A»Ýn¨Ï¥Î§ó¦hªº³Ì¨Î¹ê½î¨Ó¶}µo§ó¥[¥·Æªº°ªºûÅ@©Ê¯àªºJSPªºÀ³¥Î¡C³o½g¤å³¹¦C¥X¤F¤@¨ÇÀ³¥Î¤F³Ì«nªº·sªº¯S©Ê¡A¤u¨ã©M«ä·Qªº³Ì¨Î¹ê½î¡G
¡@¡@ ¶}©l½s¼gJSP document¡D
¡@¡@ ¤Þ¤JJSP½sµ{¬ù©w
¡@¡@ ¨Ï¥Î¥¿Ú̪ºS³ò¡]Scope¡^
¡@¡@ ¤p¤ßªººÞ²z¡§·|¸Ü¡¨S³ò
¡@¡@ §Q¥ÎJSTL(JavaServer Pages Standard Tag Library)ªº¯SÂI ¡@¡@ §Q¥Îservlet filers¡]Intercepting Filter pattern¡^ªº¯SÂI
¡@¡@ ³Ð«Ø§AªºJsp pagesªº¤åÀÉ
¡@¡@ ¹w¥ý½sĶJSPÊI¶©M¤åÀÉ
¡@¡@ ²Õ´¤å¥ó©M¥Ø¿ý¥H«K¤_®e©öªº¶}µo©M³¡¸p
¡@¡@ ¤p¤ß¨Ï¥Î¨p¦³ªº¡AÉO¨ÑÀ³°Ó¯S©wªº¯S©Ê
¡@¡@ HTML¼Ðñ¨Ï¥ÎXHTML¡]Extensible HyperText Markup Language¡^»yªk
¡@¡@ ¨Ï¥ÎJSP document¡D¤£¬OJSP pages
¡@¡@ JSP³WS¤ä«ùJSP pages¦P¼Ë¤]¤ä«ùJSP document¡C¨âªÌ¤§¶¡¥Dnªº°Ï§O¬O¥¦Ì¹ïXMLÝ®eªºµ{«×¡CJSP pages¨Ï¥Î¶Ç²Îªº©ÎªÌ»¡¬O¡§³t°O¡]shorthand¡^¡¨»yªk¡A¦ÓJSP document¡D¥Îªº»yªk§¹¥þÉOXML¬ÛÝ®e¡CJSP document¡D®ÉÔ³Q¦¨¬°¬O¨Ï¥Î¤FXML»yªkªºJSP pages¡C¦ý¬O³o¨½§Ú±N¤À§OºÙ¥¦Ì¬°JSP pages©MJSP document¡D«K¥[¥H°Ï¤À¡C
¡@¡@ °ò¤_¥H¤U¤LÓì¦]§Ú±À¯ò¨Ï¥ÎJSP document¡D
¡@¡@ 1.JSP document¡D«Ü¦n²Õ´¤FªºXML\HTML(You can easily verify JSP document¡D as well-formed XML/HTML)
¡@¡@ 2.¥i¥H¨Ï¥ÎXML Schema¨ÓÅçµýJSP document¡D l ¥i¥H«Ü®e©öªº¨Ï¥Î¼Ð㪺XML¤u¨ã¨Ó¼g©M¸ÑªR
¡@¡@ 3.¥i¥H¨Ï¥ÎXSLT¡]Extensible Stylesheet Language Transformations¡^¥H¤£¦Pªºform¨Ó½s¼gJSP document¡D¨ãÊ^½Ð¬Ý¡§JSP document¡Dnbspwith XSLT¡¨http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp.html
¡@¡@ 4.JSP¨Ï¥Î¤FXML¬Û®einclude©Mforward action¡Acustom¼Ðñ¡A¦]¦Ó¨Ï±o¾ãÓdocument¡DXML¬Û®e¡A³o¼Ë´N´£°ª¤F½s½Xªº¤@P©Ê¡C
¡@¡@ 5.JSP document¡D¬Û¹ïJSP pages»Ýnµy·L¦h¤@ÂIªº¶}µo³W«h¡A¦ý¬O±a¨Óªº¦n³B¬O§ó¥[®e©ö¾\Ū©Mºû«ùªºdocument¡D¡A¯S§O¬O¹ï¤_èè¶}©l¾Ç²ßJSPªº¤H¨Ó»¡¡C
¡@¡@ Ãö¤_³Ð«ØJSP document¡D©M¨ä¯SÂIªº¸Ô²Ó¤º®e½Ð°Ñ¦Ò¡§Write JSPs in XML Using JSP1.2¡¨¡]http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp.html¡^
¡@¡@ JSP document¡D³Ì¤jªº¯ÊÂI¬O¨S¦³ÉOXML¬ÛÝ®eªºJSPª`ÄÀ¦s¦b¡CJSP document¡D¥H¨Ï¥Î«È
¤áºÝªºª`ÄÀ¡]HTML-/XML ¨Cstyle¡^©ÎªÌ¬O´O¤Jªºjavaª`ÄÀ¡C¦ý¬O¨S¦³JSP document¡D<%-- --> ¦ÓJSP¥i¥Îªº¤W±ªº¨âÏúª`ÄÀ¤èªk³£¦³¨ä¦Û¨ªº¯ÊÂI¡C§A¥i¥H¦b±o¨ìªºÊI¶¤¤¬Ý¨ì«È¤áºÝªºª`ÄÀ¡]³q¹LÂsÄý¾¹µø¹Ï¨½±ªº¡§¬d¬Ý·½¤å¥ó¡¨¥\¯à¡^¡A¦Ó¥Bn¨Ï¥Îjavaªºª`ÄÀ»Ýn±Njava¥N½Xª½±µªº¼g¦bJSP document¡D¤¤¡C
¡@¡@ ¦b¥»¤å³Ñ¤Uªº³¹¸`¤¤¡A§Ú±N¨Ï¥ÎJSPs¨Ó¥NªíJSP pages©MJSP document¡A¦]¬°§Ú©Ò°Q½×ªº³Ì¨Î¹ê½î¦P¼ËªºÓì¥Î³o¨âÏú§Î¦¡ªºJSP¡C
¡@¡@ ¨Ï¥ÎJSPªº½s½X³WS
¡@¡@ µL½×¨Ï¥Î¥ô¦ó¤@Ïú»y¨¥¡A³Ð«Øªº¥ô¦ó¤uµ{¡A¦b´£°ª¶}µo¡AºûÅ@¡A©M´ú¸Õ§Aªº³n¥óªº¨¤«×¿í´`½s½Xªº¼Ðã©M³WS³£¬O«Ü©ú´¼ªº¿ï¾Ü¡CŪ¨ä¥L¶}µo¤Hûªº¥N½X¦}¤£Â²³æ¦Ó¥B¤]¤£¬O´r§Öªº¨Æ±¡¡C¦ý¬O¡A¦pªG©Ò¦³ªº¶}µo¤Hû³£¿í´`¦P¼Ëªº©R¦W³WS©M¨ä¥Lªº¤@¨Ç¬ù©wªº¤Æ¡A¾\Ū¥N½X©MºûÅ@´N·|¨Ï±o¾\Ū¥N½X¹ï¥L¤H©M½sµ{¤Hû¦Û¤vÅܪº®e©ö¤@¨Ç¡C
¡@¡@ Sun Microsytem ³Ìªñ¤w¸gÀ°§U¤@¨Ç²Õ´¨Ó³Ð«Ø³o¼Ëªº³WS¡A¨î©w¤F¤åÀÉ¡§Code Conventions for the JavaServer Pages Technology Version 1.x Language¡¨¥i¥H§K¶OÀò±o¡A°Ñ¦Ò¡§Resources¡¨(http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp.html)¡C¦pªG§Aªº¤½¥qÁÙ¨S¦³¿í´`JSP
½sµ{³WSªº¸Ü¡A§Ú«ØÄ³¨Ï¥Î³oÓ¤åÀɧ@¬°¤@Ó°_ÂI¡C§A¥i¥H§¹¥þªº¿í·Ó¸Ó¤åÀɤ]¥i¥H¦b¨ä°ò¦¤W³Ð«Ø¦Û¤vªº³WS¡C
¡@¡@ ¬°¹ï¶H¿ï¾Ü¦XÓ쪺Scope
¡@¡@ JSP ³WS¤ä«ù¥|Ïúscope¡]À³¥Îapplication,·|¸Üsession¡A½Ð¨Drequest©M¶±page¡^,¦bJSPs¤¤§A¥i¥H¬°³Ð«Øªº¹ï¶H¿ï¾Ü¨ä¤¤ªº¤@Ïú¡A¦]¬°¸j©w¨ì³o¨Çscopeªº¹ï¶H®ø¯Ó¤º¦s¡A¦}¥B¦b¦³¨Ç®ÉÔ»ÝnÄÀ©ñ¡A©Ò¥H³Ì¦n¿ï¾ÜÓì·íªºscope¨Ó§¹¦¨§Aªº¥ô°È¡C
¡@¡@ À³¥ÎS³ò¡]Application scope¡^
¡@¡@ Application scope ¬O³Ì¬°¼sªxªº¤@ÓS³ò¡AÀ³¸Ó¦b¥²nªº®ÉÔ¤~ªö¥Î³oÏú§Î¦¡¡C§A¥i¥H¦b«D·|¸Ü¬ÛÃö¡]session-aware¡^ªºJSPs¤¤³Ð«Ø¸j©w¨ìapplicationªº¹ï¶H¡]You can create objects bound at application level in JSPs that are not session-aware,¡^¦b³oÏúÃþ«¬ªºJSPs¤¤¥i¥H¥ÎÀ³¥ÎS³ò¨Ó¦sÀx¼ÆÕu©M«H®§¡C¡] so application scope is useful for storing information when using these types of JSPs¡^¡C§A¤]¥i¥H¨Ï¥Î¸j©w¨ìapplicationªº¹ï¶H¥Î¨Ó¦b¤£¦Pªº·|¸Ü¡]session¡^¶¡¦@¨É¼ÆÕu¡C·í§A¤£»ÝnapplicationS³òªº¹ï¶Hªº®ÉÔ¤@©wnÅ㦡ªº§R°£¥¦Ì¥H«KÄÀ©ñ¤º¦s¡C
¡@¡@ ·|¸ÜS³ò¡]session scope¡^
¡@¡@ ¦b§Úªº¸gÅ礤¡A·|¸ÜS³òn¤ñÀ³¥Î
S³ò¥Îªº¦h¡C·|¸ÜS³ò¤¹³\§A³Ð«Ø¦}¥B±N¹ï¶H¸j©w¨ì¤@Ó·|¸Ü¤W±¡C§A¥²¶·¦bsession-awareªºJSPs¤¤³Ð«Ø¸j©w¦b·|¸Üªº¹ï¶H¦}¥B¨Ï¦b¦P¤@Ó·|¸Ü¤¤©Ò¦³ªºJSP©Mservlet¯à°÷³X°Ý¨ì³o¨Ç¹ï¶H¡C·|¸ÜS³ò±`±`¥Î¦bºÞ²z¦w¥þÅçµý©MºÞ²z¦hÓ¶±ªºª¬ºA«H®§¡C¸j©w¦b·|¸ÜS³òªº¹ï¶H¦b¤£»Ýnªº®ÉÔ¤]nÅã¥Üªº§R°£¡C·í§Úp¦E±N¬YÓÃþªº¹ï¶H¸j©w¨ì·|¸ÜS³òªº®ÉÔ§Ú³q±`·|¨Ï¸ÓÃþ¥i¦ê¦æ¤Æ¡C
¡@¡@ ½Ð¨DS³ò¡]request scope¡^
¡@¡@ ¦b¸j©w¹ï¶Hªº®ÉÔ¡A¶±S³ò§Ú¥Îªº³Ì¦h¡C¦¹Ãþ¹ï¶H¥u¦b¦P¤@ӽШDªº¶±¶¡¦³®Ä¡C¦b½Ð¨D³B²z§¹¦¨ªº®ÉÔ³o¨Ç¹ï¶H±N·|¦Û°Êªº³QÄÀ©ñ¡C¦]¦Ó¤£»ÝnÅ㦡ªºÄÀ©ñ¥¦Ì¡A³o¼Ë´N¨S¦³¤F¨Ï¨t²Î³Q¤@¨Ç¤£¥²n¤º¦s®ø¯Ó¦Ó©ì²Öªº¦MÀI¡C
¡@¡@ ¶±S³ò¡]page scope¡^
¡@¡@ ·í§A³Ð«Ø¥u¹ï·í«e¶±¬ÛÃöªº¹ï¶Hªº®ÉÔ§A»Ýn¿ï¾Ü¶±S³ò¡C©M½Ð¨DS³ò¤@¼Ë¡A¸j©w¦b¶±S³òªº¹ï¶H¤£nÅ㦡ªº§R°£¡C§Ú«Ü¤Ö¦b§ÚªºJSPÀ³¥Î¤¤¨Ï¥Î¡§¶±S³ò¡¨¡A¦ý¬O³o¬OªºÀq»{S³ò¡C
¡@¡@ ¿ï¾ÜþÏúS³ò¡]scope¡^
¡@¡@ »Ýn¥J²Óªº¿ï¾Ü³Ð«Ø¹ï¶HªºS³ò¨Ó«Oµý¦³®Äªº§Q¥Î¤º¦s¡A³q±`§Ú·|¦bèè¶}©lªº®ÉÔ¿ï¾Ü½Ð¨DS³ò¡AµM¦Z¦bµû¦ô¬O§_»Ýn¿ï¾ÜS³ò§ó¤jªºS³ò¡C
¡@¡@ ¥J²ÓªººÞ²z·|¸ÜS³ò
¡@¡@
«e±¤w¸g´£¨ì¹L¡A¥u¦³¦b¥²nªº®ÉÔ¤~¿ï¾Ü·|¸ÜS³ò¦}¥B·í³o¨Ç¹ï¶H¤£¦b»Ýn·|¸Ü¯Å³X°Ýªº®ÉÔ»ÝnÅ㦡ªº¥h±¼¹ï¶Hªº¨ä·|¸ÜS³ò¡C·í¤£¨Ï¥Î·|¸ÜS³òªº¹ï¶HªºJSP¤¤§A¥i¥H³]¸m¶±ªºdirectiveªºsessionÄݩʬ°false¡A³o¼Ë¥i¥HÁ×§KºÞ²z·|¸ÜS³ò¡C¦ý¬O¡A«Ü¤ÖªºÊIµ¸À³¥Î¤£»Ýn·|¸ÜS³òªº¤ä«ù¡C³q±`¡A§Ú¨Ï¥Î·|¸Ü¨Ó¤ä«ù¦w¥þÉó¨î¥H¤Î¨ä¥Lªº¤@¨ÇÀ³¥Î»Ý¨D¡CºÉºÞ¤@Ó·|¦b¤@Ó¥i¥H¥Ñ§A°t¸mªº®É¶¡¦Z¹L´Á¡A¦ý¬O¦b¤£»Ýn¹ï¶Hªº·|¸ÜS³òªº®ÉԳ̦nÅ㦡ªº¨ú®ø¥¦Ì¡A¦Ó¤£¬O¨Ì¿à·|¸Ü¦Û°ÊÄÀ©ñªº¥\¯à¡C
¡@¡@ ªö¥ÎJSTL¡]¼Ðã¼Ðñ®w¡^
¡@¡@ JSPªº¤Þ¤J©Mªö¯Ç¤w¸g¦¨¬°JSP¶}µo¤Hûªº¤@ӳ̬°«nªº¶i¨B¡CJSTL¦³®ÉÔ¤]ºÙ¬°¡§JSP Standard Tag Library¡¨¡C¦bJSTL¤¤ªºT¥Nªíªº¬O¼Ðñ¡]Tag¡^¦Ó¤£¬O¼ÒªO¡]Template¡^¡C
¡@¡@ JSTL¡GI´ºÉO¦^ÅU
¡@¡@ ¦b§Ú¥H«eªº¤å³¹¨½¡A§Ú´£¨ì¹LJSP¶}µo¤Hûªö¯Ç¥i¥H±o¨ìªº¦Û©w¸q¼Ðñ®w¦Ó¤£¬O¦Û¤v±qÀY¶}©l³Ð«Ø¡C¦³³\¦hªº°Ó·~ªº©ÎªÌ¶}·½ªº¦Û©w¸q¼Ðñ®w²{¦b¤w¸g¥i¥H¥[¥H§Q¥Î¡C¦ý¬O¦³¤@Ó¯ÊÂI´N¬O¡G¶}µo¤Hû»Ýn¦bJSP¤¤«ö·Ó³o¨Ç¦Û©w¸q¼Ðñ®w©Ò¯S©wªº®æ¦¡¨ÓÀ³¥Î³o¨Ç¼Ðñ¡CJSTLªº¥X²{¸Ñ¨M¤F³oÓ°ÝÃD¡A¦]¬°JSTL´£¨Ñ¤F¦Û©w¸q¼Ðñªº¼Ðã±µ¤f¡A³o¨Ç¼Ðñ¨¬¥Hº¡¨¬JSP¶}µo¤Hûªº¤@¨Ç°ò¥»ªºn
¨D¡C¡]The advent of JSTL has addressed this downside by providing standard interfaces to the custom tags that perform many basic functions JSP developers need.¡^ ¤£¦Pªº¨ÑÀ³°Ó¥i¯à¥H¤£¦Pªº§Î¦¡¹ê²{³o¨ÇJSTL¼Ðñ¡A¦ý¬OJSP¶}µo¤Hû¤£nª¾¹D¹ê²{¼Ðñ®Éªº¤£¦PÂI¡C¦pªGJSP¶}µo¤Hû¨Ï¥ÎJSTL½s¼g¤FJSP page©ÎªÌJSP document¡DJSP page©ÎªÌJSP document¡D¸ÓÓì¥Î©Ò¦³ªºJSTL¹ê²{¤èªk¡C¦³³\¦h¦³É²Èªº®Ñ©M¤@¨Ç¦b½uªº¸ê·½¥i¥H¥h¾Ç²ßJSTL¡C³o¨½§Ú±N¥Dn²³æªº¤¶²ÐJSTLªºÉ¬ÂIÉO¯S©Ê¡C
¡@¡@ JSTLªºÉ¬ÂI
¡@¡@ ²µuªº»¡¡AJSTL´£¨Ñ¤F©Ò¦³ªº¤w¸g¤½¥¬ªº¦Û©w¸q¼Ðñ®w©Ò¦³ªº¦n³B¡A¦Ó¥B´£¨Ñ¼Ðã¤Æªº¼ÐñAPI¡CJSTL«P¶i¤F°ª¥iºûÅ@©Ê©M¥i²¾´Ó©Êªºpages©Mdocument¡C§Ú¦C¥X¤FJSTL¤@¨Ç¯S§Oªº¯SÂI¡C
¡@¡@ 1.JSTL´£¨Ñ¤F°ò¤_¼Ðñªº¹M¾ú¡A±ø¥ó¥H¤Î¨ä¥L¤@¨Ç¥\¯à¡A³o¨Ç¥\¯à¥H«e©ÎªÌ¬Oª½±µ¦bJSP¤¤´O¤J¥N½X¨Ó¹ê²{ªº¡A©ÎªÌ¬O¨Ï¥Î¤F¦Û¤v³Ð«Øªº¼Ðñ¡A«D¼Ð㪺¼Ðñ®w¡A©ÎªÌ¬O³q¹L¨Ï¥ÎServlet¨Ó¥N´ÀJSP¨Ó¹ê²{ªº¡C
¡@¡@ 2.JSTL¨Ï¥Î¤FEL¡]expression language¡^»yªk
¡@¡@ 3.½s¼g¦Û©w¸q¼Ðñ¬Û¹ï¨ä¥L¤@¨ÇJSP¶}µo¥ô°È¨Ó»¡»Ýn§ó¦hªººë¤OÉO¸gÅç¡CJSTL³q¹L¨âÏú¤èªk¨Ó²¤Æ³o¨Ç¨BÆJ¡Gº¥ý¡A¦p«e©Òz¡Ajs
tl¯à¸Ñ¨M«Ü¦h©w¨î(¦Û©w¸q)ªºtagsªº»Ýn.¡]JSTL handles many common needs for custome tags¡^¡C¨ä¦¸¡AJSTL´£¨Ñ¤F¤@¨ÇÉó¨î¨Ï±o½s¼g§A¦Û©w¸qªº¼Ðñ§ó²³æ¡A¤×¨ä¬O½s¼g¤ä«ùEL¦Û©w¸q¼Ðñªº®ÉÔ¡C
¡@¡@ ¨ãÊ^ªºJSTL¯S©ÊÉOɬÂI ¤U±Â²³æªº·§¬AJSTL4Ó¥i¥Î¦Û©w¸q¼Ðñ®w¤¤¤TÓ¼Ðñ®wªº¤@¨ÇɬÂI¡A¦}¥Bµ¹¥X¤F¤£±À¯ò¨Ï¥Î¼ÆÕu®w³X°Ý¼Ðñ®w(database access library)ªºì¦]¡C¦P¼Ë§Ú¤]°Q½×¤F¨Ï¥ÎELªºÉ¬ÂI¡C
¡@¡@ ¼ÆÕu³X°Ý¼Ðñ®w¡]Database access library¡^
¡@¡@ JSTL´£¨Ñ¤F¼ÆÕu³X°Ý¼Ðñ®w¡A¦ý¬O§Ú«Ü¤Ö¥Î¥¦¡A¦]¬°§Ú±j¯Pªº»{¬°¤£À³¸Ó¦bJSP¶±¤ºª½±µ³X°Ý¼ÆÕu®w¡C¦pªG¦bJSP¤¤ª½±µªº³X°Ý¼ÆÕu®w±N·|°§C«¥Î¡A¦]¬°¼ÆÕu®w³X°Ýªº¥N½X¦b¨Ï¥Î¼ÆÕu®wS³ò¼ÐñªºJSP¶±¥~¬O¤£¥i¥H³Q³X°Ý¨ìªº¡C¦bJSPs¤¤ª½±µªº¶i¦æ¼ÆÕu®w³X°Ý±N·|¥[¤jªí¥Ü¼hÉO¼ÆÕu¼h¤§¶¡ªº½¢¦X¡CÄY®æªº¤À³Î·N¨ýµÛ§ó¦nªº¼Ò¶ô¤Æ¡AÎ`¥Î©Ê¡A¥H¤Î§ó®e©öªºº¡¨¬ªí²{¼h©M¼ÆÕu¼h¤§¶¡ªº³WS¡]Disciplined separation means more modularity, greater opportunity for reuse, and better opportunities for specialization of presentation and database experts¡^¡C.§Ú±À¯ò¦bJSTLªº¨ä¥L¤TÏú¼Ðñ®w¥i¥Hº¡¨¬JSP¶}©ñ¤Hûªº»Ý¨Dªº®ÉԨϥγo¨Ç¼Ðñ®w¡A¦ý
¬O§Ú¤£±À¯ò¨Ï¥ÎJSTLªº¼ÆÕu®wS³ò¼Ðñ®woutside of prototypes and the simplest Web applications¡C
¡@¡@ JSTL ®Ö¤ß¼Ðñ®w(JSTL core tag library)
¡@¡@ ¥¿¹³¦W¦r¤@¼Ë¡AJSTL®Ö¤ß¼Ðñ®w¬O¦bJSTL¥|Ïú¼Ðñ®w¤¤³Ì±`¥Îªº¤@Ïú¡C³oÓ¼Ðñ®w´£¨Ñ¤F¹ïcollectionªº¹M¾ú¡A±ø¥ó»y¥y¥H¤Î¨ä¥¦¤@¨Ç±`¥Îªºµ{§Çµ²ÌÛ¡CJSTL®Ö¤ß¼Ðñ®w¥i¥H¨Ï±oJSP¶}©ñ¤Hû¤£¥²½s¼g¥L̦ۤvªº¦Û©w¸q¼Ðñ®w©ÎªÌª½±µ¦bJSPs¤¤´O¤JJava¥N½X¡C
¡@¡@ JSTL XML ¼Ðñ®w¡]JSTL XML tag library¡^
¡@¡@ ³oӼаO®w´£¨Ñ¤F¤@¨Ç¥O¤HÃٹĪº¥B¥\¯à±j¤jªºXML¾ÞÁa¼Ðñ©MXSLTÂà´«¼Ðñ¡C
¡@¡@ JSTL formatting ¼Ðñ®w
¡@¡@ ¦pªG»Ýn¦b¦hÓ°ê®a´£¨ÑÊI¶©MÊI§}¡A¨º¤\°ê»Ú¤Æ¡]internationalization¡^¹ïÊIµ¸¶}µo¶µ¥Ø¡]web development projects¡^¨Ó»¡¬O¤@ӫܤjªº¬D¾Ô¡CJSTL formatting¼Ðñ®w¬°¦¹¦VJSP¶}µo¤Hû´£¨Ñ¤F¤@¨Ç¦Û©w¸q¼Ðñ¡A¥i¥H¤ä«ù«ö·Ó¯S©wªº°Ï°ìŪ¼g¼Æ¦r©M¹ê½î¡C
¡@¡@ Expression Language
¡@¡@ JSTL¥H¤Wªº¦Û©w¸q¼Ðñ®w¦³¨âÏúÃþ«¬¡GRT¡]traditional request time¡^¦Û©w¸q¼Ðñ®w©MEL¼Ðñ¡C¦]¬°ELn§óÆF¬¡¤@¨Ç¡A©Ò¦³§Ú±À¯ò¨Ï¥ÎEL¦Û©w¸q¼Ðñ®w¡C
¡@¡@ JSTL©M¨ä¥L¤@¨Ç¦Û©w¸q¼Ðñ®w
¡@¡@ ¦]¬°¦Û©w¸q¼Ðñ®w(custom tag library)¦bJSTL¤Þ¤J¥H«e¤w¸g¨Ï¥Î¤F«Üªøªº®É¶¡¡A³\¦hªºÓÊ^©M²Õ´³£¤w¸g¶}µo¤F¦Û©w¸qªº¼Ðñ®w¡C³o¨Ç¼Ðñ®w¦b«Ü¤jµ{«×¤WÉOJSTLªº¥\¯à³£¦³«Î`¡C¦b¤j¦h¼Æ±¡ªp¤U¡A¦b¦Ò¼{¹ê²{¬Û¦Pªº¥\¯à®É¡A§Ú±À¯ò¨Ï¥ÎJSTL¦Ó¤£¬O¦Û¤v¶}©ñªº¦Û©w¸q¼Ðñ®w©ÎªÌ®É¨ä¥L¤@¨Ç¥i¥H±o¨ìªº¦Û©w¸q¼Ðñ®w¡]other publicly available custom tag library¡^¡CJSTL´£¨Ñªº¼Ðã¤Æ¬O¤@Ó·N¸q«¤jªºÉ¬ÂI¦]¬°¢Ï¢Þ¢×¥i¥H¾Ç¤@¦¸¡A¦Ó¦Z§A´N¥i¥H¤@³eªº¨Ï¥Î¤F¡C
¡@¡@ ¤ñ¸ûStrutsªº¼Ðñ®w©MJSTL¼Ðñ®w´£¨Ñ¥i¥HÀò±o¤@ӫܦn§Q¥Î³o¨Ç³Ì¨Î¹ê½îªº¨Ò¤l¡]Comparing Struts tag libraries and JSTL provides a good example of how to implement this best practice¡^¡CStruts´£¨Ñ¤FMVC®Ø¬[¥H¥~¨ä¥Lªº¤@¨ÇɬÂI¡C¨ä¤¤¥]¬AªºStrutsªº¦Û©w¸q¼Ðñ®w¶°¦X¡C¦bJSTL¤Þ¤J¤§«e¡AStrutsªº¦Û©w¸q¼Ðñ®w¤w¸g¤ä«ù¹M¾ú¡] iteration¡^¥H¤Î±ø¥ó¼Ðñ¡A¦ý¬O²{¦b§Ú¶}©l¨Ï¥ÎJSTLªº¹M¾ú©M±ø¥ó¼Ðñ¦Ó¤£¬OStruts¨½±ªº¼Ðñ¡C§Ú²{¦b¤´µM¦A¨Ï¥ÎStrutsªºform¼Ðñ¡A³o¬O¦]¬°³oÓ¼ÐñÉOStrutsªºªí³æ¡]form¡^ºò±KªºÁp¨t¦b¤@°_¡A¦Ó¥B¦bJSTL¨S¦³¬Û¹ïÀ³ªº¼Ðñ¥i¥Î¡C
¡@¡@ ¤ñ¸û¨ä¥Lªº¤@¨Ç¦Û©w¸q¼Ðñ®w©MJSTL¼Ðñ®w¡A¤W±ªº°Q½×¤]¬OÓì
¥Îªº¡C¦pªGJSTL¼Ðñ®w¥i¥H§¹¥þªº¤ä«ù¦P¼Ëªº¥\¯àªº¸Ü¡AÀ³¸Ó¨Ï¥Î¼Ð㪺JSTL¼Ðñ¡C·íµM¦pªGJSTL¤£¤ä«ùªº¸Ü¡A§A´N¨S¦³¿ìªk¤F¡C¦b¤j¦h¼Æ±¡ªp¤U¡A¹³§Ú¤W±°Q½×ªºStruts¼Ðñ©MJSTL¼Ðñ¡A³q±`»Ýn¦P®É¨Ï¥ÎJSTL©M¨ä¥L¤@¨Ç¦Û©w¸q¼Ðñ¡C
¡@¡@ JSTL¡G³Ì¦Zªº¸É¥R
¡@¡@ Ãö¤_JSTL§ó¸Ô²Óªº¤º®e,¦oªº¯SÂI¡A¥H¤Î¦p¦ó¦b§Aªºjsp¤¤À³¥ÎJSTL½Ð°Ñ¦Ò¡§resources¡¨ http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp-p2.html¡C¦b¡§resource¡¨¤¤¥]§t¤F¨ì¡§Apache's Standard Taglib(¤@Ó¶}·½ªº¡A¼sªx¨Ï¥ÎªºJSTL¹ê²{)ªº³s±µ¡CWeb serverªº´£¨Ñ°Ó¤w¸g¶}©l¦b¥L̪ºwebªA°È¾¹¤Wµo¥¬JSTLªº¹ê²{¡AJSTL¹w´ú±N¦¨¬°³Ì²×ªºJSP2¡C0³WS¤¤ªº¤@³¡¤À¡C
|
|
|