´óÐÍJava WebϵͳѡÐÍÎÊÌâ̽ÌÖ
ת×ÔInfoq
http://www.infoq.com/cn/news/2007/09/java_web_architecture_turnning
һλIDÊÇjackson1225µÄÍøÓÑÔÚJavaEyeѯÎÊÁËÒ»¸ö´óÐÍWebϵͳµÄ¼Ü¹¹ºÍ²¿ÊðÑ¡ÐÍÎÊÌ⣬ϣÍûÄÜÌá¸ßÏÖÓеĻùÓÚJavaµÄWebÓ¦ÓõķþÎñÄÜÁ¦¡£ÓÉÓڼܹ¹Ä£Ê½ºÍ²¿Êðµ÷ÓÅÒ»Ö±ÊÇJavaÉçÇøµÄÈÈÃÅ»°Ì⣬Õâ¸öÎÊÌâÒý·¢Á˺ܶàÈÈÐÄÍøÓѵÄÌÖÂÛ£¬ÆäÖÐһЩÒâ¼û¶ÔÆäËü´óÐÍWebÏîĿҲÓкܺõÄÖ¸µ¼ÒâÒå¡£ÔÚÌÖÂÛÖ®³õjackson1225ÕâÑùÃèÊöÁ˵±Ç°µÄÓ¦Óõļܹ¹ºÍ²¿Êð·½°¸£º
Ŀǰϵͳ¼Ü¹¹ÈçÏÂ:
web²ã²ÉÓÃstruts+tomcatʵÏÖ£¬Õû¸öϵͳ²ÉÓÃ20¶ą̀web·þÎñÆ÷£¬Æä¸ºÔؾùºâ²ÉÓÃÓ²¼þF5À´ÊµÏÖ£»
Öмä²ã²ÉÓÃÎÞ״̬»á»°Bean+DAO+helperÀàÀ´ÊµÏÖ£¬¹²3̨weblogic·þÎñÆ÷£¬²¿ÊðÓжà¸öEJB£¬Æä¸ºÔؾùºâÒ²²ÉÓÃF5À´ÊµÏÖ£»
Êý¾Ý¿â²ãµÄ²Ù×÷ÊÇ×Ô¼ºÐ´µÄͨÓÃÀàʵÏֵģ¬Á½Ì¨ORACLEÊý¾Ý¿â·þÎñÆ÷£¬·Ö±ð´æ·ÅÓû§ÐÅÏ¢ºÍÒµÎñÊý¾Ý£»Ò»Ì¨SQL SERVERÊý¾Ý¿â£¬ÊǵÚÈý·½µÄÒµÎñÊý¾ÝÐÅÏ¢£»
web²ãµ÷ÓÃEJBÔ¶³Ì½Ó¿ÚÀ´·ÃÎÊÖмä¼þ²ã¡£web²ãÊ×ÏÈͨ¹ýÒ»¸öXMLÅäÖÃÎļþÖÐÅäÖõÄEJB½Ó¿ÚÐÅÏ¢À´µ÷ÓÃÏàÓ¦µÄEJBÔ¶³Ì½Ó¿Ú£»
¸ÃϵͳÖÐÒ»´Î²Ù×÷Éæ¼°µ½Á½¸öORACLE¿âÒÔ¼°Ò»¸öSQL SERVER¿âµÄ·ÃÎʺͲÙ×÷£¬¼´ÓÐÈý¸öÊý¾Ý¿âÁ¬½Ó£¬ÔÚÒ»¸öÊÂÎñÖÐÍê³É¡£
ÕâÑùµÄ¼Ü¹¹ÆäʵºÜ¶à¹«Ë¾¶¼ÔÚʹÓã¬ÒòΪStrutsºÍTomcat·Ö±ðÊÇ×îÁ÷ÐеÄJava Web MVC¿ò¼ÜºÍServletÈÝÆ÷£¬¶øF5¹«Ë¾µÄ¸ºÔؾùºâÊǺáÏòÀ©Õ¹³£¼ûµÄ½â¾ö·½°¸£¨ÀýÈçÅäÖÃsession sticky·½°¸£©¡£ÓÉÓÚÕâ¸öϵͳÖÐÓпçÊý¾ÝÔ´µÄÊÂÎñ£¬ËùÒÔʹÓÃWeblogic Server EJBÈÝÆ÷ºÍÖ§³ÖÁ½½×¶ÎÌá½»µÄÊý¾Ý¿âÇý¶¯¾Í¿ÉÒÔ±£Ö¤¿çÊý¾ÝÔ´µÄÊÂÎïÍêÕûÐÔ£¨µ±È»£¬ÈÝÆ÷¹ÜÀíµÄ·Ö²¼Ê½ÊÂÎñ²¢·ÇÊÇΨһºÍ×îÓŵĽâ¾ö·½°¸£©¡£
µ«ÊÇËæ×ÅRod JohnsonÖØÁ¿¼¶µÄÖø×÷¡¶J2EE Development without EJB¡·ºÍÆäÖеÄSpring¿ò¼ÜµÄÁ÷ÐУ¬ÇáÁ¿¼¶¿ò¼ÜºÍÇáÁ¿¼¶ÈÝÆ÷µÄ¸ÅÄîÒѾÉîÈëÈËÐÄ¡£ËùÒÔ¶ÔÓÚjackson1225Ìá³öµÄÕâ¸ö³¡¾°£¬´ó¶àÊýÍøÓѶ¼Ìá³öÁËÖÃÒÉ£¬ÈÏΪÕâ¸öϵͳÀÄÓÃÁ˼¼Êõ£¬ÍêÈ«ÊÇÔÚÀË·ÑÇ®¡£ÍøÓÑÃÇ´ó¶¼ÈÏΪSLSB£¨ÎÞ״̬»á»°Bean£©ÍêȫûÓбØÒª³öÏÖÔÚÕâ¸ö³¡¾°ÖУ¬ÈÏΪSLSBͨ¹ýÔ¶³Ì½Ó¿Ú·ÃÎʱ¾µØ×ÊÔ´»áÓкܴóµÄÐÔÄÜ¿ªÏú£¬ÕâÖÖ¹ÛµãÒ²ÊÇRod johnsonÔÚwithout EJBÖÐÅúÅÐEJB 2.xÖеÄÒ»´ó·´Ä£Ê½¡£
ÓÉÓÚJavaEEÊÇÒ»¸öÒÔģʽ¼û³¤µÄ½â¾ö·½°¸£¬Ä£Ê½ºÍ¼Ü¹¹ÔÚJavaEEÖÐÕ¼ÓкÜÖØÒªµÄµØÎ»£¬ËùÒԺܶàÒµÄÚר¼ÒÒ²¶¼¾¯Ìè“·´Ä£Ê½£¨Anti-patterns£©”µÄ³öÏÖ¡£¶ÔÓÚÉÏÃæËùÊöµÄ·½°¸ÊÇ·ñÊÇ·´Ä£Ê½£¬jackson1225ÂíÉÏÕ¾³öÀ´Éê±ç£º
ÎÒÃÇÏîÄ¿¾ÍÊǰÑEJB×÷Ϊһ¸öFacade£¬Ö»ÊÇÌṩ¸øWEB²ãµ÷ÓõÄÔ¶³Ì½Ó¿Ú£¬
Ïà¹ØÎĵµ£º
ÏÖÔÚUrlRewriter¼¼ÊõÓÐÁ½¸ö¼¼Êõƽ̨µÄ£¬Ò»¸ö¾ÍÊÇÔÚJava·½ÏòµÄ£¬ÁíÒ»¸ö¾ÍÊÇ.NET·½ÏòµÄ¡£Õâ´ÎÊÇJava·½ÏòµÄÓ¦Óá£
Ê×ÏÈÈÃÎÒÃÇÁ˽âËüµÄ¹¤×÷ÔÀí£¬Ëµ°×ÁËËü¾ÍÊÇÒ»¸ö¼òµ¥µÄ¹ýÂËÆ÷£¨Filter£©£¬¿´¿´Ô´ÂëÄã¾Í»áºÜ¿ìµÄÃ÷°×£¬Ëü¾ÍÊÇͨ¹ýÎÒÃÇÔÚjspÖг£ÓõÄÁ½¸ö·½·¨ÊµÏÖµÄforward(),sendRedirect().
ÏÂÃæÎÒÃǾͿìËÙµÄΪÄãµÄÍøÕ¾´î½¨U ......
ÏÖÔÚµÄÎÒ°¡£¬»¹ÊǸöѧÉú£¬¸Õ¸ÕѧÁ˵ãVB£¬¶¯×÷×î´óÒ²¾ÍÊÇÓÃVB±àдÁËÒ»¸ö¼ÆËã½×³ËµÄ¹¤¾ß£¬Ëµ³öÀ´ÕæÊÇÈø÷λ¿´¹ÙЦµô´óÑÀ……µ«ÊÇÎÒͻȻÓÐÖÖÏë·¨£¬ÏëѧJava£¬±¾ÈËרҵÊÇͨÐŹ¤³Ì£¬¾õµÃÒÆ¶¯Í¨ÐÅ»áÓÐÏ൱´óµÄǰ;£¬ÓÚÊÇÃÈÉúÁËÕâ¸öÏë·¨£¡¸÷λ¿´¹Ù±ðЦ»°ÎÒ£¬ÄÜÌá°ÎµÄÌá°Îµã£¬²»ÄÜÌá°ÎµÄ¸øµã¹ÄÀø£¡ÔÚÏÂл¹ý¸÷λÁË£¡ ......
ǰÑÔ£ºÇ°¶Îʱ¼äÔÚCSDNµÄC++ÉçÇøÓöµ½Ò»¸öÐèÒª·â×°¿¼ÇÚ»ú½Ó¿ÚµÄ¶¯Ì¬¿â¸øJAVAµ÷ÓõÄÌû×Ó£¬¹´ÆðÁËÎÒ¶ÔJAVAµÄÎÞÏÞ»³Äî¡£ÔÚ´Ë£¬ÎÒÏë°ÑÕâÏî¼¼Êõ¼òµ¥ÔÙ½éÉÜһϡ£
Ò»¡¢¹ØÓÚJava Native Interface (JNI)
JNIÊÇJAVA±¾µØ±à³Ì½Ó¿Ú£¬ÊôÓÚJDKµÄÒ»²¿·Ö¡£ËüÔÊÐíJAVAÄܹ»²Ù×÷±¾µØAPI»òÓÉÆäËûÓïÑÔ±àдµÄ¶¯Ì¬¿â¡£²»¹ýµ±ÄãʹÓÃÕâÏî¼¼ÊõµÄʱºò£ ......
Java²»ÊÇÍêÃÀµÄ£¬JavaµÄ²»×ã³ýÁËÌåÏÖÔÚÔËÐÐËÙ¶ÈÉÏÒª±È´«Í³µÄC++ÂýÐí¶àÖ®Í⣬JavaÎÞ·¨Ö±½Ó·ÃÎʵ½²Ù×÷ϵͳµ×²ã£¨ÈçϵͳӲ¼þµÈ)£¬Îª´ËJavaʹÓÃnative·½·¨À´À©Õ¹Java³ÌÐòµÄ¹¦ÄÜ¡£
¡¡¡¡¿ÉÒÔ½«native·½·¨±È×÷Java³ÌÐòͬ£Ã³ÌÐòµÄ½Ó¿Ú£¬ÆäʵÏÖ²½Ö裺
¡¡¡¡£±¡¢ÔÚJavaÖÐÉùÃ÷native()·½·¨£¬È»ºó±àÒ룻
¡¡¡¡£²¡¢ÓÃjavah²úÉúÒ»¸ö.hÎ ......
ÄÇÌì°á¼ÒµÄʱºò²Å·¢ÏÖÓкܶàµÄ¶«Î÷£¬»¹¼ÇµÃÎÒ¸ÕÀ´µ½±±¾©µÄʱºòÕÒÁË·¿×Ó¾ÍһֱסÔÚÕâÀï¡£¿ªÊ¼Ã¦Âµ×ÅÕÒ¹¤×÷¡£ÕÒµ½Õâ·Ý¹¤×÷µÄʱºò±¾À´ÊÇÏë»»×ÅÄØ£¬Ã¿Ìì¶¼ÊÇ×öһЩÎÄ×Ö¼ÈëµÄ¹¤×÷·¢³îµÄÎÒ£¬²»¹ýÔÚÕâÀïÒ²ÊÇÓз¢Õ¹µÄ»ú»á£¬ÓеÄʱºòÕûÀíһЩ¹ØÓÚÊý¾Ý·½ÃæµÄ£¬ÈÃÐÂÀ´µÄ°ÑÊý¾Ý¼Èëµ½µçÄÔÉÏ£¬ÎÒÃÇÒ²ÊÇ×öÍâ°üµÄ¡£µ«Ê ......