µ¥Àýģʽ(Singleton) JavaʵÏÖ
µ¥ÀýģʽµÄʵÏÖ·½Ê½ÓкܶàÖÖ£¬ÔÚÕâÀï½éÉÜ×î¼òµ¥µÄÁ½ÖÖ¡£
µ¥ÀýģʽÄܹ»È·±£Ò»¸öÀàÖ»ÓÐÒ»¸öʵÀý£¨Õý³£Çé¿öÎÒÃÇ¿ÉÒÔnew³öÒ»¸öÀàµÄÎÞÊý¸öʵÀý£©£¬×ÔÐÐÌṩÕâ¸öʵÀý²¢ÏòÕû¸öϵͳÌṩÕâ¸öʵÀý¡£ÏÂÃæ½éÉܵ¥ÀýģʽµÄʵÏÖ·½·¨£º
1. µ¥ÀýģʽÓÐÁ½ÖÖʵÏÖ·½Ê½£ºÒ»ÖÖÊǽ«ÀàµÄ¹¹Ôì·¨·½·¨Ë½Óл¯£¬ÓÃÒ»¸ö˽ÓеÄÀà±äÁ¿instance±£´æÀàµÄʵÀý£¬ÔÚ¼ÓÔØÀàʱ£¬´´½¨ÀàµÄʵÀý£¬²¢½«ÊµÀý¸³¸øinstance£¬ÔÙÌṩһ¸ö¹¤Óѵľ²Ì¬·½·¨getInstanceÓÃÓÚ»ñÈ¡ÀàµÄΨһʵÀý£¬¸Ã·½·¨Ö±½Ó·µ»Øinstance¡£ÁíÒ»ÖÖÊǽ«ÀàµÄ¹¹Ôì·½·¨Ë½Óл¯£¬ÓÃÒ»¸ö˽ÓеÄÀàµÄ±äÁ¿instance±£´æÀàµÄʵÀý£¬µ½´ËΪֹ¶¼ÓëµÚÒ»ÖÖÇé¿öÏàͬ£¬µ«ÊÇÔÚ¼ÓÔØÀàʱ£¬½«null¸³¸øinstance¶ø²»ÊÇ´´½¨ÀàµÄʵÀý£¬ÔÙÌṩһ¸öÀàµÄ¹¤Óѵľ²Ì¬·½·¨getInstance£¬ÓÃÓÚ»ñÈ¡ÀàµÄΨһʵÀý£¬¸Ã·½·¨Ê×ÏÈÅжÏinstanceÊÇ·ñΪnull£¬Èç¹ûΪnull£¬Ôò´´½¨ÊµÀý¶ÔÏ󣬷ñÔò£¬Ö±½Ó·µ»Øinstance¡£
2. Á½ÖÖ·½·¨µÄÇø±ðÔÚÓÚ£ºÇ°ÕßÔÚÀà±»¼ÓÔØÊ±£¬ÀàµÄΨһʵÀý¾Í±»´´½¨³öÀ´ÁË£¬ºóÕßÔÚµÚÒ»¸öµ÷ÓÃgetInstance()·½·¨Ê±£¬ÀàµÄΨһʵÀý²Å±»´´½¨£¬µ«ÐèÒªÔÚgetInstance()·½·¨µÄÉùÃ÷ÖÐʹÓÃsynchronized¹Ø¼ü×Ö£¬±£Ö¤Ä³Ò»Ê±¿ÌÖ»ÓÐÒ»¸öÏ̵߳÷Óô˷½·¨£¬Èç¹û²»Ê¹ÓÃsynchronized¹Ø¼ü×ֵϰ£¬¾ÍÓпÉÄܳöÏÖÓÐÁ½¸öÏß³Ìͬʱ·ÃÎÊgetInstance·½·¨£¬Èç¹û´ËʱinstanceÇ¡ºÃΪnull£¬ÔòÁ½¸öÏ̶߳¼»áÈ¥´´½¨Õâ¸öÀàµÄʵÀý£¬Õâ¾Í²»·ûºÏµ¥ÀýģʽµÄ˼ÏëÁË¡£
´úÂëʵÏÖ£ºÊ×ÏȽ¨Á¢Ò»¸öÎļþTestSingleton.java£¬È»ºó½«ÏÂÃæµÄ²âÊÔ´úÂ뿽±´µ½ÎļþÖÐÔËÐС£
class OneSingleton {
private static OneSingleton instance = new OneSingleton();
private static int number = 0;
private OneSingleton() {}
public static OneSingleton getInstance() {
return instance;
}
public synchronized int getNumber() {
return number;
}
public synchronized void nextNumber() {
number++;
}
}
class TwoSingleton {
private static TwoSingleton instance = null;
private static int number = 0;
private TwoSingleton() {}
public static synchronized TwoSingleton getInstance() {
if(instance == null) {
instance = new
Ïà¹ØÎĵµ£º
¡¡¡¡ÄÇôҪ³ÉΪ¼Ü¹¹Ê¦µÄ;¾¶ËƺõÖ»ÓÐÏÖÔÚ½ÏΪÁ÷ÐеÄÈí¼þѧԺºÍ¸öÈË×ÔÎÒÅàÑøÁË¡£¹ØÓÚÈí¼þѧԺÎÒ½Ó´¥¹ý²»ÉÙ£¬Æä×ÚÖ¼¾ø´ó²¿·Ö¶¼ÊÇÔì¾Í(or´òÔì)ÆóÒµ ÐèÒªµÄÈí¼þ¼Ü¹¹Ê¦(or³ÌÐòÔ±orÈ˲Å)¡£½ÌʦÀ´Ô´ÓëÆóÒµ¡¢Ñ§Ô±À´Ô´ÓëÆóÒµ¡¢È˲ÅÊäË͵½ÆóÒµÊÇËûÃǰìѧµÄÊֶΡ£¾¡¹Ü¸÷¸öÈçÓêºó´ºËñ°ã³öÏÖµÄÈí¼þѧԺ¿ÚºÅ²î ²»¶à£¬µ«¿ÖÅ´ó¶àÖ»ÊÇΪÁËȦ ......
½ñÌ츴ϰÁËÒ»ÏÂÕâЩ֪ʶ£¬Ë³±ã×öÁËϱʼÇ.
1.¼Ä´æÆ÷£º×î¿ìµÄ´æ´¢Çø, ÓɱàÒëÆ÷¸ù¾ÝÐèÇó½øÐзÖÅä,ÎÒÃÇÔÚ³ÌÐòÖÐÎÞ·¨¿ØÖÆ.
2. Õ»£º´æ·Å»ù±¾ÀàÐ͵ıäÁ¿Êý¾ÝºÍ¶ÔÏóµÄÒýÓ㬵«¶ÔÏó±¾Éí²»´æ·ÅÔÚÕ»ÖУ¬¶øÊÇ´æ·ÅÔÚ¶Ñ£¨new ³öÀ´µÄ¶ÔÏ󣩻òÕß³£Á¿³ØÖУ¨×Ö·û´®³£Á¿¶ÔÏó´æ·ÅÔÚ³£Á¿³ØÖС££©
3. ¶Ñ£º´æ·ÅËùÓÐnew³öÀ´µÄ¶ÔÏó¡£
4. ¾²Ì¬Óò£ ......
1.[http://www.javaalmanac.com] – Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨¼°Ê¾Àý´úÂë, ÕâÊÇÒ»¸ö²»´íµÄÈ¥´¦.
2.[http://www.onjava.com] – O’ReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ.
3.[http://java.sun.com] – ¹Ù·½µÄJava¿ª·¢ÕßÍøÕ¾ – ÿÖܶ¼ÓÐÐÂÎÄÕ·¢±í.
4.[http:/ ......
ÃüÃû¹æ·¶
ÏîÄ¿Ãû£º¸÷µ¥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
°üÃû£ºÈ«²¿×ÖĸСдÇÒΨһ£¬Í¨³£Îª¹«Ë¾ÓòÃûµÄµ¹Ðò
Ô´ÎļþÃû£º¸÷µ¥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
·½·¨Ãû£ºµÚÒ»¸öµ¥´ÊÈ«²¿Ð¡Ð´£¬ÆäÓ൥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд£¬Ò»°ãӦΪ¶¯´Ê
³ÉÔ±±äÁ¿Ãû£ºµÚÒ»¸öµ¥´ÊÈ«²¿Ð¡Ð´£¬ÆäÓ൥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
³ÉÔ±³£Á¿Ãû£ºËùÓе¥ ......
×é¼þ
¹¦ÄÜ
Com.guipei.listener. SessionListener
¼àÌý×é¼þ£¬Íê³ÉHttpSessionContextµÄ¹¦ÄÜ
index.jsp
ʵÏÖÓû§µÇ½£¬´´½¨ÐµÄsession
logout.jsp
ʵÏÖÓû§Í˳ö£¬Óû§×Ô¶¯É¾³ýsession
display.jsp
ÏÔʾÓû§µÇ½ÐÅÏ¢£¬ÔÚÓû§µÇ½ºó×Ô¶¯×ªÈë
session.jsp
Áгöµ±Ç°ËùÓеÄsession
kill.jsp
ɱµôÖ¸¶¨µÄ»á»° ......