£¨×÷ÕߣºÐ¡ÁúͤÖ÷Blueski±àÒë¡¡2000Äê12ÔÂ22ÈÕ 14:22£©
¡¡¡¡
¡¡¡
¡£¨ÐøÉÏƪ£©
¡¡¡¡
¡¡¡¡ÎÊÌâ #3: ¼òµ¥¹¤×÷ÈÔÈ»ºÜÀÛÈË
¡¡¡¡
¡¡¡¡¼´Ê¹ÊǺܼòµ¥µÄ¹¤×÷
£¬ÀýÈç°üº¬ headerºÍ footer
£¬ÔÚJSPÖÐÈÔÈ»ºÜÀ§ÄÑ
¡£¼ÙÉèÓÐÒ»¸ö"header"ºÍÒ»¸ö"footer"Ä£°åÒª°üº¬µ½ËùÓÐÒ³Ã棬¶øÿһ¸öÄ£°åÒªÔÚcontentÖаüº¬µ±Ç°µÄÒ³±êÌâ¡£
¡¡¡¡
¡¡¡¡ÔÚJSPÖÐ×î¼Ñ°ì·¨ÊÇ£º
¡¡¡¡
¡¡¡¡<% String title = "The Page Title"; %>
¡¡¡¡
¡¡¡¡<%@ include file="/header.
jsp" %>
¡¡¡¡
¡¡¡¡...ÄãµÄÒ³ÃæÄÚÈÝ...
¡¡¡¡
¡¡¡¡<%@ include file="/footer.
jsp" %>
¡¡¡¡
¡¡¡¡Ò³ÃæÉè¼ÆÕßÒª¼Çס²»ÄÜÒÅ©µÚÒ»ÐеķֺŲ¢Òª½«title¶¨ÒåΪһ¸ö×Ö·û´®¡£´ËÍ⣬/header.jspºÍ/footer.jsp±ØÐëÔÚ¸ùĿ¼Ï²¢ÇÒ±ØÐëÊÇ¿É´æÈ¡µÄÍêÕûÎļþ¡£
¡¡¡¡
¡¡¡¡ÔÚWebMacroÖаüº¬headersºÍfooters×öÆðÀ´±È½Ï¼òµ¥£º
¡¡¡¡
¡¡¡¡#set $title = "The Page Title"
¡¡¡¡
¡¡¡¡#parse "header.wm"
¡¡¡¡
¡¡¡¡Your content here
¡¡¡¡
¡¡¡¡#parse "footer.wm"
¡¡¡¡
¡¡¡¡ÕâÀï¶ÔÉè¼ÆÕßÀ´ËµÃ»ÓÐÒªÀμǵķֺŻò¶ÔtitleµÄ¶¨Ò壬.wmÎļþ¿ÉÒÔ·ÅÔÚ¿É×Ô¶¨ÒåµÄËÑË÷·¾¶Ï¡£
¡¡¡¡
¡¡¡¡ÎÊÌâ #4: ºÜ´ÖÔïµÄÑ»·
¡¡¡¡
¡¡¡¡ÔÚJSPÖÐÑ»·ºÜÀ§ÄÑ¡£ÕâÀïÊÇÓÃJSPÖظ´´òÓ¡³öÿһ¸öISP¶ÔÏóÃû×Ö¡£
¡¡¡¡
¡¡¡¡<%
¡¡¡¡
¡¡¡¡
¡¡¡¡Enumeration e = list.elements();
¡¡¡¡
¡¡¡¡
¡¡¡¡while (e.hasMoreElements()) {
¡¡¡¡
¡¡¡¡
¡¡¡¡out.print("The next name is ");
¡¡¡¡
¡¡¡¡
¡¡¡¡out.println(((ISP)e.nextElement()).getName());
¡¡¡¡
¡¡¡¡
¡¡¡¡out.print("
¡¡¡¡");
¡¡¡¡
¡¡¡¡
¡¡¡¡}
¡¡¡¡
¡¡¡¡
¡¡¡¡%>
¡¡¡¡
¡¡¡¡Ò²Ðíʲôʱºò»áÓÐÓû§×Ô¶¨Òå±ê¼ÇÀ´×öÕâЩѻ·¡£¶Ô"if"Ò²ÊÇÈç´Ë¡£JSPÒ³¿ÉÄÜ¿´ÉÏÈ¥³ÉÁ˺ܹŹֵÄjava´úÂë¡£¶øͬʱ£¬webmacroÑ»·ºÜƯÁÁ£º
¡¡¡¡
¡¡¡¡#foreach $isp in $isps {
¡¡¡¡
¡¡¡¡The next name is $isp.Name
¡¡¡¡
¡¡¡¡
¡¡¡¡}
¡¡¡¡
¡¡¡¡Èç¹û±ØÒªµÄ»°£¬#foreachÖ¸Áî¿É±»×Ô¶¨ÒåµÄ #foreach-backwardsÖ¸ÁîºÜÈÝÒ×µØÈ¡´ú¡£
¡¡¡¡
¡¡¡¡ÓÃjspµÄ»°ºÜ¿ÉÄܱäÕâÑù£º£¨ÕâÀïÊÇÒ»¸ö¿ÉÄܵÄ
±ê¼Ç£©
¡¡¡¡
¡¡¡¡
¡¡¡¡
¡¡¡¡The next name is <?xml:namespace prefix = jsp />
¡¡¡¡
¡¡¡¡
¡¡¡¡
¡¡¡¡
¡¡¡¡Éè¼ÆÕßµ±È»µØ»áÑ¡ÔñÇ°Õß¡£
¡¡¡¡
¡¡¡¡ÎÊÌâ #5: ÎÞÓõijö´íÐÅÏ¢
¡¡¡¡
¡¡¡¡JSP³£ÓÐһЩÁîÈ˾ªÑȵijö´íÐÅÏ¢¡£ÕâÊÇÒòΪҳÃæÊ×Ïȱ»×ª»»³ÉΪһ¸öservletÈ»ºó²Å½øÐбàÒë¡£ºÃµÄJSP ¹¤¾ß¿ÉÒÔÏà¶ÔÔö¼ÓÕÒµ½³ö´íλÖõĿÉÄÜÐÔ£¬µ«¼´Ê¹ÊÇ×îºÃµÄ¹¤¾ßÒ²ÎÞ·¨Ê¹ËùÓгö´íÐÅÏ¢¶¼ÄÜÈÝÒ׵ر»¶Á¶®¡£ÓÉÓÚת»¯µÄ¹ý³Ì£¬Ò»Ð©´íÎó¶Ô¹¤¾ßÀ´Ëµ¿ÉÄܸù±¾²»¿ÉÄܱ»Ê¶±ð¡£
¡¡¡¡
¡¡¡¡ÀýÈ磬¼ÙÉèJSPÒ³ÃæÐèÒª½¨Á¢Ò»¸ö¶ÔËùÓÐҳͨÓõıêÌâ¡£ÒÔÏ´úÂ벢ûÓÐ´í£º
¡¡¡¡
¡¡¡¡<% static String title = "Global title"; %>
¡¡¡¡
¡¡¡¡µ«Tomcat»áÌṩÒÔϳö´íÐÅÏ¢£º
¡¡¡¡
¡¡¡¡work/%3A8080%2F/JC_0002ejspJC_jsp_1.java:70: Statement expected.
¡¡¡¡
¡¡¡¡static int count = 0;
¡¡¡¡
¡¡¡¡^
¡¡¡¡
¡¡¡¡´ËÐÅÏ¢ÈÏΪÒÔÉϽű¾±»·ÅÈë _jspService()·½·¨¶ø¾²Ì¬±äÁ¿²»ÔÊÐí·ÅÈë·½·¨ÖС£¸ÃÓï·¨Ó¦¸ÃÊÇ <%! %>¡£Ò³ÃæÉè¼ÆÕߺÜÄѶÁ¶®ÕâЩ³ö´íÐÅÏ¢¡£¼´Ê¹×îºÃµÄƽ̨ÔÚÕâ·½ÃæÒ²×öµÃºÜ²»¹»¡£¼´Ê¹ËùÓÐ Java´úÂ붼´ÓÒ³ÖÐÒƳöÒ²ÎÞ·¨½â¾öÎÊÌâ¡£ÁíÍ⣬ÒÔϱí´ïʽÓÐʲô´í£¿
¡¡¡¡
¡¡¡¡<% count %>
¡¡¡¡
¡¡¡¡tomcat¸ø³ö£º
¡¡¡¡
¡¡¡¡work/8080/_0002ftest_0002ejsptest_jsp_0.java:56: Class count not found in
¡¡¡¡
¡¡¡¡type declaration.
¡¡¡¡
¡¡¡¡count
¡¡¡¡
¡¡¡¡^
¡¡¡¡
¡¡¡¡work/8080/_0002ftest_0002ejsptest_jsp_0.java:59: Invalid declaration.
¡¡¡¡
¡¡¡¡out.write("
");
¡¡¡¡
¡¡¡¡^
¡¡¡¡
¡¡¡¡»»¾ä»°Ëµ£¬Æäʵֻ²»¹ýÊÇÒÅʧÁËÒ»¸ö±ê¼Ç¶øÒÑ¡£Ó¦¸ÃÊÇ <%= count %>¡£
¡¡¡¡
¡¡¡¡ÓÉÓÚtemplate engine¿ÉÒÔÔÚtemplateÎļþÖÐÖ±½Ó²úÉú¶øûÓÐÈκÎÏ·¾çÐÔµÄÏò´úÂëת»¯£¬ËùÒÔ¿ÉÒԷdz£ÈÝÒ׵ظø³öÊʵ±µÄ³ö´í±¨¸æ¡£ÒÀ´ÎÀàÍÆ£¬µ±cÓïÑÔµÄÃüÁî±»´òÈëUnix shellµÄÃüÁîÐУ¬Äã²¢²»Ï£Íûshell»áÉú³ÉÒ»¸öC³ÌÐòÀ´ÔËÐÐÕâ¸öÃüÁ¶øÖ»ÊÇÐèÒªshell¼òµ¥µØ½âÊÍÃüÁî²¢¼ÓÒÔÖ´ÐУ¬ÈçÓдíÎóÒ²Ö±½Ó¸ø³ö¡£
¡¡¡¡
¡¡¡¡ÎÊÌâ #6: ÐèÒªÒ»¸ö±àÒëÆ÷
¡¡¡¡
¡¡¡¡JSPÐèÒªÒ»¸öÖ÷ÅÔÚwebserverÖеıàÒëÆ÷¡£ÓÉÓÚSun¾Ü¾ø·ÅÆú°üº¬ÁËËûÃǵÄjavac±àÒëÆ÷µÄtools.jar¿â£¬ ÕâÆäÖоͱäµÃÓÐÎÊÌâÁË¡£Web·þÎñÆ÷¿ÉÒÔ°üº¬½øÒ»¸öµÚÈý·½µÄ±àÒëÆ÷ÈçibmµÄjikes¡£µ«ÕâÑùµÄ±àÒëÆ÷²¢²»ÄÜÔÚËùÓÐƽ̨ÉÏ˳Àû¹¤×÷(Óà C++д³ÉµÄ) Ò²²»ÀûÓÚ½¨Á¢´¿Java µÄweb·þÎñÆ÷¡£JSP»¹ÓÐÒ»¸öÔ¤±àÒëÑ¡Ïî¿ÉÒÔÆðµ½Ò»¶¨×÷Ó㬵«²¢²»ÍêÃÀ¡£
¡¡¡¡
¡¡¡¡ÎÊÌâ #7: ¿Õ¼äµÄÀË·Ñ
¡¡¡¡
¡¡¡¡JSPÏûºÄÁ˶îÍâµÄÄÚ´æºÍÓ²Å̿ռ䡣¶Ô·þÎñÆ÷ÉÏÿ30KµÄJSPÎļþ£¬±ØÐëÒªÓÐÏàÓ¦µÄ´óÓÚ30KµÄÀàÎļþ²úÉú¡£Êµ¼ÊÉÏʹµÃÓ²ÅÌ¿Õ¼ä¼Ó±¶¡£¿¼Âǵ½JSPÎļþËæʱ¿ÉÒÔºÜÈÝÒ×µØͨ¹ý