|
JAVA ¦Ò¸Õ¬ì¥Ø¡G SL314
Pviva±Ð¾Ç¥úºÐ½Òµ{¤º®e¤¶²Ð
Module 1 – introduction to Web Application Technologies
²¤¶¦b¶}µoWeb À³¥Îµ{¦¡¤§«e¡A§ÚÌÀ³¸Ó¥ý¤F¸Ñªº¬ÛÃöºô¸ô°ò¦ª¾ÃÑ
º¥ý¤¶²Ð¡A©Mweb À³¥Îµ{¦¡¶}µo®É¡A¬ÛÃöªº°ò¦ºô¸ôª¾ÃÑ¡A¥]¬A¤°»ò¬OHTTP ³q°T¨ó©w¡A¥H¤Î¬°¤°»ò§ÚÌn¥Î¿ï¾Ü¨Ï¥ÎHTTP ³q°T¨ó©w¡A¨Ó¶}µo§Ú̪ºweb À³¥Îµ{¦¡
¤¶²Ð¤°»ò¬OWorld Wide Web ¡A¥H¤ÎÁÙ·|¤¶²Ð¡A¤°»ò¬Oweb client ©Mweb server ¡C¨Ã¥B¦V¦U¦ì¤¶²Ð¡Aweb server ªº¬[ºc
- Common Gateway Interface (CGI) scripting
¤¶²Ð¤°»ò¬OCommon Gateway Interface (CGI) µ{¦¡¡A¨Ã¥Bø»s¹Ï§Î¡A¨Ó¦V¦U¦ì¤¶²Ð¡ACGI µ{¦¡ªºÀu¯ÊÂI
¤¶²Ð¤°»ò¬OJava Servlet ³oÓ§Þ³N¡A¨Ã¥Bø»s¹Ï§Î¡A¨Ó¦V¦U¦ì¤¶²ÐJava Servlet ªº¹B§@ì²z¡A¨Ã¥B°Q½×Java Servlet ³oÓ§Þ³NªºÀuÂI¡A¥H¤Î¯ÊÂI¦b¨º¸Ì
- JavaServer Pages technology (JSP)
¤¶²Ð¤°»ò¬OJava server page ¡AJSP ³oÓ§Þ³N¡A¨Ã¥B¤¶²Ð¬°¤°»ò§ÚÌn¥ÎJSP ¨Ó¶}µo§Ú̪ºweb À³¥Îµ{¦¡
- Java™ 2 Platform, Enterprise Edition (J2EE™ platform)
²¤¶J2EE ³oÓ¥¥x¡A¨Ã¥B¦b½Òµ{«á±¡F¨Ã¥B¦V¦U¦ì¤¶²Ð³oÓ½Òµ{¤¤¡A§ÚÌ·|¨Ï¥Î¨ìªºÀô¹Ò¡AµM«á¤@¨B¤@¨Bªº±a»â¾Çû¡A¨Ó§¹¦¨°ò¦Àô¹Òªº³]©w¡A¨Ã¥B¤¶²Ð½Òµ{¤¤¡A©Ò»Ýn¥Î¨ìªºTomcat ¦øªA¾¹ªº¦w¸Ë
Module 2 – Developing a View Component
¤¶²Ð¦p¦ó¶}µoweb À³¥Îµ{¦¡MVC ¬[ºc¤¤ªºview component ¡Aview ¤¸¥ó
º¥ý¥ý¤¶²Ð¡A¤°»ò¬OMVC ¬[ºc¤¤ªºview component ¡Aview ¤¸¥ó; ¨Ã¥B¦V¦U¦ì¤¶²Ð¡AUML ¹Ï§Î¤¤¡A¦UӹϧΩҥNªíªº§t·N; ±µµÛ¡A°w¹ï½Òµ{«á±ªº»Ýn¡A¨Ó¦V¦U¦ì¤¶²Ð¡A¦p¦ó¼g¥X²³æªºHTML ºô¶¡A¨Ã¥B¤¶²Ð¡AHTML ºô¶¤¤¡A¦UÓ¼ÐÅÒ©Ò¥Nªíªº¥Î³~¬O¤°»ò
- Hypertext Transfer Protocol (HTTP)
³z¹L¹Ï§Î¡A¨Ó¦V¾Çû¤¶²Ð¡A¤°»ò¬OHTTP ³q°T¨ó©w¡A¨ä¤¤¡A¤]¥]¬A¤FHTTP ½Ð¨D§Î¦¡ªº¤¶²Ð¡AHTTP «Ê¥]¤¤¡A¥]§t¨º¤@¨Ç¸ê°T; ¨Ã¥BÁÙ·|¤¶²ÐHTTP ªº¿ù»~°T®§¥N½X¡A¥Nªí¤F¤°»ò¼Ëªº·N«ä
¤¶²Ð¤°»ò¬OWeb container ;¥H¤Î¤¶²Ðweb container ¦bweb À³¥Îµ{¦¡ªº¶}µo¤¤¡A´£¨Ñ¤F¤°»ò¼Ëªº¥\¯à
¤¶²Ð¦p¦ó¦b§Ú̪ºweb À³¥Îµ{¦¡¤¤¡A¶}µo¤@Óview servlet ¡C¨Ã¥B¦b¤¶²Ð¤§«e¡A¥ý°w¹ïHttpServlet API ¡BHttpServletRequest API ¥H¤ÎHttpServletResponse API
°µ»¡©ú¡CÂ^¨ú¹ê¾÷¶}µo®Éªºµe±¡A¨Ã¥B¦C¥X¸Ô²Óªº¨BÆJ¡A¨Ó±a»â¾Çû¡A§¹¦¨²Ä¤@Óservlet ªº¶}µo¡A¨Ã¥B¹ê»Ú³¡¸p¨ìWeb À³¥Îµ{¦¡¤¤
- Configure and deploy a servlet
¤¶²Ð¡A¦p¦ó³¡¸p¶}µo¦nªºservlet ¨ì§Ú̪ºweb À³¥Îµ{¦¡¤¤¡C¨Ã¥B°w¹ïweb À³¥Îµ{¦¡ªº¬[ºc¡Aø»s¹Ï§Î¡A¨Ó¦V¾Çû°µ¤¶²Ð
¦b½Òµ{¤¤¡A±a»â¾Çû¨Ó§¹¦¨eclipse ¶}µo¤u¨ãªº¦w¸Ë¡C¨Ã¥B¾ã¦X½Òµ{¤¤©Ò·|¨Ï¥Î¨ìªºtomcat ¦øªA¾¹¡CÅý¾Çû¯à°÷¥H«á´N±qeclipse ¶}µo¤u¨ã¤¤¡A¥h§¹¦¨web À³¥Îµ{¦¡ªº³¡¸p¡A¥H¤Î°õ¦æ¡C
½Òµ{½m²ßµ²§ô¤§«á¡A°¨¤W±a»â¾Çû¡A¨Ó°µ¹ê¾÷ÅçÃÒ¡AÅý¾Çûª¾¹D¡A¹ê¾÷§¹¦¨®É¡A·|¦³¤°»ò¼Ëªºµ²ªG
Module 3 – Developing a Controller Component
¤¶²Ð¦p¦ó¶}µoweb À³¥Îµ{¦¡MVC ¬[ºc¤¤ªºController component ¡AController ¤¸¥ó
º¥ý¥ý¤¶²Ð¡A¤°»ò¬OMVC ¬[ºc¤¤ªºController component ¡AController ¤¸¥ó; ¨Ã¥B³z¹L¬yµ{¹Ïªº¤è¦¡¡A¨ÓÅý¾Çû¤F¸Ñ¡AController ¤¸¥ó¡A¦bweb À³¥Îµ{¦¡ªº¶}µo¤¤¡A§êºt¤F¤°»ò¼Ëªº¨¤¦â
¤¶²Ð¤°»ò¬OHTML ºô¶¤¤ªºform ªí³æ; ¨Ã¥B°w¹ïform ªí³æ¤¤ªº¦U¦ì¤¸¥ó¡A¥H¤Î¨äÄݩʡA¨Ó°µ¸Ô²Óªº¤¶²Ð¨Ã¥B½Òµ{¤¶²Ð§¹¦¨«á¡A¹ê»Ú±a»â¾Çû¡A¨Ó«Ø¥ß¤@Ó½Òµ{¤¤¡A©Ò»Ýn¨Ï¥Î¨ìªºform ªí³æ
- How HTML form data is sent in the HTTP request
¤¶²Ð¡A¨Ï¥ÎªÌ¦bFrom ªí³æ¤¤©Ò¿é¤Jªº¸ê®Æ¡A¬O¦p¦ó¶Ç°eµ¹Web server ªº
¨Ã¥B°w¹ïHTTP GET Method Request ©MHTTP POST Method Request ³o¨âºØ¶Ç°eªº¤è¦¡¡A¨Ó¶i¦æ¸Ô²Ó»¡©ú¡A¨Ã¥B¤ñ¸û¤§¶¡ªº®t²§; ª½±µÂ^¨ú¹ê¾÷¾Þ§@®Éªº¹Ï¤ù¡A¾Çû¯à±q¹ê¾÷¾Þ§@ªº¹Ï¤ù¡A¨Ó¯u¥¿¬Ý¨ì¡AHTTP GET Method Request ©MHTTP POST Method Request ³o¨âºØ¶Ç°e¤è¦¡ªº¤£¦P¡C
¤¶²Ð¦p¦ó¦b§Ú̪ºweb À³¥Îµ{¦¡¤¤¡A¶}µo¤@ÓController servlet; ¨Ã¥B¤¶²Ð¡A¦p¦ó¨Ï¥Î¶}µo¤u¨ã¡A¨Ó§¹¦¨Controller servlet ªº³¡¸p;
Â^¨ú¹ê¾÷®Éªº¶}µoµe±¡A¤@Ó¨BÆJ¡A¤@Ó¨BÆJªº¨Ó±a»â¾Çû¡A§¹¦¨Controller servlet ªº¶}µo;
¶}µoªº¹Lµ{¤¤¡AÂ^¨úAPI ¤å¥ó¤¤ªº»¡©ú¡A¨Ó¦V¾Çû¤¶²Ð¦UÓ¤èªkªº¥Î³~;
¾Çû®Ú¾Ú¶}µo¹Lµ{ªº¹Ï¤ù¡A¥i¥H§¹¦¨¤@Ó²³æªºWeb À³¥Îµ{¦¡ªº¬[ºc¡C¨Ã¥B½Òµ{½m²ßµ²§ô¤§«á¡A°¨¤W±a»â¾Çû¡A¨Ó°µ¹ê¾÷ÅçÃÒ¡AÅý¾Çûª¾¹D¡A¹ê¾÷§¹¦¨®É¡A·|¦³¤°»ò¼Ëªºµ²ªG
- Dispatch from a controller servlet to a view servlet
¤¶²Ð¡A¦p¦óÅýcontroller servlet ©Ò±µ¨ü¨ì½Ð¨D¡AÂà°eµ¹view servlet ¡C
½Òµ{¤¤¡A°w¹ï¥H¤U¦Wµü¡A¥H¤ÎÃþ§Oªº¨Ï¥Î¡A°µ¸Ô²Óªº»¡©ú¡A¥H¤Î¥Ü½d
1. Request Dispatcher
2. ServletRequest.getRequestDispatcher()
3. ServletContext.getRequestDispatcher()
Â^¨ú¹ê¾÷®Éªº¶}µoµe±¡A¤@Ó¨BÆJ¡A¤@Ó¨BÆJªº¨Ó±a»â¾Çû¡A§¹¦¨Request Dispatcher ½Ð¨DÂà°eªº½m²ß;
½m²ßªº¹Lµ{¤¤¡AÂ^¨úAPI ¤å¥ó¤¤ªº»¡©ú¡A¨Ó¦V¾Çû¤¶²Ð¦UÓ¤èªkªº¥Î³~;
¾Çû®Ú¾Ú½m²ß¹Lµ{ªº¹Ï¤ù¡A¥i¥H§¹¦¨¤@Ó²³æªºWeb À³¥Îµ{¦¡½Ð¨DÂà°eªº°Ê§@¡C¨Ã¥B½Òµ{½m²ßµ²§ô¤§«á¡A°¨¤W±a»â¾Çû¡A¨Ó°µ¹ê¾÷ÅçÃÒ¡AÅý¾Çû¥i¥H¥ß§Yª¾¹D¡A½Ð¨DÂà°e©Ò¥Nªíªº·N«ä
Module 4 – Developing Dynamic Forms
¤¶²Ð¡A¦p¦ó³¡¸pdynamic forms ¡A°ÊºAªºªí³æ
- Servlet Lift Cycle Overview
½Òµ{ªº¤@¶}©l¡Aº¥ý§ÚÌ·|¥ý¸ò¾Çû¤¶²Ð¡A¤°»ò¬OServlet ªº¥Í©R¶g´Á¡A¨Ã¥B°w¹ïservlet ¥Í©R¶g´Áªº¥H¤U¥|Ó¶¥¬q¡A¨Ó°µ¤¶²Ð
1. Load servlet class and create servlet instance.
2. Call the init method.
3. Call the service method.
4. Call the destroy method
- Customizing the Adding a New Form
®Ú¾Ú«á±½Òµ{ªº»Ý¨D¡A¦b³o¸Ì§ÚÌ·|¸ò¾Çû¤¶²Ð¡A¦p¦ó¦b§ÚÌ쥻ªºWeb À³¥Îµ{¦¡¤¤¡A¦A¥[¤W¤@Ó·sªºªí³æ; ¨Ã¥B³z¹L«Ø¥ß·sªí³æªº¹Lµ{¡A¨Ó¦V¾Çû¤¶²Ð¡AServletConfig³oÓAPI ¡C
±µµÛ¡A¦b«Ø¥ß·sªí³æªº¹Lµ{¤¤¡A§ÚÌÁÙ·|¤¶²Ð¨ì¡A¥t¤@Ó«ÂI¡A´N¬O¦p¦ó³z¹L°_©l°Ñ¼Æªº¨Ï¥Î¡A¨Ó°ÊºAªº«Ø¥ßHTML ªºForm ªí³æ
½m²ßªº¹Lµ{¤¤¡AÂ^¨ú¤@Ó¨BÆJ¡B¤@Ó¨BÆJªº¶}µo¹Lµ{¡A¾Çû®Ú¾Ú¥úºÐ¤ùªº¹Ï¤ù¡A¥i¥H§¹¦¨¤@Ó²³æªºWeb À³¥Îµ{¦¡°_©l°Ñ¼Æ¡C¨Ã¥B½Òµ{½m²ßµ²§ô¤§«á¡A°¨¤W±a»â¾Çû¡A¨Ó°µ¹ê¾÷ÅçÃÒ¡AÅý¾Çû¥i¥H¤F¸Ñ¡A¬°¤°»ò¨Ï¥Î°_©l°Ñ¼Æªº¤è¦¡¡A¥i¥H§ïµ½web À³¥Îµ{¦¡¦bºûÅ@¤Wªº®Ä²v
- Handling Errors in a Web Form
¤¶²Ð¡AJ2EE ªº³B»~³B²z¾÷¨î¤¤ªºkeep state ³oÓ³¡¥÷
®Ú¾Ú¾Çû¤§«e©Ò½m²ß¹Lªº±M®×¡A¨ÓÄ~Äò©µ¦ù¡A¹ê»Ú±a»â¾Çû¡A¦b¥ý«e½m²ß¹Lªº±M®×¤¤¡A¦A¥[¤J¿ù»~ªº³B²z¾÷¨î
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H±q¥úºÐ¤ù¤¤¡A±oª¾¿ù»~³B²z¾÷¨î¤¤ªºkeep state ¡A¬O¦p¦ó®i²{ªº
¤¶²Ð¡A¦p¦ó¦b§Ú̪ºHTML ªí³æ¤¤¡A¦A¥[¤J¤@¨Ç·sªº¤¸¥ó¡A¥]¬A
1. Text Field
2. Checked
¨Ã¥B¹ï³o¨Ç·s¥[¤Jªº¤¸¥ó¡A¨Ó§i¶D¾Çû¡A¦p¦ó¹ï³o¨Ç¤¸¥ó¡A¨Ó¶i¦æ§PÂ_¡A¥H¤Î¦p¦ó°w¹ï³o¨Ç¤¸¥ó¡A¨Ó°µ¿ù»~³B²z
Module 5 – Sharing Application Resources Using the Servlet Context
¤¶²Ð¡A¦p¦ó³z¹Lservlet context ³oÓ¤¶±¡A¨Ó¤À¨É§ÚÌweb À³¥Îµ{¦¡ªº¸ê·½
- Purpose of the Servlet Context
º¥ý¡A§ÚÌ·|¥ý¤¶²Ð¡Aservlet context ³oÓ¤¶±¡A¦bweb À³¥Îµ{¦¡¤¤¡A¥¦ªº¥Øªº©M¯S¦â¬O¤°»ò
¦b½Òµ{¤¤ªº¤¶²Ð¡Aø»s¤j¶qªº¹Ï§Î¡A¤@Ó¨BÆJ¡B¤@Ó¨BÆJªº¨Ó§i¶D¾Çû¤°»ò¬OServlet Context initialization Parameter ¡Aservlet °õ¦æÀô¹Òªº°_©l°Ñ¼Æ
½Òµ{ªº¤¶²Ð§¹²¦¤§«á¡A°¨¤W³z¹L¤@Ó±M®×ªº½m²ß¡AÅý¾Çû§ó¯à¤F¸Ñ¡A¤°»ò¬OServlet context
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H¥ß§Y±oª¾¡A¦bWeb À³¥Îµ{¦¡¤¤¡A¨Ï¥Îservlet context ªº¦n³B¬O¤°»ò
- Developing a Servlet Context Listener
¤¶²Ð¡A¦p¦ó¦bweb À³¥Îµ{¦¡¤¤¡A³¡¸p¤@Óservlet context listener ¡Aservlet context ªº²âÅ¥¾¹
º¥ý¡A½Òµ{ªº¤@¶}©l¡A¬°¤F¤è«K½Òµ{«á±·|´£¨ìªºWeb À³¥Îµ{¦¡ªºlistener ¡A²âÅ¥¾¹¡A©Ò¥H¤@¶}©l¡A§ÚÌ·|¥ý¹ïweb À³¥Îµ{¦¡ªº¥Í©R¶g´Á¡A¨Ó°µ¤@Ó¤¶²Ð
¤¶²Ð§¹web À³¥Îµ{¦¡ªº¥Í©R¶g´Á¤§«á¡A±µ¤U¨Ó¡A§Ṳ́~·|¤¶²Ð¡A¤°»ò¬OWeb À³¥Îµ{¦¡ªºlistener
½Òµ{¤¶²Ð§¹²¦¤§«á¡A±µµÛ¡A°¨¤W³z¹L¤@Ó±M®×ªº½m²ß¡AÅý¾Çû§ó¯à¤F¸Ñ¡A¤°»ò¬OWeb À³¥Îµ{¦¡ªºlistener
Module 6 – Web Application Security
°w¹ïweb À³¥Îµ{¦¡ªº¦w¥þ©Ê°ÝÃD¡A¨Ó°µ¤¶²Ð¡A¨Ã¥B°w¹ï¾Çû¸û¤£²z¸Ñªº¥H¤U¦Wµü¡A¨Óø»s¹Ï§Î
º¥ý¡A½Òµ{ªº¤@¶}©l¡A§ÚÌ¥ý¤¶²Ð¡A¤°»ò¬Oauthentication ¡AÅçÃÒ
±µµÛ¡AÁÙ·|¤¶²Ð¡A¤°»ò¬Oauthorization ¡A±ÂÅv
±µµÛ¡AÁÙ·|¤¶²Ð¡A¤°»ò¬Odata integrity ¡A¸ê®Æ§¹¾ã©Ê
³Ì«á¡AÁÙ·|¤¶²Ð¡A¤°»ò¬Oconfidentiality ¡A¸ê®Æªº¾÷±K©Ê
¤¶²Ð§¹¤Wz¥|Ó¦Wµü¤§«á¡A±µµÛ¡A§ÚÌ·|¸òµÛ¤¶²Ð¡Aweb À³¥Îµ{¦¡¡A³Ì°ò¥»ªº¦w¥þ©Ê¨¾Å@±¹¬I¡A¥H¤ÎÁÙ·|¤¶²Ð¡A¤°»ò¥s°µ¡u«Å§i¦¡ÅçÃÒ¡v¡C
¨Ã¥B®Ú¾Ú½Òµ{ªº»Ý¨D¡A§ÚÌÂ^¨ú¹ê¾÷¾Þ§@®Éªºµe±¡A¤@Ó¨BÆJ¡B¤@Ó¨BÆJªº¨Ó±a»â¾Çû¡A¦bweb À³¥Îµ{¦¡¤¤¡A¹ê§@Basic »PForm ÅçÃÒ¾÷¨î
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H¥ß§Y±oª¾¡A½m²ßªºµ²ªG¡A¨Ã¥B§ó¶i¤@¨B¤F¸Ñ¡A¤°»ò¬OBasic ÅçÃÒ»PForm ÅçÃÒ¾÷¨î
Module 7 – Developing Web Applications Using Session Management
¤¶²Ð¤°»ò¬Oweb À³¥Îµ{¦¡ªºsession management ¡A³s½u¶¥¬qªººÞ²z
- HTTP and Session Management
¤¶²Ð¡A¤°»ò¬OHTTP ªºsession management ¡A³s½u¶¥¬qºÞ²z
ø»s¤j¶q¹Ï§Î¡A¨Ã¥B·f°t¤å¦r¡A¨Ó¦V¾Çû¤¶²Ð¡A¤°»ò¬Osession ¡A³s½u¶¥¬q
¨Ã¥B¡AÁ|¥X¹ê°È¤W©Ò¯à¬Ý¨ìªº¨Ò¤l¡A¨ÓÅý¾Çû§ó¯à¤F¸Ñ¡A¤°»ò¬OHTTP session ¡A³s½u¶¥¬q
- Designing Web Applications
¤¶²Ð¡A¦³¤Fsession management ¡A³s½u¶¥¬qºÞ²z¤§«á¡A§ÚÌ·|¦p¦ó¨Ó³]p§Ú̪ºweb À³¥Îµ{¦¡
¨Ã¥B¡AÁ|¥X¹ê°È¤Wªº¨Ò¤l¡AÅý¾Çû¤F¸Ñ¡AÀ³¸Ó¦b¤°»ò®ÉÔ¡A³z¹L³s½u¶¥¬q¡A¨ÓºÞ²zclient ºÝªº³s½u
- Developing Web Application
¤¶²Ð¡A¦p¦ó¦bweb À³¥Îµ{¦¡¤¤¡A¨Ï¥Îsession management
ª½±µ±qAPI ¤å¥ó¤¤¡A¨Ó§i¶D¾Çû¡An¦b§Ú̪ºweb À³¥Îµ{¦¡¤¤¡A»Ýn¥Î¨ì³s½u¶¥¬qªººÞ²z¡A·|¨Ï¥Î¨ì¨º¤@¨ÇÃþ§O¡A¥H¤Î¤èªk
¨Ã¥B°w¹ï¥H¤U¤Ó¦b½Òµ{¤¤¡A§ÚÌ·|¥Î¨ìªº¤èªk¡A¨Ó¶i¦æ¸Ô²Ó»¡©ú
1. setAttribute()
2. getAttribute()
3. removeAttribute()
4. Invalidate()
5. setMaxInactiveInterval()
±µµÛ¡A°w¹ï½Òµ{ªºSCWCD ªº¦Ò¸Õ¡A¤À¦¨¨âºØ¤è¦¡¡A¨Ó§i¶D¾Çû¡A¦p¦ó¹ê§@³s½u¶¥¬qªººÞ²z
- Using Cookies for Session Management
º¥ý¡A¥ý¤¶²Ð²Ä¤@ºØ¤è¦¡¡A¦p¦ó³z¹Lcookie ¨Ó¹ê§@³s½u¶¥¬qªººÞ²z
±µµÛ¡A¦]¬°·|¥Î¨ìcookie ¨ÓºÞ²z³s½u¶¥¬q¡A©Ò¥H°w¹ï¤ñ¸û¤£¼ôcookie ªº¾Çû¡A¨Ó¤¶²Ð¤°»ò¬Ocookie ¨Ã¥B¡A³z¹L¤@Ó±M®×ªº½m²ß¡A¨Ó¹ê»Ú±a»â¾Çû¡A§¹¦¨¥Îcookie ¨Ó¹ê§@³s½u¶¥¬qªººÞ²z
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H¥ß§Y±oª¾¡A½m²ßªºµ²ªG
- Using URL-Rewriting for Session Management
¤¶²Ð²Ä¤GºØ³s½u¶¥¬qªººÞ²z¤è¦¡¡A³z¹LURL Rewriting ¡A¨Ó¹ê§@³s½u¶¥¬qªººÞ²z
¦]¬°cookie ¦bºÞ²z³s½u¶¥¬qªº®ÉÔ¡A·|²o§è¨ìÁô¨pÅvªº°ÝÃD¡A©Ò¥H§ÚÌ·|¦b¤¶²Ð¡A³z¹LURL Rewriting ªº¤è¦¡¡A¨ÓºÞ²z³s½u¶¥¬q
¨Ã¥B¡A³z¹L¤@Ó±M®×ªº½m²ß¡A¨Ó¹ê»Ú±a»â¾Çû¡A§¹¦¨¥ÎURL Rewriting ¨Ó¹ê§@³s½u¶¥¬qªººÞ²z
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H¥ß§Y±oª¾¡A½m²ßªºµ²ªG
Module 8 – Using Filters in Web Applications
¤¶²Ð¡A¦p¦ó¦b§Ú̪ºweb À³¥Îµ{¦¡¤¤¨Ï¥Îfilter servlet; ¨Ã¥B¦b½Òµ{ªº¤@¶}©l¡A¥ý¸ò¾Çû¤¶²Ð¡A¤°»ò¬Ofilter ¡AµM«á¦A§i¶D¾Çû¡A¦bWeb À³¥Îµ{¦¡¤¤¡A¥Îfilter ¡A¦³¤°»ò¦n³B
- Web container request cycle
¤¶²Ð¡A·í¨Ï¥ÎªÌ°e¥Xhttp request ªº½Ð¨D«Ê¥]®É¡AWeb container ¡A·|¦p¦ó¨Ó¶i¦æ³B²z; °w¹ï«Ê¥]ªº²¾°Ê¡Aø»s¬yµ{¹Ï¡AÅý¾Çû§ó¯à²M·¡ªº©ú¥Õ¡Aweb container ¦¬¨ì«Ê¥]¤§«á¡A¬O¦p¦ó¶i¦æ³B²zªº
¤¶²Ð¦p¦ó¶}µo¤@Ófilter ; ¨Ã¥B¡A¹ê»Ú¨Ó¤¶²Ð¡Afilter ªºAPI
ª½±µ³z¹LAPI ¤å¥ó¡A¨Ó¦V¾Çû¤¶²Ð¡A¦b¶}µofilter ªº®ÉÔ¡A·|¥Î¨ì¨º¤@¨Ç¤¶±¡A¥H¤Î¨º¤@¨Ç¤èªk
¹ê»Ú¾Þ§@¡A¤¶²Ð¦p¦ó¦b§Ú̪ºweb server ¤W¡A¥h³¡¸p¤@Ófilter
ª½±µ³z¹L¤@Ó±M®×ªº½m²ß¡AÅý¾Çû§ó¯à¤F¸Ñ¡A¦p¦ó¶}µo¤@ÓÄÝ©ó¦Û¤vªºfilter
Â^¨ú¹ê¾÷¾Þ§@®Éªºµe±¡A¤@Ó¨BÆJ¡B¤@Ó¨BÆJªº¨Ó±a»â¾Çû¡A¦bweb À³¥Îµ{¦¡¤¤¡A¹ê§@filter
- Configure a filter in the web.xml file
¤¶²Ð¡A¦³ÃöFilter ¦b³¡¸p´yzÀɤ¤ªº³]©w¸Ô²Ó»¡©ú¡An¦bweb À³¥Îµ{¦¡¤¤¡A³¡¸pfilter ¡A¨ºÀ³¸Ó¦b³¡¸p´yzÀɤ¤¡A°µ¤°»ò¼Ëªº©w¸q ¨Ã¥B¡A³z¹L©M¤W¤@Ó¤p¸`¡A¬Û¦P±M®×ªº½m²ß¡A¨Ó¹ê»Ú±a»â¾Çû¡A¹ê»Ú¦b³¡¸p´yzÀɤ¤¡A³¡¸p§Ú̦ۤv¶}µo¦nªºfilter
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H¥ß§Y±oª¾¡Afilter ªº³¡¸p©M¶}µo¡A¬O¤£¬O¦¨¥\ªº
Module 9 – Developing JSP™ Pages
¤¶²Ð¡A¦p¦ó¦b§Ú̪ºweb À³¥Îµ{¦¡¤¤¡A¨Ï¥ÎJava Server page ¡A JSP
¤¶²Ð¤°»ò¬OJava Server Page ¡AJSP ; ¥H¤Î¤°»ò¬OJSP §Þ³N; ¨Ã¥B¦V¾Çû»¡©ú¡A¬°¤°»òn¦³JSP §Þ³N¡A¨Ó¶}µo§Ú̪ºweb À³¥Îµ{¦¡
°w¹ïJSP ¥Í©R¶g´Á¥H¤Uªº¤CÓ¶¥¬q¡A¨Óø»s¹Ï§Î¡A¨Ã¥B·f°t¤å¦r¡A¨Ó¶i¦æ¸Ô²Ó»¡©ú
1. Translation the JSP to servlet code
2. Compile the servlet to bytecode
3. Load the servlet class
4. Create the servlet instance
5. Call the jspInit() method
6. Call the _jspService() method
7. Call the jspDestroy() method
¨Ã¥B³z¹LAPI ¤å¥ó¡A¨Ó¦V¾Çû»¡©ú¡A©MJSP ¶}µo®É¡A¦³Ãöªº¤¶±
- Write JSP Code using scripting elements
¤¶²Ð¡A²Õ¦¨JSP ªºn¯À¤¤ªº²Ä¤@Ón¯À¡AScripting elements ¡A JSP ªºµ{¦¡½X¤¸¯À
º¥ý¡A·|¥ý¸ò¦U¦ì¤¶²Ð¡A²Õ¦X¦¨JSP ªº¤¸¯À¡A°£¤FHTML ¼ÐÅÒ¥H¥~¡AÁÙ¥]¬A¥H¤Uªº¤¸¥ó
1. Standard Directive
2. Scripting Elements
3. Standard Action
4. Expression Language
5. Tag Library
¤¶²Ð¡AJSP ªºµ{¦¡½X¤¸¯À¡A¥]§t¤F¨º¤TºØ¼ÐÅÒ
1. Declaration Tag
2. Scriptlet Tag
3. Expression Tag
½Òµ{¤¤¡A°w¹ï¨C¤@Ó¼ÐÅÒ¡AÉʧì¨ú¹ê¾÷¹Ï¤ù¡A©MAPI ¤å¥ó¡A¨Ó¶i¦æ¸Ô²Ó»¡©ú
- Write JSP Code using page directive
¤¶²Ð¡A²Õ¦X¦¨JSP ªº²Ä¤GºØ¤¸¯À¡Apage directive ¡A¤]´N¬OJSP ªº¼Ð·Ç«ü¥O³z¹LAPI ¤å¥ó¡A¨Ó¦V¾Çû¤¶²Ð¡A¤°»ò¬OJSP ªº¼Ð·Ç«ü¥O¨Ã¥B¤¶²Ð¡A³o¨Ç¼Ð·Ç«ü¥Oªº¥Î³~¬O¤°»ò; ¥H¤Î¦b³o¤@¤p¸`ªº½Òµ{¤¤¡A§ÚÌÁÙ·|¤¶²Ð¡A¤°»ò¬OJSP ªºÁô§tÅܼơA¬°¤°»òJSP n¦³Áô§tÅܼÆ
- Write JSP code using standard action
¤¶²Ð²Õ¦X¦¨JSP ªº²Ä¤TºØ¤¸¯À¡AStandard action ¡A¤]´N¬OJSP ªº¼Ð·Ç°Ê§@
°w¹ïSCWCD ªº¦Ò¦¡¡A§ì¨úAPI ¤å¥ó¡A¨Ã¥B·f°t¤å¦r¡A¨ÓÁ¿¥H¤U´XÓJSP ¼Ð·Ç°Ê§@ªº¥Î³~
1. <jsp:useBean>
2. <jsp:setProperty>
3. <jsp:getProperty>
4. <jsp:include>
5. <jsp:param>
¨Ã¥B°w¹ï½Òµ{¤¤ªº»Ýn¡A§ÚÌ·|²³æªº¤¶²Ð¤@¤U¡A¤°»ò¬OJava Bean
- Write JSP code using the Expression Language (EL)
¤¶²Ð¡AJSP ªº²Ä¥|Ó²Õ¦Xn¯À¡AExpression language ¡AJSP ªº³¯z»y¨¥
º¥ý¡A½Òµ{ªº¤@¶}©l¡A§ÚÌ·|¥ý»¡©ú¡A¤°»ò¬OExpression language ¡AJSP ªº³¯z»y¨¥; ¨Ã¥BÁÙ·|¤¶²Ð¡A¬°¤°»òn¦³³o¨Ç³¯z»y¨¥ ±µµÛ¡A§ÚÌÁÙ·|¤¶²Ð¡A¤°»ò¬O¤¶²Ð¡AEL ªº¹Bºâ¤l¡A¥H¤Î¤°»ò¬OEL ªºÁô§tÅܼÆ
¨Ã¥B³z¹L¹ê¾÷¾Þ§@®Éªºµe±¡A¨Ó¦V¾Çû¤¶²Ð¡A¨S¦³¨Ï¥ÎEL ³¯z»y¨¥¤§«e¡A©M¨Ï¥ÎEL ³¯z»y¨¥¤§«á¡A§ÚÌJSP ¶±ªºÅܤÆ
- Configure the JSP environment in the web.xml file
¤¶²Ð¡A¦p¦ó¦b§Ú̪ºweb ÂIxml ¡A¤]´N¬O³¡¸p´yzÀɤ¤¡A¨Ó³]©wJSP ªºÀô¹Ò
¨Ã¥B¡AÂ^¨ú¹ê¾÷¾Þ§@®Éªºµe±¡A¨Ó§i¶D¾Çû¡A¦p¦ó¦b³¡¸p´yzÀɤ¤¡A³]©wJSP ªºÀô¹Ò
Module 10 – Developing JSP Pages Using Custom Tags
¤¶²Ð¡A¦p¦ó¦b§Ú̪ºJSP ¶±¤¤¡A¨Ï¥Îcustom tag¡A¦Ûq¼ÐÅÒ¡A¥H¤ÎÁÙ·|¨Ó¸ò¦U¦ì¤¶²Ð¡A¬°¤°»òn¦b§Ú̪ºJSP ¶±¤¤¡A¨Ï¥Î¦Ûq¼ÐÅÒ
¤¶²Ð¶}µo¦Ûq¼ÐÅÒªº²Ä¤@Ó¨BÆJ¡A¤]´N¬O¦p¦ó¥h¼¶¼g¤@ÓTag handler classes ¡A¼ÐÅÒ³B²zÃþ§O
¦b½Òµ{ªº¤@¶}©l¡A¥ý³z¹L¹ê°È¤Wªº¨Ò¤l¡A¨ÓÅý¾Çû¤F¸Ñ¡A¤°»ò¬O¦Ûq¼ÐÅÒ¡A¥H¤Î¨Ï¥Î¦Ûq¼ÐÅÒªº¦n³B¬O¤°»ò,¨Ã¥B¤¶²Ð¡AJSP ¤¹³\§Ú̦Ûq¼ÐÅÒ¡A¥i¥H¥]§t¥H¤U¨º¤TºØÃþ«¬
1. Empty Tag
2. Standard Tag
3. Nested Tag
±µµÛ·|¤¶²Ð¡A¤°»ò¬O¼ÐÅÒ³B²zÃþ§O
¨Ã¥B³z¹LAPI ¤å¥ó¡A¨Ó¤¶²Ð¦p¦ó¹ê§@¼ÐÅÒ³B²zÃþ§O
- Tag Library Descriptor (TLD)
¤¶²Ð¡A¶}µo¦Ûq¼ÐÅÒªº²Ä¤GÓ¨BÆJ¡A¦p¦ó¥h¼¶¼g¤@ÓTag Library Descriptor ¡A¼ÐÅҨ禡®w´yzÀÉ
º¥ý¤@¶}©l¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µTag Library Descriptor ¡A¼ÐÅҨ禡®w´yzÀÉ
¨Ã¥B¡A³z¹L§ì¨ú¹ê¾÷¹Ï¤ù¡A¨Ó¦V¾Çû¤¶²Ð¼ÐÅҨ禡®w´yzÀÉ·í¤¤ªº®æ¦¡¡A¥H¤Î¦UÓ¤¸¯À¤§¶¡ªº¥Î³~®Ú¾Ú²Ä¤@¤p¸`©Ò¤¶²Ðªº¦p¦ó¹ê§@Tag handler classes ¡A¼ÐÅÒ³B²zÃþ§O¡A¥H¤Î²Ä¤G¤p¸`©Ò¤¶²Ðªº¦p¦ó©w¸qTag Library Descriptor ¡A¼ÐÅҨ禡®w´yzÀÉ¡C¦b³o¸Ì§ÚÌ·|³z¹L¤@Ó±M®×ªº½m²ß¡A¨Ó¹ê»Ú±a»â¾Çû¡A¶}µo¤@ÓÄÝ©ó¦Ûqªº¼ÐÅÒ
½m²ß§¹¦¨«á¡A°¨¤W§ì¨ú¹ê¾÷¹Ï¤ù¡A¶i¦æ¤U¤@¨BªºÅçÃÒ¡A¾Çû¥i¥H¥ß§Y±oª¾¡A¦Ûq¼ÐÅÒªº¶}µo¡A¥H¤Î³¡¸p¡A¬O¤£¬O¦¨¥\ªº
- JSP Standard Tag Library (JSTL)
¤¶²Ð¦p¦ó¦b§ÚÌJSP ¶±¤¤¡A¥h¨Ï¥ÎSun MicroSystems ©Ò´£¨ÑªºJSP ¼ÐÅҨ禡®w¡A¤]´N¬OJSTL
º¥ý¤@¶}©l¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µJSP standard tag library ¡AJSTL
¨Ã¥BÂ^¨úAPI ¤å¥ó¡A±a»â¾Çû¡AÅý¾Çû¥i¥Hª¾¹D¡AJSTL ·í¤¤¡A©Ò´£¨Ñªºcore ³oÓ¼ÐÅҨ禡®w
¤¶²Ð¡A¦bJSP 2.0 §Þ³N¤¤¡A©Ò´£¨ÑªºSimple tag ³oÓ¤¶±
¨Ã¥B·|¨Ï¥Î¹ê»Ú¶}µoªº¨Ò¤l¡A¨Ó¤¶²Ð³o¤@Ó§Þ³N
½Òµ{§¹¦¨«á¡A¥ß§Y±a»â¾Çû¡A³z¹LSimple tag ³oÓ¤¶±¡A¨Ó¶}µo¦Ûq¼ÐÅÒ
¾Çû¥i¥H±q½m²ß¤¤¡A±oª¾¬°¤°»ò³z¹LSimple tag ¤¶±¡A§ÚÌ´N¥i¥H®e©öªº¶}µo¥X¤@Ó¦Ûq¼ÐÅÒ¤F
¤¶²Ð¡A¦bJSP 2.0 §Þ³N¤¤¡A©Ò´£¨Ñªº¥t¤@Ó¼¶¼g¼ÐÅÒ³B²zÃþ§Oªº¤è¦¡¡A¤°»ò¥s°µTag File
½Òµ{¤¶²Ð§¹²¦¤§«á¡A³z¹L¹ê»Ú½m²ß¡AÅý¾Çû¥i¥H¥Îtag file ¡A¨Ó²³æªº¶}µo¥X¤@Ó¦Ûq¼ÐÅÒ
Module 11 – J2EE Patterns
°w¹ïSCWCD ªº¦Ò¸Õ¡A¦b²Ä¤Q¤@³¹§ÚÌ·|°w¹ïJ2 EE ªºdesign patterns ¡A³]p¼Ò¦¡¨Ó°µ¤¶²Ð
J2EE ªº³]p¼Ò¦¡¡A¥]§t¤Q¤@ºØ¡A¦ý¬OSCWCD ªº¦Ò¸Õ¡A¥u·|½Í¨ì¨ä¤¤¤CºØ¡A©Ò¥H§ÚÌ·|°w¹ï³o¤CºØ³]p¼Ò¦¡ªºÀuÂI¡A¨Ó¶i¦æ¤¶²Ð
- Model – View – Controller (MVC)
º¥ý¡A²Ä¤@ºØ¡A§ÚÌ·|¥ý¤¶²Ð¡A¤°»ò¥s°µModel – View – Controller (MVC) ³]p¼Ò¦¡
²Ä¤GºØ¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µTransfer Object ³]p¼Ò¦¡
²Ä¤TºØ¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µData Access Object (DAO) ³]p¼Ò¦¡
²Ä¥|ºØ¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µModel Business Delegate ³]p¼Ò¦¡
²Ä¤ºØ¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µModel Front Controller ³]p¼Ò¦¡
²Ä¤»ºØ¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µService Locator ³]p¼Ò¦¡
²Ä¤CºØ¡A§ÚÌ·|¤¶²Ð¡A¤°»ò¥s°µIntercepting Filter ³]p¼Ò¦¡
|