¡¡·½·¨Ò»£ºÔÚservletµÄinit()·½·¨Öлº´æÊý¾Ý
¡¡¡¡µ±Ó¦Ó÷þÎñÆ÷³õʼ»¯servletʵÀý
Ö®ºó£¬Îª¿Í»§¶ËÇëÇóÌṩ·þÎñ֮ǰ£¬Ëü»áµ÷ÓÃÕâ¸öservletµÄinit()·½·¨¡£ÔÚÒ»¸öservletµÄÉúÃüÖÜÆÚÖУ¬init()·½·¨Ö»»á±»µ÷ÓÃÒ»´Î¡£
ͨ¹ýÔÚinit()·½·¨Öлº´æÒ»Ð©¾²Ì¬µÄÊý¾Ý»òÍê³ÉһЩֻÐèÒªÖ´ÐÐÒ»´ÎµÄ¡¢ºÄʱµÄ²Ù×÷£¬¾Í¿É´ó´óµØÌá¸ßϵͳÐÔÄÜ¡£
¡¡¡¡ÀýÈ磬ͨ¹ýÔÚ
init()·½·¨Öн¨Á¢Ò»¸öJDBCÁ¬½Ó³ØÊÇÒ»¸ö×î¼ÑÀý×Ó£¬¼ÙÉèÎÒÃÇÊÇÓÃjdbc2.0µÄDataSource½Ó¿ÚÀ´È¡µÃÊý¾Ý¿âÁ¬½Ó£¬ÔÚͨ³£µÄÇé¿öÏ£¬ÎÒ
ÃÇÐèҪͨ¹ýJNDIÀ´È¡µÃ¾ßÌåµÄÊý¾ÝÔ´¡£ÎÒÃÇ¿ÉÒÔÏëÏóÔÚÒ»¸ö¾ßÌåµÄÓ¦ÓÃÖУ¬Èç¹ûÿ´ÎSQLÇëÇó¶¼ÒªÖ´ÐÐÒ»´ÎJNDI²éѯµÄ»°£¬ÄÇϵͳÐÔÄܽ«»á¼±¾çϽµ¡£½â
¾ö·½·¨ÊÇÈçÏ´úÂ룬Ëüͨ¹ý»º´æDataSource£¬Ê¹µÃÏÂÒ»´ÎSQLµ÷ÓÃʱÈÔÈ»¿ÉÒÔ¼ÌÐøÀûÓÃËü£º
public class ControllerServlet extends HttpServlet{ private javax.sql.DataSource testDS = null; ¡¡ public void init(ServletConfig config) throws ServletException¡¡{ super.init(config); ¡¡¡¡ Context ctx = null;¡¡¡¡ try{ ¡¡¡¡¡¡ ctx = new InitialContext();¡¡¡¡¡¡ testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS"); }catch(NamingException ne){ne.printStackTrace();} }catch(Exception e){e.printStackTrace();} }¡¡ public javax.sql.DataSource getTestDS(){¡¡ ¡¡return testDS;¡¡ }¡¡ ... ... }
¡¡¡¡·½·¨ 2:½ûÖ¹servletºÍJSP ×Ô¶¯ÖØÔØ(auto-reloading)
¡¡
¡¡Servlet/JSPÌṩÁËÒ»¸öʵÓõļ¼Êõ£¬¼´×Ô¶¯ÖØÔؼ¼Êõ£¬ËüΪ¿ª·¢ÈËÔ±ÌṩÁËÒ»¸öºÃµÄ¿ª·¢»·¾³£¬µ±Äã¸Ä±äservletºÍJSPÒ³Ãæºó¶ø²»±ØÖØÆô
Ó¦Ó÷þÎñÆ÷¡£È»¶ø£¬ÕâÖÖ¼¼ÊõÔÚ²úÆ·ÔËÐн׶ζÔϵͳµÄ×ÊÔ´ÊÇÒ»¸ö¼«´óµÄËðºÄ£¬ÒòΪËü»á¸øJSPÒýÇæµÄÀà×°ÔØÆ÷(classloader)´øÀ´¼«´óµÄ¸ºµ£¡£Òò
´Ë¹Ø±Õ×Ô¶¯ÖØÔع¦ÄܶÔϵͳÐÔÄܵÄÌáÉýÊÇÒ»¸ö¼«´óµÄ°ïÖú¡£
¡¡¡¡·½·¨ 3: ²»ÒªÀÄÓÃHttpSession
¡¡
¡¡ÔںܶàÓ¦ÓÃÖУ¬ÎÒÃǵijÌÐòÐèÒª±£³Ö¿Í»§¶ËµÄ״̬£¬ÒÔ±ãÒ³ÃæÖ®¼ä¿ÉÒÔÏ໥ÁªÏµ¡£µ«²»ÐÒµÄÊÇÓÉÓÚHTTP¾ßÓÐÌìÉúÎÞ״̬ÐÔ£¬´Ó¶øÎÞ·¨±£´æ¿Í»§¶ËµÄ״̬¡£Òò´Ë
Ò»°ãµÄÓ¦Ó÷þÎñÆ÷¶¼ÌṩÁËsessionÀ´±£´æ¿Í»§µÄ״̬¡£ÔÚJSPÓ¦Ó÷þÎñÆ÷ÖУ¬ÊÇͨ¹ýHttpSession¶ÔÏñÀ´ÊµÏÖsessionµÄ¹¦Äܵ쬵«ÔÚ
·½±ãµÄͬʱ£¬ËüÒ²¸øÏµÍ³´øÀ´Á˲»Ð¡µÄ¸ºµ£¡£ÒòΪÿµ±Äã»ñµÃ»ò¸üÐÂsessionʱ£¬ÏµÍ³ÕßÒª¶ÔËü½øÐзÑʱµÄÐòÁл¯²Ù×÷¡£Äã¿ÉÒÔͨ¹ý¶Ô
HttpSessionµÄÒÔϼ¸ÖÖ´¦Àí·½Ê½À´ÌáÉýϵͳµÄÐÔÄÜ¡£
¡¡¡¡Èç¹ûûÓбØÒª£¬¾ÍÓ¦¸Ã¹Ø±ÕJSPÒ³ÃæÖжÔHttpSessionµÄȱʡÉèÖᣠÈç¹ûÄãûÓÐÃ÷È·Ö¸¶¨µÄ»°£¬Ã¿¸öJSPÒ³Ãæ¶¼»áȱʡµØ´´½¨Ò»¸öHttpSession¡£Èç¹ûÄãµÄJSPÖв»ÐèҪʹÓÃsessionµÄ»°£¬ÄÇ¿ÉÒÔͨ¹ýÈçϵÄJSPÒ³ÃæÖ¸Ê¾·ûÀ´½ûÖ¹Ëü£º
£¼%@ page session="false"%£¾
¡¡¡¡²»ÒªÔÚHttpSessionÖдæ·Å´óµÄÊý¾Ý¶ÔÏñ£ºÈç¹ûÄãÔÚHttpSessionÖдæ·Å´óµÄÊý¾Ý¶ÔÏñµÄ»°£¬Ã¿µ±¶ÔËü½øÐжÁдʱ£¬Ó¦Ó÷þÎñÆ÷¶¼½«¶ÔÆä½øÐÐÐòÁл¯£¬´Ó¶øÔö¼ÓÁËϵͳµÄ¶îÍ⸺µ£¡£ÄãÔÚHttpSessionÖдæ·ÅµÄÊý¾Ý¶ÔÏñÔ½´ó£¬ÄÇϵͳµÄÐÔÄܾÍϽµµÃÔ½¿ì¡£
¡¡
¡¡µ±Äã²»ÐèÒªHttpSessionʱ£¬¾¡¿ìµØÊÍ·ÅËü£ºµ±Äã²»ÔÙÐèÒªsessionʱ£¬Äã¿ÉÒÔͨ¹ýµ÷ÓÃHttpSession.invalidate()
·½·¨À´ÊÍ·ÅËü¡£¾¡Á¿½«sessionµÄ³¬Ê±Ê±¼äÉèµÃ¶ÌÒ»µã£ºÔÚJSPÓ¦Ó÷þÎñÆ÷ÖУ¬ÓÐÒ»¸öȱʡµÄsessionµÄ³¬Ê±Ê±¼ä¡£µ±¿Í»§ÔÚÕâ¸öʱ¼äÖ®ºóûÓнøÐÐ
ÈκβÙ×÷µÄ»°£¬ÏµÍ³»á½«Ïà¹ØµÄsession×Ô¶¯´ÓÄÚ´æÖÐÊÍ·Å¡£³¬Ê±Ê±¼äÉèµÃÔ½´ó£¬ÏµÍ³µÄÐÔÄܾͻáÔ½µÍ£¬Òò´Ë×îºÃµÄ·½·¨¾ÍÊǾ¡Á¿Ê¹µÃËüµÄÖµ±£³ÖÔÚÒ»¸ö½ÏµÍ
µÄˮƽ¡£
¡¡¡¡·½·¨ 4: ½«Ò³ÃæÊä³ö½øÐÐѹËõ
¡¡¡¡Ñ¹ËõÊǽâ¾öÊý¾ÝÈßÓàµÄÒ»¸öºÃµÄ·½
·¨£¬ÌرðÊÇÔÚÍøÂç´ø¿í²»¹»·¢´ïµÄ½ñÌì¡£ÓеÄä¯ÀÀÆ÷Ö§³Ögzip(GNU
zip)½øÐÐÀ´¶ÔHTMLÎļþ½øÐÐѹËõ£¬ÕâÖÖ·½·¨¿ÉÒÔÏ·¾çÐԵؼõÉÙHTMLÎļþµÄÏÂÔØÊ±¼ä¡£Òò´Ë£¬Èç¹ûÄ㽫servlet»òJSPÒ³ÃæÉú³ÉµÄHTMLÒ³Ãæ
½øÐÐѹËõµÄ»°£¬ÄÇÓû§¾Í»á¾õµÃÒ³Ãæä¯ÀÀËÙ¶È»á·Ç³£¿ì¡£µ«²»ÐÒµÄÊÇ£¬²»ÊÇËùÓеÄä¯ÀÀÆ÷¶¼Ö§³ÖgzipѹËõ£¬µ«Äã¿ÉÒÔͨ¹ýÔÚÄãµÄ³ÌÐòÖмì²é¿Í»§µÄä¯ÀÀÆ÷ÊÇ·ñÖ§
³ÖËü¡£ÏÂÃæ¾ÍÊǹØÓÚÕâÖÖ·½·¨ÊµÏÖµÄÒ»¸ö´úÂëÆ¬¶Î£º
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { OutputStream out = null; String encoding = request.getHeader("Accept-Encoding"); ¡¡ if (encoding != null && encoding.indexOf("gzip") != -1){ request.setHeader("Content-Encoding" , "gzip");¡¡¡¡ out = new GZIPOutputStream(request.getOutputStream()); }¡¡ else if (encoding != null && encoding.indexOf("comdivss") != -1){ request.setHeader("Content-Encoding" , "comdivss");¡¡¡¡ out = new ZIPOutputStream(request.getOutputStream()); }else{¡¡¡¡ out = request.getOutputStream(); }¡¡ ...¡¡ ... }
¡¡¡¡·½·¨ 5: ʹÓÃÏ̳߳Ø
¡¡
¡¡Ó¦Ó÷þÎñÆ÷ȱʡµØÎªÃ¿¸ö²»Í¬µÄ¿Í»§¶ËÇëÇó´´½¨Ò»¸öÏ߳̽øÐд¦Àí£¬²¢ÎªËüÃÇ·ÖÅÉservice()·½·¨£¬µ±service()·½·¨µ÷ÓÃÍê³Éºó£¬ÓëÖ®ÏàÓ¦µÄ
Ïß³ÌÒ²ËæÖ®³·Ïû¡£ÓÉÓÚ´´½¨ºÍ³·ÏûÏ̻߳áºÄ·ÑÒ»¶¨µÄϵͳ×ÊÔ´£¬ÕâÖÖȱʡģʽ½µµÍÁËϵͳµÄÐÔÄÜ¡£µ«ËùÐÒµÄÊÇÎÒÃÇ¿ÉÒÔͨ¹ý´´½¨Ò»¸öÏ̳߳ØÀ´¸Ä±äÕâÖÖ×´¿ö¡£
¡¡
¡¡ÁíÍ⣬ÎÒÃÇ»¹ÒªÎªÕâ¸öÏ̳߳ØÉèÖÃÒ»¸ö×îСÏß³ÌÊýºÍÒ»¸ö×î´óÏß³ÌÊý¡£ÔÚÓ¦Ó÷þÎñÆ÷Æô¶¯Ê±£¬Ëü»á´´½¨ÊýÁ¿µÈÓÚ×îСÏß³ÌÊýµÄÒ»¸öÏ̳߳أ¬µ±¿Í»§ÓÐÇëÇóʱ£¬ÏàÓ¦
µØ´Ó³Ø´ÓÈ¡³öÒ»¸öÏß³ÌÀ´½øÐд¦Àí£¬µ±´¦ÀíÍê³Éºó£¬ÔÙ½«Ïß³ÌÖØÐ·ÅÈëµ½³ØÖС£Èç¹û³ØÖеÄÏ̲߳»¹»µØ»°£¬ÏµÍ³»á×Ô¶¯µØÔö¼Ó³ØÖÐÏ̵߳ÄÊýÁ¿£¬µ«×ÜÁ¿²»Äܳ¬¹ý×î´ó
Ïß³ÌÊý¡£Í¨¹ýʹÓÃÏ̳߳أ¬µ±¿Í»§¶ËÇëÇó¼±¾çÔö¼Óʱ£¬ÏµÍ³µÄ¸ºÔؾͻá³ÊÏֵį½»¬µÄÉÏÉýÇúÏߣ¬´Ó¶øÌá¸ßµÄϵͳµÄ¿ÉÉìËõÐÔ¡£
¡¡¡¡·½·¨ 6: Ñ¡ÔñÕýÈ·µÄÒ³Ãæ°üº¬»úÖÆ
¡¡¡¡ÔÚJSPÖÐÓÐÁ½ÖÖ·½·¨¿ÉÒÔÓÃÀ´°üº¬ÁíÒ»¸öÒ³Ãæ£º ¡¡¡¡1¡¢Ê¹ÓÃincludeָʾ·û £¼%@ includee file=¡±test.jsp¡± %£¾ ¡¡¡¡2¡¢Ê¹ÓÃjspָʾ·û £¼jsp:includee page=¡±test.jsp¡± flush=¡±true¡±/£¾ ¡¡¡¡ÔÚʵ¼ÊÖз¢ÏÖ£¬Èç¹ûʹÓõÚÒ»ÖÖ·½·¨µÄ»°£¬¿ÉÒÔʹµÃϵͳÐÔÄܸü¸ß¡£
¡¡¡¡·½·¨ 7:ÕýÈ·µØÈ·¶¨javabeanµÄÉúÃüÖÜÆÚ
¡¡¡¡JSPµÄÒ»¸öÇ¿´óµÄµØ·½¾ÍÊǶÔjavabeanµÄÖ§³Ö¡£Í¨¹ýÔÚJSPÒ³ÃæÖÐʹÓÃjsp:useBean±êÇ©£¬¿ÉÒÔ½«javabeanÖ±½Ó²åÈëµ½Ò»¸öJSPÒ³ÃæÖС£ËüµÄʹÓ÷½·¨ÈçÏ£º £¼jsp:useBean id="name" scope="page|request|session|application" class="package.className" type="typeName"£¾ £¼/jsp:useBean£¾
¡¡¡¡ÆäÖÐscopeÊôÐÔÖ¸³öÁËÕâ¸öbeanµÄÉúÃüÖÜÆÚ¡£È±Ê¡µÄÉúÃüÖÜÆÚΪpage¡£Èç¹ûÄãûÓÐÕýÈ·µØÑ¡ÔñbeanµÄÉúÃüÖÜÆÚµÄ»°£¬Ëü½«Ó°ÏìϵͳµÄÐÔÄÜ¡£
¡¡
¡¡¾ÙÀýÀ´Ëµ£¬Èç¹ûÄãÖ»ÏëÔÚÒ»´ÎÇëÇóÖÐʹÓÃij¸öbean£¬µ«ÄãÈ´½«Õâ¸öbeanµÄÉúÃüÖÜÆÚÉèÖóÉÁËsession£¬Äǵ±Õâ´ÎÇëÇó½áÊøºó£¬Õâ¸öbean½«ÈÔÈ»
±£ÁôÔÚÄÚ´æÖУ¬³ý·Çsession³¬Ê±»òÓû§¹Ø±Õä¯ÀÀÆ÷¡£ÕâÑù»áºÄ·ÑÒ»¶¨µÄÄڴ棬²¢ÎÞνµÄÔö¼ÓÁËJVMÀ¬»øÊÕ¼¯Æ÷µÄ¹¤×÷Á¿¡£Òò´ËΪbeanÉèÖÃÕýÈ·µÄÉúÃü
ÖÜÆÚ£¬²¢ÔÚbeanµÄʹÃü½áÊøºó¾¡¿ìµØÇåÀíËüÃÇ£¬»áʹÓÃϵͳÐÔÄÜÓÐÒ»¸öÌá¸ß¡£
|
ÎÄÕÂ
|
20704
|
´´½¨ÈÕÆÚ
|
5-24-2014
|
×÷Õß
|
zhouxm
|
ÆÀ·Ö
|
(None)
|
|