java web¿Î±¾¿Îºó¼ò´ðÌâ - ͼÎÄ ÏÂÔØ±¾ÎÄ

ʲôÊÇURL,ʲôÊÇURI£¬ËüÃǶ¼ÓÉÄö²¿·Ö×é³É,URLºÍURIÖ®¼äÓÐʲô¹ØÏµ ?

´ð£ºURL³ÆÎªÍ³Ò»×ÊÔ´¶¨Î»·û£¬ URLͨ³£ÓÉ4²¿·Ö×é³É£ºÐ­ÒéÃû³Æ¡¢Ò³ÃæËùÔÚÖ÷»úµÄDNSÃû¡¢¿ÉÑ¡µÄ¶Ë¿ÚºÅºÍ×ÊÔ´µÄÃû³Æ¡£

URI³ÆÎªÍ³Ò»×ÊÔ´±êʶ·û£¬ÊÇÒÔÌØ¶¨Óï·¨±êʶһ¸ö×ÊÔ´µÄ×Ö·û´®¡£URIÓÉģʽºÍÄ£Ê½ÌØÓеIJ¿·Ö×é³É£¬ËüÃÇÖ®¼äÓÃðºÅ¸ô¿ª£¬Ò»°ã¸ñʽÈçÏ£º

schema:schema-specific-part

URIÊÇURLºÍURNµÄ³¬¼¯¡£

¶¯Ì¬webÎĵµ¼¼ÊõÓÐÄÄЩ?·þÎñÆ÷¶Ë¶¯Ì¬Îĵµ¼¼ÊõµÄ¿Í»§¶Ë¶¯Ì¬Îĵµ¼¼ÊõÓкβ»Í¬?

´ð£º¶¯Ì¬WebÎĵµ¼¼Êõ°üÀ¨·þÎñÆ÷¶Ë¶¯Ì¬Îĵµ¼¼ÊõºÍ¿Í»§¶Ë¶¯Ì¬Îĵµ¼¼Êõ£¬Ç°Õß°üÀ¨CGI¼¼Êõ¡¢·þÎñÆ÷À©Õ¹¼¼ÊõºÍHTMLÒ³ÃæÖÐǶÈë½Å±¾¼¼Êõ¡£ÆäÖÐHTMLÒ³ÃæÖÐǶÈë½Å±¾¼¼Êõ°üÀ¨ASP¡¢PHPºÍJSP¼¼Êõ¡£

×îÁ÷ÐеĿͻ§¶Ë¶¯Ì¬Îĵµ¼¼ÊõÊÇÔÚHTMLÒ³ÃæÖÐǶÈëJavaScript½Å±¾´úÂ롣ʹÓÃJavaScript¿ÉÒÔÉè¼Æ½»»¥Ê½Ò³Ãæ¡£Óë·þÎñÆ÷¶Ë¶¯Ì¬Îĵµ²»Í¬£¬JavaScript½Å±¾ÊÇÔÚ¿Í»§¶ËÖ´Ðеġ£

¶¯Ì¬webÎĵµ¼¼ÊõÓÐÄÄЩ?·þÎñÆ÷¶Ë¶¯Ì¬Îĵµ¼¼ÊõµÄ¿Í»§¶Ë¶¯Ì¬Îĵµ¼¼ÊõÓкβ»Í¬?

´ð£º¶¯Ì¬WebÎĵµ¼¼Êõ°üÀ¨·þÎñÆ÷¶Ë¶¯Ì¬Îĵµ¼¼ÊõºÍ¿Í»§¶Ë¶¯Ì¬Îĵµ¼¼Êõ£¬Ç°Õß°üÀ¨CGI¼¼Êõ¡¢·þÎñÆ÷À©Õ¹¼¼ÊõºÍHTMLÒ³ÃæÖÐǶÈë½Å±¾¼¼Êõ¡£ÆäÖÐHTMLÒ³ÃæÖÐǶÈë½Å±¾¼¼Êõ°üÀ¨ASP¡¢PHPºÍJSP¼¼Êõ¡£

×îÁ÷ÐеĿͻ§¶Ë¶¯Ì¬Îĵµ¼¼ÊõÊÇÔÚHTMLÒ³ÃæÖÐǶÈëJavaScript½Å±¾´úÂ롣ʹÓÃJavaScript¿ÉÒÔÉè¼Æ½»»¥Ê½Ò³Ãæ¡£Óë·þÎñÆ÷¶Ë¶¯Ì¬Îĵµ²»Í¬£¬JavaScript½Å±¾ÊÇÔÚ¿Í»§¶ËÖ´Ðеġ£

ʲôÊÇMVCÉè¼ÆÄ£Ê½£¿ËüÓÐʲôÓŵ㣿 ´ð£ºMVCģʽ³ÆÎªÄ£ÐÍ-ÊÓͼ-¿ØÖÆÆ÷ģʽ¡£¸Ãģʽ½«WebÓ¦ÓõÄ×é¼þ·ÖΪģÐÍ¡¢ÊÓͼºÍ¿ØÖÆÆ÷£¬Ã¿ÖÖ×é¼þÍê³É¸÷×ÔµÄÈÎÎñ¡£

Óŵ㣺½«ÒµÎñÂß¼­ºÍÊý¾Ý·ÃÎÊ´Ó±íʾ²ã·ÖÀë³öÀ´¡£

¼òÊöʵÏÖMVCÉè¼ÆÄ£Ê½µÄÒ»°ã²½Öè ´ð£ºÊµÏÖMVCģʽµÄÒ»°ã²½Ö裺 £¨1£©¶¨ÒåJavaBeans±íʾÊý¾Ý£» £¨2£©Ê¹ÓÃServlet´¦ÀíÇëÇó£» £¨3£©ÌîдJavaBeans¶ÔÏóÊý¾Ý£» £¨4£©½«½á¹û´æ´¢ÔÚ×÷ÓÃÓò¶ÔÏóÖУ» £¨5£©½«ÇëÇóת·¢µ½JSPÒ³Ãæ£»

£¨6£©×îºóÔÚJSPÒ³ÃæÖдÓJavaBeansÖÐÈ¡³öÊý¾Ý¡£

ͨ¹ýÄÄÁ½ÖÖ·½·¨¿ÉÒÔ»ñµÃServletConfig¶ÔÏó£¿

´ð£ºÊ¹ÓÃÏìÓ¦¶ÔÏ󣨼´HttpServletResponse½Ó¿Ú£©µÄencodeURL()·½·¨»òencodeRedirectURL()·½·¨¡£

HTTPÇëÇó½á¹¹ÓÉÄ¿·Ö×é³É£¿ÇëÇóÐÐÓÉÄ¿·Ö×é³É£¿ ´ð£ºHTTPÇëÇó½á¹¹ÓÉÇëÇóÐС¢ÇëÇóÍ·¡¢¿ÕÐкÍÇëÇóÊý¾Ý×é³É¡£

ÇëÇóÐÐÓÉ·½·¨Ãû¡¢ÇëÇó×ÊÔ´µÄURIºÍʹÓõÄHTTP°æ±¾3²¿·Ö×é³É¡£

HTTPÏìÓ¦½á¹¹ÓÉÄ¿·Ö×é³É£¿×´Ì¬ÐÐÓÉÄ¿·Ö×é³É£¿ ´ð£ºHTTPÏìÓ¦½á¹¹ÓÉ״̬ÐС¢ÏìӦͷºÍÏìÓ¦Êý¾Ý3²¿·Ö×é³É¡£ ״̬ÐÐÓÉHTTP°æ±¾¡¢×´Ì¬ÂëºÍ¼ò¶ÌÃèÊö3²¿·Ö×é³É¡£

GETÇëÇóºÍPOSTÇëÇóÓÐʲôÒìͬ£¿

GETÇëÇóÖ÷ÒªÓÃÀ´´Ó·þÎñÆ÷¼ìË÷×ÊÔ´£¬ÇëÇó¶Áȡһ¸öwebÒ³Ãæ POSTÇëÇóÖ÷ÒªÓÃÀ´Ïò·þÎñÆ÷·¢ËÍÊý¾Ý¡£

ʹÓÃRequestDispatcherµÄforward£¨£©×ª·¢ÇëÇóºÍʹÓÃÏìÓ¦¶ÔÏóµÄsendRedirect()ÖØ¶¨ÏòÓкÎÒìͬ£¿

´ð£ºforward()·½·¨×ª·¢ÇëÇóÊÇ·þÎñÆ÷¶Ë¿ØÖÆÈ¨µÄתÏò£¬¿Í»§¶ËµØÖ·À¸Öв»ÏÔʾת·¢ºóµÄ×ÊÔ´µØÖ·¡£

sendRedirect()·½·¨ÊÇ·þÎñÆ÷Ïòä¯ÀÀÆ÷·¢ËÍ302״̬Â룬Ëüʹä¯ÀÀÆ÷Á¬½Óµ½ÐµÄλÖã¬ä¯ÀÀÆ÷µØÖ·À¸¿É¿´µ½µØÖ·µÄ±ä»¯¡£Ê¹ÓÃÖØ¶¨Ïò£¬×ÊÔ´²»ÄÜλÓÚWEB-INFĿ¼ÖС£

ÔÚServletÖÐÈç¹ûÐèÒª»ñµÃÒ»¸öÒ³ÃæµÄ±íµ¥ÖеÄÇëÇó²ÎÊý£¬ÓÖ²»ÖªµÀ²ÎÊýÃûʱÈçºÎ×ö£¿

´ð£º¿ÉÏÈͨ¹ýÇëÇó¶ÔÏóµÄgetParameterNames()·½·¨µÃµ½Enumeration¶ÔÏó£¬È»ºóÔÚÆäÉϵõ½Ã¿¸öÇëÇó²ÎÊýÃû£¬ÔÙͨ¹ýgetParameter()µÃµ½ÇëÇó²ÎÊýÖµ¡£

ÊÇ·ñÄܹ»Í¨¹ý¿Í»§»úµÄIPµØÖ·ÊµÏֻỰ¸ú×Ù£¿

´ð£º²»ÄÜ¡£ÒòΪÐí¶àÓû§ÊÇͨ¹ý´úÀí·þÎñÆ÷·ÃÎÊInternetµÄ£¬´Ëʱ·þÎñÆ÷µÃµ½µÄÊÇ´úÀí·þÎñÆ÷µÄIPµØÖ·¶ø²»ÊÇʵ¼ÊÓû§µÄIPµØÖ·£¬Òò´ËÕâЩÓû§µÄIPµØÖ·²»Î¨Ò»¡£

ÈçºÎÀí½â»á»°Ê§Ð§Ó볬ʱ£¿ÈçºÎͨ¹ý³ÌÐòÉèÖÃ×î´óʧЧʱ¼ä£¿ÈçºÎͨ¹ýwebÓ¦ÓóÌÐò²¿ÊðÃèÊöÎļþÉèÖÃ×î´ó³¬Ê±Ê±¼ä£¿¶þÕßÓÐÊ²Ã´Çø±ð£¿ ´ð£ºÈç¹û¿Í»§ÔÚÖ¸¶¨Ê±¼äÄÚûÓзÃÎÊ·þÎñÆ÷£¬Ôò¸Ã»á»°³¬Ê±¡£¶Ô³¬Ê±µÄ»á»°¶ÔÏ󣬷þÎñÆ÷ʹÆäʧЧ¡£

ͨ¹ý»á»°¶ÔÏóµÄsetMaxInactiveInterval()·½·¨ÉèÖûỰ×î´ó³¬Ê±Ê±¼ä¡£

web.xmlÎļþʹÓÃÔªËØµÄ×ÓÔªËØÉèÖÃ×î´ó³¬Ê±Ê±¼ä£¬ÈçÏÂËùʾ¡£

20

ÕâÀïµÄ×î´ó³¬Ê±Ê±¼äÊǶÔÕû¸öÓ¦ÓóÌÐòµÄËùÓлỰÓÐЧ£¬ÔªËØÖ¸¶¨µÄʱ¼äµ¥Î»ÊÇ·ÖÖÓ¡£setMaxInactiveInterval()·½·¨²ÎÊýµ¥Î»ÊÇÃë¡£

¼òÊö±í´ïʽÓïÑÔµÄÖ÷Òª¹¦ÄÜ¡£

´ð£º±í´ïʽÓïÑÔÊÇJSPÒ³ÃæÖÐʹÓõÄÒ»ÖÖ¼ò½àµÄÊý¾Ý·ÃÎÊÓïÑÔ¡£Ëü¶¨ÒåÁËÔËËã·ûʵÏÖËãÊõ¡¢¹ØÏµµÈÔËË㣻¿ÉÒÔ¶Ô×÷ÓÃÓò±äÁ¿¡¢JavaBeans¶ÔÏó¡¢¼¯ºÏµÄÔªËØ¡¢ÇëÇó²ÎÊý¡¢CookieµÈ½øÐмòµ¥µÄ·ÃÎÊ£»»¹¿ÉÒÔ·ÃÎÊJavaÓïÑÔ¶¨ÒåµÄº¯Êý£¨¾²Ì¬·½·¨£©¡£

ÊôÐÔÓ뼯ºÏµÄ·ÃÎÊÔËËã·ûµÄµã£¨.£©ÔËËã·ûÓë·½À¨ºÅ£¨[]£©ÔËËã·ûÓÐʲô²»Í¬£¿ ´ð£ºÊ¹Óõ㣨.£©ÔËËã·û¿ÉÒÔ·ÃÎÊMap¶ÔÏóÒ»¸ö¼üµÄÖµºÍbean¶ÔÏóµÄÊôÐÔÖµ¡£ ʹÓ÷½À¨ºÅ£¨[]£©ÔËËã·û»¹¿ÉÒÔList¶ÔÏóºÍÊý×é¶ÔÏóµÄÔªËØ¡£

¼òÊöJavaÊý¾Ý¿â·ÃÎʵÄÁ½²ãºÍÈý²ãģʽ

´ð£ºÁ½²ãÄ£Ðͼ´¿Í»§»ú/·þÎñÆ÷Ä£ÐÍ£¬ÔÚÁ½²ãÄ£ÐÍÖÐÓ¦ÓóÌÐòÖ±½Óͨ¹ýJDBCÇý¶¯³ÌÐò·ÃÎÊÊý¾Ý¿â¡£Èý²ãÄ£ÐÍÊÇä¯ÀÀÆ÷/Ó¦Ó÷þÎñÆ÷/Êý¾Ý¿â·þÎñÆ÷½á¹¹£¬ÔڸýṹÖÐä¯ÀÀÆ÷ÏòÓ¦Ó÷þÎñÆ÷·¢³öÇëÇó£¬Ó¦Ó÷þÎñÆ÷ͨ¹ýJDBCÇý¶¯³ÌÐò·ÃÎÊÊý¾Ý¿â¡£

¼òÊö´«Í³µÄÊý¾Ý¿âÁ¬½ÓµÄ²½Ö裬ÕâÖÖ·½·¨ÓÐʲôȱµã£¿ ´ð£º´«Í³µÄÊý¾Ý¿âÁ¬½ÓµÄÒ»°ã²½ÖèÊÇ£º £¨1£©¼ÓÔØJDBCÇý¶¯³ÌÐò¡£ £¨2£©½¨Á¢Á¬½Ó¶ÔÏó¡£

£¨3£©´´½¨Óï¾ä¶ÔÏó£¬Óï¾ä¶ÔÏóÓÐ3ÖÖ£ºStatement¡¢PreparedStatementºÍCallableStatement¡£

£¨4£©Ö´ÐÐSQLÓï¾äµÃµ½½á¹û¼¯¶ÔÏ󣬵÷ÓÃResultSetµÄÓйط½·¨¾Í¿ÉÒÔÍê³É¶ÔÊý¾Ý¿âµÄ²Ù×÷¡£

£¨5£©¹Ø±Õ½¨Á¢µÄ¸÷ÖÖ¶ÔÏó¡£

ȱµãÊÇÿ´Î·ÃÎÊÊý¾Ý¿â¶¼Òª½¨Á¢Á¬½Ó¶ÔÏó£¬ÇëÇó½áÊøÐè¹Ø±ÕÁ¬½Ó¶ÔÏó¡£Õ⽫ºÄ·Ñ´óÁ¿µÄʱ¼ä£¬¿ÉÄܵ¼ÖÂÔö´óÇëÇóµÄÏìӦʱ¼ä¡£

³ÌÐòÈç¹ûÒªÁ¬½ÓOracleÊý¾Ý¿â£¬Çë¸ø³öÁ¬½Ó´úÂë¡£Êý¾Ý¿âÇý¶¯³ÌÐòÃûÊÇʲô£¿Êý¾Ý¿âJDBC URL´®µÄÄÚÈÝÊÇʲô£¿ ´ð£ºÁ¬½ÓOracleÊý¾Ý¿â´úÂëÈçÏ¡£

Class.forName(\

String dburl = \Connection conn = Drivermanager.getConnection(dburl,

\ÉÏÊö´úÂëÖУ¬oracle.jdbc.driver.OracleDriverΪJDBCÇý¶¯³ÌÐòÃû£¬jdbc:oracle:thin:@ 127.0.0.1:1521:ORCLΪJDBC URL¡£

ÊÔ˵Ã÷ʹÓÃÊý¾ÝÔ´¶ÔÏóÁ¬½ÓÊý¾Ý¿âµÄÓŵãÊÇʲô£¿Í¨¹ýÊý¾ÝÔ´¶ÔÏóÈçºÎ»ñµÃÁ¬½Ó¶ÔÏó£¿

´ð£ºÊ¹ÓÃÊý¾ÝÔ´ÊÇĿǰWebÓ¦Óÿª·¢Öн¨Á¢Êý¾Ý¿âÁ¬½ÓµÄÊ×Ñ¡·½·¨¡£ÕâÖÖ·½·¨ÊÇÊÂÏȽ¨Á¢Èç¸ÉÁ¬½Ó¶ÔÏ󣬴æ·ÅÔÚÁ¬½Ó³ØÖС£µ±Ó¦ÓóÌÐòÐèÒªÒ»¸öÁ¬½Ó¶ÔÏóʱ¾Í´ÓÁ¬½Ó³ØÖÐÈ¡³öÒ»¸ö£¬Ê¹ÓÃÍêºóÔÙ·Å»ØÁ¬½Ó³Ø¡£ÕâÑù¾Í¿É±ÜÃâÿ´ÎÇëÇó¶¼´´½¨Á¬½Ó¶ÔÏ󣬴Ӷø½µµÍÇëÇóµÄÏìӦʱ¼ä£¬Ìá¸ßЧÂÊ¡£

ʹÓÃÊý¾ÝÔ´½¨Á¢Á¬½ÓÊÇͨ¹ýJNDI¼¼ÊõʵÏֵġ£ÕâÐèÒªÊ×ÏÈÅäÖÃÊý¾ÝÔ´£¨¿ÉÒÔÊǾֲ¿Êý¾ÝÔ´»òÈ«¾ÖÊý¾ÝÔ´£©£¬È»ºóÔÚÓ¦ÓóÌÐòÖÐͨ¹ýContext¶ÔÏó²éÕÒÊý¾ÝÔ´¶ÔÏó¡£¼ÙÉèÒѾ­ÅäÖÃÁËÃûΪsampleDSµÄÊý¾ÝÔ´£¬½¨Á¢Á¬½Ó´úÂëÈçÏ£º

Context context = new InitialContext();

DataSource dataSource = context.lookup(\Connection dbConnection = dataSource.getConnection();

ÊÔ˵Ã÷ʲôÊǿɹö¶¯ºÍ¿É¸üеĽá¹û¼¯¶ÔÏó£¬ÈçºÎµÃµ½¿É¸üÐÂÇҿɹö¶¯µÄResultSet¶ÔÏó£¿ ´ð£º¿É¹ö¶¯µÄResultSetÊÇÖ¸ÔÚ½á¹û¼¯¶ÔÏóÉϲ»µ«¿ÉÒÔÏòǰ·ÃÎʽá¹û¼¯ÖеļǼ£¬»¹¿ÉÒÔÏòºó·ÃÎʽá¹û¼¯ÖеļǼ¡£

¿É¸üеÄResultSetÊÇÖ¸²»µ«¿ÉÒÔ·ÃÎʽá¹û¼¯ÖеļǼ£¬»¹¿ÉÒÔͨ¹ý½á¹û¼¯¶ÔÏó¸üÐÂÊý¾Ý¿â¡£

Òª´´½¨¿É¹ö¶¯¡¢¿É¸üеÄResultSet¶ÔÏ󣬱ØÐëʹÓÃConnection¶ÔÏóµÄ´øÁ½¸ö²ÎÊýµÄcreateStatement()·½·¨´´½¨µÄStatement£¬µÚÒ»¸ö²ÎÊýÓÃÏÂÃæÁ½¸ö³£Á¿Ö®Ò»£º

? ResultSet.TYPE_SCROLL_SENSITIVE ? ResultSet.TYPE_SCROLL_INSENSITIVE

µÚ¶þ¸ö²ÎÊýʹÓÃÏÂÃæ³£Á¿£º ResultSet.CONCUR_UPDATABLE