Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Web·þÎñÆ÷µÄ¹¤×÷Ô­Àí
 
À´Ô´£ºÂëÅ©Íø ·¢²¼ÓÚ£º2017-2-23
  2207  次浏览      28
 

Web·þÎñÆ÷¹¤×÷Ô­Àí¸ÅÊö

ºÜ¶àʱºòÎÒÃǶ¼ÏëÖªµÀ£¬webÈÝÆ÷»òweb·þÎñÆ÷£¨±ÈÈçTomcat»òÕßjboss£©ÊÇÔõÑù¹¤×÷µÄ£¿ËüÃÇÊÇÔõÑù´¦ÀíÀ´×ÔÈ«ÊÀ½çµÄhttpÇëÇóµÄ£¿ËüÃÇÔÚÄ»ºó×öÁËʲô¶¯×÷£¿Java Servlet API£¨ÀýÈçServletContext£¬ServletRequest£¬ServletResponseºÍSessionÕâЩÀࣩÔÚÆäÖаçÑÝÁËʲô½ÇÉ«£¿ÕâЩ¶¼ÊÇwebÓ¦Óÿª·¢Õß»òÕßÏë³ÉΪwebÓ¦Óÿª·¢ÕßµÄÈ˱ØÐëÒªÖªµÀµÄÖØÒªÎÊÌâ»ò¸ÅÄî¡£ÔÚÕâÆªÎÄÕÂÀÎÒ½«»á¾¡Á¿¸ø³öÒÔÉÏijЩÎÊÌâµÄ´ð°¸¡£Ç뼯Öо«Éñ£¡

ÎÄÕÂÕ½ڣº

ʲôÊÇweb·þÎñÆ÷¡¢Ó¦Ó÷þÎñÆ÷ºÍwebÈÝÆ÷£¿

ʲôÊÇServlet£¿ËûÃÇÓÐʲô×÷Óã¿

ʲôÊÇServletContext£¿ËüÓÉË­´´½¨£¿

ServletRequestºÍServletResponse´ÓÄÄÀï½øÈëÉúÃüÖÜÆÚ£¿

ÈçºÎ¹ÜÀíSession£¿ÖªµÀcookieÂð£¿

ÈçºÎÈ·±£Ḭ̈߳²È«£¿

ʲôÊÇweb·þÎñÆ÷£¬Ó¦Ó÷þÎñÆ÷ºÍwebÈÝÆ÷£¿

ÎÒÏÈÌÖÂÛweb·þÎñÆ÷ºÍÓ¦Ó÷þÎñÆ÷¡£ÈÃÎÒÔÚÓÃÒ»¾ä»°´ó¸Å½²½²£º

¡°ÔÚ¹ýÈ¥ËüÃÇÊÇÓÐÇø±ðµÄ£¬µ«ÊÇÕâÁ½¸ö²»Í¬µÄ·ÖÀàÂýÂýµØºÏ²¢ÁË£¬¶øÈç½ñÔÚ´ó¶àÔÚÇé¿öϺÍʹÓÃÖпÉÒÔ°ÑËüÃÇ¿´³ÉÒ»¸öÕûÌå¡£¡±

ÔÚMosaicä¯ÀÀÆ÷£¨Í¨³£±»ÈÏΪÊǵÚÒ»¸öͼÐλ¯µÄwebä¯ÀÀÆ÷£©ºÍ³¬Á´½ÓÄÚÈݵijõÆÚ£¬Ñݱä³öÁË¡°web·þÎñÆ÷¡±µÄиÅÄËüͨ¹ýHTTPЭÒéÀ´Ìṩ¾²Ì¬Ò³ÃæÄÚÈݺÍͼƬ·þÎñ¡£ÔÚÄǸöʱºò£¬´ó¶àÊýÄÚÈݶ¼ÊǾ²Ì¬µÄ£¬²¢ÇÒHTTP 1.0Ö»ÊÇÒ»ÖÖ´«ËÍÎļþµÄ·½Ê½¡£µ«ÔÚ²»¾Ãºóweb·þÎñÆ÷ÌṩÁËCGI¹¦ÄÜ¡£ÕâÒâζ×ÅÎÒÃÇ¿ÉÒÔΪÿ¸öwebÇëÇóÆô¶¯Ò»¸ö½ø³ÌÀ´²úÉú¶¯Ì¬ÄÚÈÝ¡£ÏÖÔÚ£¬HTTPЭÒéÒѾ­ºÜ³ÉÊìÁ˲¢ÇÒweb·þÎñÆ÷±äµÃ¸ü¼Ó¸´ÔÓ£¬ÓµÓÐÁËÏñ»º´æ¡¢°²È«ºÍsession¹ÜÀíÕâЩ¸½¼Ó¹¦ÄÜ¡£Ëæ×ż¼ÊõµÄ½øÒ»²½³ÉÊ죬ÎÒÃÇ´ÓKivaºÍNetDynamicsѧ»áÁ˹«Ë¾×¨ÊôµÄ»ùÓÚJavaµÄ·þÎñÆ÷¶Ë¼¼Êõ¡£ÕâЩ¼¼Êõ×îÖÕÈ«¶¼ÈÚÈëµ½ÎÒÃǽñÌìÒÀÈ»ÔÚ´ó¶àÊýÓ¦Óÿª·¢ÀïʹÓõÄJSPÖС£

ÒÔÉÏÊǹØÓÚweb·þÎñÆ÷µÄ¡£ÏÖÔÚÎÒÃÇÀ´ÌÖÂÛÓ¦Ó÷þÎñÆ÷¡£

ÔÚͬһʱÆÚ£¬Ó¦Ó÷þÎñÆ÷ÒѾ­´æÔÚ²¢·¢Õ¹ºÜ³¤Ò»¶Îʱ¼äÁË¡£Ò»Ð©¹«Ë¾ÎªUnix¿ª·¢ÁËTuxedo£¨ÃæÏòÊÂÎñµÄÖмä¼þ£©¡¢TopEnd¡¢EncinaµÈ²úÆ·£¬ÕâЩ²úÆ·¶¼ÊÇ´ÓÀàËÆIMSºÍCICSµÄÖ÷»úÓ¦ÓùÜÀíºÍ¼à¿Ø»·¾³ÑÜÉú¶øÀ´µÄ¡£´ó²¿·ÖµÄÕâЩ²úÆ·¶¼Ö¸¶¨ÁË¡°·â±ÕµÄ¡±²úƷרÓÃͨÐÅЭÒéÀ´»¥Á¬ÅÖ¿Í»§»ú(¡°fat¡± client)ºÍ·þÎñÆ÷¡£ÔÚ90Äê´ú£¬ÕâЩ´«Í³µÄÓ¦Ó÷þÎñÆ÷²úÆ·¿ªÊ¼Ç¶ÈëHTTPͨÐŹ¦ÄÜ£¬¸Õ¿ªÊ¼ÒªÀûÓÃÍø¹ØÀ´ÊµÏÖ¡£²»¾ÃºóËüÃÇÖ®¼äµÄ½çÏß¿ªÊ¼±äµÃÄ£ºýÁË¡£

ͬʱ£¬web·þÎñÆ÷Ô½À´Ô½³ÉÊ죬¿ÉÒÔ´¦Àí¸ü¸ßµÄ¸ºÔØ¡¢¸ü¶àµÄ²¢·¢ºÍÓµÓиüºÃµÄÌØÐÔ£»Ó¦Ó÷þÎñÆ÷¿ªÊ¼Ìí¼ÓÔ½À´Ô½¶àµÄ»ùÓÚHTTPµÄͨÐŹ¦ÄÜ¡£ËùÓеÄÕâЩµ¼ÖÂÁËweb·þÎñÆ÷ÓëÓ¦Ó÷þÎñÆ÷µÄ½çÏß±äµÃ¸üÕ­ÁË¡£

Ŀǰ£¬¡°Ó¦Ó÷þÎñÆ÷¡±ºÍ¡°web·þÎñÆ÷¡±Ö®¼äµÄ½çÏßÒѾ­±äµÃÄ£ºý²»ÇåÁË¡£µ«ÊÇÈËÃÇ»¹°ÑÕâÁ½¸öÊõÓïÇø·Ö¿ªÀ´£¬×÷Ϊǿµ÷ʹÓá£

µ±ÓÐÈË˵µ½¡°web·þÎñÆ÷¡±Ê±£¬Äãͨ³£Òª°ÑËüÈÏΪÊÇÒÔHTTPΪºËÐÄ¡¢web UIΪÏòµ¼µÄÓ¦Óᣵ±ÓÐÈË˵µ½¡°Ó¦Ó÷þÎñÆ÷¡±Ê±£¬Äã¿ÉÄÜÏëµ½¡°¸ß¸ºÔØ¡¢ÆóÒµ¼¶ÌØÐÔ¡¢ÊÂÎñºÍ¶ÓÁС¢¶àͨµÀͨÐÅ£¨HTTPºÍ¸ü¶àµÄЭÒ飩¡±¡£µ«ÏÖÔÚÌṩÕâЩÐèÇóµÄ»ù±¾É϶¼ÊÇͬһ¸ö²úÆ·¡£

ÒÔÉϾÍÊǹØÓÚweb·þÎñÆ÷ºÍÓ¦Ó÷þÎñÆ÷µÄÈ«²¿ÄÚÈÝ¡£ÏÖÔÚÎÒÃÇÀ´¿´¿´µÚÈý¸öÊõÓ¼´webÈÝÆ÷¡£

ÔÚJava·½Ã棬webÈÝÆ÷Ò»°ãÊÇÖ¸ServletÈÝÆ÷¡£ServletÈÝÆ÷ÊÇÓëJava Servlet½»»¥µÄwebÈÝÆ÷µÄ×é¼þ¡£webÈÝÆ÷¸ºÔð¹ÜÀíServletµÄÉúÃüÖÜÆÚ¡¢°ÑURLÓ³Éäµ½ÌØ¶¨µÄServlet¡¢È·±£URLÇëÇóÓµÓÐÕýÈ·µÄ·ÃÎÊȨÏ޺͸ü¶àÀàËÆµÄ·þÎñ¡£×ÛºÏÀ´¿´£¬ServletÈÝÆ÷¾ÍÊÇÓÃÀ´ÔËÐÐÄãµÄServletºÍά»¤ËüµÄÉúÃüÖÜÆÚµÄÔËÐл·¾³¡£

ʲôÊÇServlet£¿ËûÃÇÓÐʲô×÷Óã¿

ÔÚJavaÀServletʹÄãÄܹ»±àд¸ù¾ÝÇëÇó¶¯Ì¬Éú³ÉÄÚÈݵķþÎñ¶Ë×é¼þ¡£ÊÂʵÉÏ£¬ServletÊÇÒ»¸öÔÚjavax.servlet°üÀﶨÒåµÄ½Ó¿Ú¡£ËüΪServletµÄÉúÃüÖÜÆÚÉùÃ÷ÁËÈý¸ö»ù±¾·½·¨¡ª¡ªinit()¡¢service()ºÍdestroy()¡£Ã¿¸öServlet¶¼ÒªÊµÏÖÕâЩ·½·¨£¨ÔÚSDKÀﶨÒå»òÕßÓû§¶¨Ò壩²¢ÔÚËüÃǵÄÉúÃüÖÜÆÚµÄÌØ¶¨Ê±¼äÓÉ·þÎñÆ÷À´µ÷ÓÃÕâЩ·½·¨¡£

Àà¼ÓÔØÆ÷ͨ¹ýÀÁ¼ÓÔØ£¨lazy-loading£©»òÕßÔ¤¼ÓÔØ£¨eager loading£©×Ô¶¯µØ°ÑServletÀà¼ÓÔØµ½ÈÝÆ÷Àÿ¸öÇëÇó¶¼ÓµÓÐ×Ô¼ºµÄỊ̈߳¬¶øÒ»¸öServlet¶ÔÏó¿ÉÒÔͬʱΪ¶à¸öÏ̷߳þÎñ¡£µ±Servlet¶ÔÏó²»ÔÙ±»Ê¹ÓÃʱ£¬Ëü¾Í»á±»JVMµ±×öÀ¬»ø»ØÊÕµô¡£

ÀÁ¼ÓÔØµÄServlet

Ô¤¼ÓÔØµÄServlet

ʲôÊÇServletContext£¿ËüÓÉË­´´½¨£¿

µ±ServletÈÝÆ÷Æô¶¯Ê±£¬Ëü»á²¿Êð²¢¼ÓÔØËùÓеÄwebÓ¦Óᣵ±webÓ¦Óñ»¼ÓÔØÊ±£¬ServletÈÝÆ÷»áÒ»´ÎÐÔΪÿ¸öÓ¦Óô´½¨ServletÉÏÏÂÎÄ£¨ServletContext£©²¢°ÑËü±£´æÔÚÄÚ´æÀï¡£ServletÈÝÆ÷»á´¦ÀíwebÓ¦ÓõÄweb.xmlÎļþ£¬²¢ÇÒÒ»´ÎÐÔ´´½¨ÔÚweb.xmlÀﶨÒåµÄServlet¡¢FilterºÍListener£¬Í¬ÑùÒ²»á°ÑËüÃDZ£´æÔÚÄÚ´æÀï¡£µ±ServletÈÝÆ÷¹Ø±Õʱ£¬Ëü»áÐ¶ÔØËùÓеÄwebÓ¦ÓúÍServletContext£¬ËùÓеÄServlet¡¢FilterºÍListnerʵÀý¶¼»á±»Ïú»Ù¡£

´ÓJavaÎĵµ¿ÉÖª£¬ServletContext¶¨ÒåÁËÒ»×é·½·¨£¬ServletʹÓÃÕâЩ·½·¨À´ÓëËüµÄServletÈÝÆ÷½øÐÐͨÐÅ¡£ÀýÈ磬ÓÃÀ´»ñÈ¡ÎļþµÄMIMEÀàÐÍ¡¢×ª·¢ÇëÇó»òÕß±àдÈÕÖ¾Îļþ¡£ÔÚwebÓ¦ÓõIJ¿ÊðÎļþ£¨deployment descriptor£©±êÃ÷¡°·Ö²¼Ê½¡±µÄÇé¿öÏ£¬webÓ¦ÓõÄÿһ¸öÐéÄâ»ú¶¼ÓµÓÐÒ»¸öÉÏÏÂÎÄʵÀý¡£ÔÚÕâÖÖÇé¿öÏ£¬²»ÄܰÑServletÉÏÏÂÎĵ±×ö¹²ÏíÈ«¾ÖÐÅÏ¢µÄ±äÁ¿£¨ÒòΪËüµÄÐÅÏ¢ÒѾ­²»¾ßÓÐÈ«¾ÖÐÔÁË£©¡£¿ÉÒÔʹÓÃÍⲿ×ÊÔ´À´´úÌæ£¬±ÈÈçÊý¾Ý¿â¡£

ServletRequestºÍServletResponse´ÓÄÄÀï½øÈëÉúÃüÖÜÆÚ£¿

ServletÈÝÆ÷°üº¬ÔÚweb·þÎñÆ÷ÖУ¬web·þÎñÆ÷¼àÌýÀ´×ÔÌØ¶¨¶Ë¿ÚµÄHTTPÇëÇó£¬Õâ¸ö¶Ë¿Úͨ³£ÊÇ80¡£µ±¿Í»§¶Ë£¨Ê¹ÓÃwebä¯ÀÀÆ÷µÄÓû§£©·¢ËÍÒ»¸öHTTPÇëÇóʱ£¬ServletÈÝÆ÷»á´´½¨ÐµÄHttpServletRequestºÍHttpServletResponse¶ÔÏ󣬲¢ÇÒ°ÑËüÃÇ´«µÝ¸øÒѾ­´´½¨µÄFilterºÍURLģʽÓëÇëÇóURLÆ¥ÅäµÄServletʵÀýµÄ·½·¨£¬ËùÓеÄÕâЩ¶¼Ê¹ÓÃͬһ¸öÏ̡߳£

request¶ÔÏóÌṩÁË»ñÈ¡HTTPÇëÇóµÄËùÓÐÐÅÏ¢µÄÈë¿Ú£¬±ÈÈçÇëÇóÍ·ºÍÇëÇóʵÌå¡£response¶ÔÏóÌṩÁË¿ØÖƺͷ¢ËÍHTTPÏìÓ¦µÄ±ãÀû·½·¨£¬±ÈÈçÉèÖÃÏìӦͷºÍÏìӦʵÌ壨ͨ³£ÊÇJSPÉú³ÉµÄHTMLÄÚÈÝ£©¡£µ±HTTPÏìÓ¦±»Ìá½»²¢½áÊøºó£¬requestºÍresponse¶ÔÏ󶼻ᱻÏú»Ù¡£

ÈçºÎ¹ÜÀíSession£¿ÖªµÀcookieÂð£¿

µ±¿Í»§¶ËµÚÒ»´Î·ÃÎÊwebÓ¦ÓûòÕßµÚÒ»´ÎʹÓÃrequest.getSession()»ñÈ¡HttpSessionʱ£¬ServletÈÝÆ÷»á´´½¨Session£¬Éú³ÉÒ»¸ölongÀàÐ͵ÄΨһID£¨Äã¿ÉÒÔʹÓÃsession.getId()»ñÈ¡Ëü£©²¢°ÑËü±£´æÔÚ·þÎñÆ÷µÄÄÚ´æÀï¡£ServletÈÝÆ÷ͬÑù»áÔÚHTTPÏìÓ¦ÀïÉèÖÃÒ»¸öCookie£¬cookieµÄÃûÊÇJSESSIONID²¢ÇÒcookieµÄÖµÊÇsessionµÄΨһID¡£

¸ù¾ÝHTTP cookie¹æ·¶£¨Õý¹æµÄwebä¯ÀÀÆ÷ºÍweb·þÎñÆ÷±ØÐë×ñÊØµÄÔ¼¶¨£©£¬ÔÚcookieµÄÓÐЧÆÚ¼ä£¬¿Í»§¶Ë£¨webä¯ÀÀÆ÷£©Ö®ºóµÄÇëÇó¶¼Òª°ÑÕâ¸öcookie·µ»Ø¸ø·þÎñÆ÷¡£ServletÈÝÆ÷»áÀûÓôøÓÐÃûΪJSESSIONIDµÄcookie¼ì²âÿһ¸öµ½À´µÄHTTPÇëÇóÍ·£¬²¢Ê¹ÓÃcookieµÄÖµ´Ó·þÎñÆ÷ÄÚÈÝÀï»ñÈ¡Ïà¹ØµÄHttpSession¡£

HttpSession»áÒ»Ö±´æ»î×Å£¬³ý·Ç³¬¹ýÒ»¶Îʱ¼äûʹÓá£Äã¿ÉÒÔÔÚweb.xmlÀïÉ趨Õâ¸öʱ¼ä¶Î£¬Ä¬ÈÏʱ¼ä¶ÎÊÇ30·ÖÖÓ¡£Òò´Ë£¬Èç¹û¿Í»§¶ËÒѾ­³¬¹ý30·ÖÖÓûÓзÃÎÊwebÓ¦Óõϰ£¬ServletÈÝÆ÷¾Í»áÏú»ÙSession¡£Ö®ºóµÄÿһ¸öÇëÇ󣬼´Ê¹´øÓÐÌØ¶¨µÄcookie£¬¶¼ÔÙÒ²²»»á·ÃÎʵ½Í¬Ò»¸öSessionÁË¡£servletcontainer»á´´½¨Ò»¸öеÄSession¡£

ÏÖÓеÄSession

еÄSession

ÁíÍ⣬ÔÚ¿Í»§¶ËµÄsession cookieÓµÓÐÒ»¸öĬÈϵĴæ»îʱ¼ä£¬Õâ¸öʱ¼äÓëä¯ÀÀÆ÷µÄÔËÐÐʱ¼äÏàͬ¡£Òò´Ë£¬µ±Óû§¹Ø±Õä¯ÀÀÆ÷ºó£¨ËùÓеıêÇ©»òÕß´°¿Ú£©£¬¿Í»§¶ËµÄSession¾Í»á±»Ïú»Ù¡£ÖØÐ´ò¿ªä¯ÀÀÆ÷ºó£¬Óë֮ǰµÄSession¹ØÁªµÄcookie¾ÍÔÙÒ²²»»á±»·¢ËͳöÈ¥ÁË¡£ÔÙ´ÎʹÓÃrequest.getSession()»á·µ»ØÒ»¸öȫеÄHttpSession²¢ÇÒʹÓÃÒ»¸öȫеÄsession IDÀ´ÉèÖÃcookie¡£

ÈçºÎÈ·±£Ḭ̈߳²È«?

ÄãÏÖÔÚÓ¦¸ÃÒѾ­ÖªµÀËùÓеÄÇëÇó¶¼ÔÚ¹²ÏíServletºÍFilter¡£ÕâÊÇJavaµÄÒ»¸öºÜ°ôµÄÌØÐÔ£¬ËüÊǶàÏ̵߳IJ¢ÇÒ²»Í¬µÄỊ̈߳¨¼´HTTPÇëÇ󣩿ÉÒÔʹÓÃͬһ¸öʵÀý¡£·ñÔò£¬¶Ôÿһ¸öÇëÇó¶¼ÖØÐ´´½¨Ò»¸öʵÌå»áºÄ·ÑºÜ¶àµÄ×ÊÔ´¡£

ÄãͬÑùÒªÖªµÀ£¬Äã²»Ó¦¸ÃʹÓÃServlet»òÕßFilterµÄʵÀý±äÁ¿À´´æ·ÅÈκεÄÇëÇó»òÕ߻Ự·¶Î§ÄÚµÄÊý¾Ý¡£ÕâЩÊý¾Ý»á±»ÆäËûSessionµÄËùÓÐÇëÇó¹²Ïí¡£ÕâÊÇ·ÇḬ̈߳²È«µÄ£¡ÏÂÃæµÄÀý×Ó˵Ã÷ÁËÕâ¸öÎÊÌ⣺

public class MyServlet extends HttpServlet
{
private Object thisIsNOTThreadSafe; //Don't to this

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Object thisIsThreadSafe;

thisIsNOTThreadSafe = request.getParameter("foo"); // BAD!! Shared among all requests!
thisIsThreadSafe = request.getParameter("foo"); // OK, this is thread safe.
}
}

²»ÒªÕâÑù×ö£¬Õâ»áµ¼ÖÂÈí¼þ³öbug¡£

   
2207 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

¹È¸è½ÌÄãÈçºÎ¹¹½¨Ò»¸öÓÅÐãµÄÒÆ¶¯ÍøÕ¾
ÈçºÎ¸ßЧµØ¹ÜÀíÍøÕ¾¾²Ì¬×ÊÔ´
¸ßÐÔÄÜÍøÕ¾½¨ÉèµÄ×î¼Ñʵ¼ù
Ïл°ÍøÕ¾×ó²àµ¼º½µÄʵÏÖ
 
Ïà¹ØÎĵµ

ÍøÕ¾½¨Éè·½°¸Á÷³Ì
ÍøÕ¾½¨Éècss½Ì³Ì
ÆóÒµÍøÕ¾½¨ÉèÓëÍÆ¹ã
ÍøÕ¾½¨Éè·½°¸Êé
Ïà¹Ø¿Î³Ì

Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Ê®Ììѧ»áDIV+CSS(WEB±ê×¼)
HTML 5µÄ¸ïУº½á¹¹Ö®ÃÀ
½éÉÜ27¿î¾­µäµÄCSS¿ò¼Ü
35¸öÓд´ÒâµÄ404´íÎóÒ³Ãæ
×îÈÝÒ×·¸µÄ13¸öJavaScript´íÎó
Éè¼ÆÒ×Àí½âºÍ²Ù×÷µÄÍøÕ¾

Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
Èí¼þ¿ª·¢¹ý³ÌÖ¸ÄÏ

¶«Èí¼¯ÍÅ ´úÂëÖØ¹¹
ij½ðÈÚÈí¼þ·þÎñÉÌ ¼¼ÊõÎĵµ
Öдïµçͨ Éè¼ÆÄ£Ê½Ô­ÀíÓëʵ¼ù
·¨¹úµçÐÅ ¼¼ÊõÎĵµ±àдÓë¹ÜÀí
Î÷ÃÅ×Ó Ç¶ÈëʽÉè¼ÆÄ£Ê½
ÖÐд󶫷½ÈËÊÙ ¼¼ÊõÎĵµ±àд