ͳ¼ÆJAVAÍøÕ¾·ÃÎÊ´ÎÊý²¢»ñµÃ·ÃÎÊÕßIPµÄ·½·¨
¼òÑÔÖ®,Èç¹û²»ÓõÚÈý·½ÌṩµÄ½Ó¿Ú
ÄÇ×îºÃµÄ½â¾ö·½°¸Ó¦¸ÃÊǵ±SESSION½¨Á¢Ê±sessionCreated(),ÔÚ·ÃÎÊ×ÜÊýºÍµ±Ç°ÔÚÏßÈËÊýÉÏ+1
µ±SESSIONÏú»ÙʱsessionDistroyed(),ÔÚÏßÈËÊý-1
ºËÐÄ·½·¨ÊÇÀûÓÃListener¼àÌýµÄ¸÷ÖÖ½Ó¿Ú
ÎÒ°Ñ´úÂë(Ö÷Òª²¿·Ö)ÌùÔÚÏÂÃæ
´Ë¶Î´úÂëÎÒÇ××ÔʹÓùý,ûÓÐÎÊÌâ
µ«ÒòΪ¼Ì³ÐÁ˽ӿÚ,ÓÐЩδʹÓõķ½·¨Ò²Òª²¹³ä½øÈ¥,¾ßÌ巽ʽ±ÈÈçÔÚMyEclipseÖпÉÒÔ¿¿µã´íÎó,ADD UNIMPLEMENTED METHODʵÏÖ
¡¡¡¡package com.eaie.system;
¡¡¡¡import java.io.FileOutputStream;
¡¡¡¡import java.io.InputStream;
¡¡¡¡import java.io.PrintWriter;
¡¡¡¡import java.net.MalformedURLException;
¡¡¡¡import java.net.URL;
¡¡¡¡import java.util.Enumeration;
¡¡¡¡import java.util.Set;
¡¡¡¡import javax.servlet.RequestDispatcher;
¡¡¡¡import javax.servlet.Servlet;
¡¡¡¡import javax.servlet.ServletContext;
¡¡¡¡import javax.servlet.ServletContextEvent;
¡¡¡¡import javax.servlet.ServletException;
¡¡¡¡import javax.servlet.ServletRequestEvent;
¡¡¡¡import javax.servlet.ServletRequestListener;
¡¡¡¡import javax.servlet.http.HttpServletRequest;
¡¡¡¡import javax.servlet.http.HttpSessionActivationListener;
¡¡¡¡import javax.servlet.http.HttpSessionEvent;
¡¡¡¡import javax.servlet.http.HttpSessionListener;
¡¡¡¡public class SessionListener implements HttpSessionActivationListener,
¡¡¡¡HttpSessionListener, ServletContext, ServletRequestListener {
¡¡¡¡ServletContext context;
¡¡¡¡int onLineUserNum = 0;
¡¡¡¡int visitNum = 0;
¡¡¡¡HttpServletRequest request;
¡¡¡¡public void sessionDidActivate(HttpSessionEvent session) {
¡¡¡¡log("seesionDidActive("+session.getSession().getId()+")");
¡¡¡¡}
¡¡¡¡public void sessionWillPassivate(HttpSessionEvent session) {
¡¡¡¡log("seesionWillPassivate("+session.getSession().getId()+")");
¡¡¡¡}
¡¡¡¡public void sessionCreated(HttpSessionEvent event) {
¡¡¡¡onLineUserNum++;
¡¡¡¡visitNum ++;
¡¡¡¡String ip = request.getRemoteAddr();
¡¡¡¡log("sessionCreated('"+event.getSession().getId()+"'),-->IP:"+ip);
¡¡¡¡context.setAttribute("onLineUserNum", new Integer(onLineUserNum));
¡¡¡¡context.set
Ïà¹ØÎĵµ£º
1.·½·¨ÖØÔØ£ºÊÇÖ¸ÔÚÒ»¸öÀàÖÐÓжà¸ö·½·¨µÄÃû×ÖÏàͬ£¬µ«ÕâЩ·½·¨µÄ²ÎÊý±ØÐ벻ͬ£¬¼´ÒªÃ´ÊDzÎÊýµÄ¸öÊý²»Í¬£¬ÒªÃ´ÊDzÎÊýµÄÀàÐͲ»Í¬
×¢Ò⣺ÔÚ·½·¨ÖØÔØÖУ¬·½·¨µÄ·µ»ØÀàÐͺͲÎÊýµÄÃû×Ö²»²ÎÓë±È½Ï
2.·½·¨ÖвÎÊýµÄ´«Öµ£ ......
ÏÖÔÚÒѾ¿ªÊ¼Ñ§Ï°javaÒ»¸öÔÂ×óÓÒµÄʱ¼äÁË¡£ÒÔǰ¶ÔjavaÓÐһЩ»ù±¾µÄÁ˽⣬ ÔÚǰ¼¸¸öÔµÄʱ¼äµ±ÖУ¬Ñ§Ï°ÁË.netµÄ¼¼Êõ£¬¶ÔÃæÏò¶ÔÏóµÄÉè¼ÆÓÐÁ˸üÉîµÄÒ»¸öÈÏʶ£¬ÔÚÒ»¸öżȻµÄ¹¤×÷»ú»áÉÏ£¬½á½»ÁËÒ»¸öÅóÓÑ¡£ËûÎÊÎÒÏëÔÚÄÄÒ»·½Ïò·¢Õ¹£¬ÆäʵÎÒÒ²²»Çå³þ£¬Ëû˵Ҫ×Ô¼º¶¨ºÃÒ»¸öλ£¬È»ºóÕâÑùÕÕ׿ƻ®×ßÏÂÈ¥ ......
³ÌÐòÖ´ÐÐʱ»á˳Ðò¾¹ýloading¡¢linking¡¢initializationÈý¸ö²½Öè
1. loading£º²éÕÒÀà»ò½Ó¿ÚµÄ¶þ½øÖÆÎļþ
2. linking£º×°ÈëÀà»ò½Ó¿ÚµÄ¶þ½øÖÆÎļþ£¬ºÏΪJVMµÄÔËÐÐ״̬£¬Ê¹Æä¿ÉÒÔ±»Ö´ÐС£´Ë¹ý³Ì°üÀ¨Èý¸ö×Ó¹ý³Ì£ºverification, preparation, and
resolution of symbolic references
3. initialization£º ......
Æä¼¼ÇɾÍÊÇ£º¶¨ÒåÒ»¸ö¼òµ¥½Ó¿Ú£¬²¢ÔڸýӿÚÖÐÉùÃ÷ÎÒÃÇÒªµ÷Óõķ½·¨£¬Ò»°ã¿ÉÒÔÓ¦ÓÃÔÚ¼üÅÌÊó±êʼþ¸ú×Ù¡£
ÏÂÃæ¾ÙÒ»¸öÀý×Ó£º
¼Ù¶¨ÎÒÃÇÏ£ÍûÔÚij¸öʼþ·¢ÉúʱµÃµ½Í¨Öª¡£ÎÒÃÇ¿ÉÒÔ¶¨ÒåÒ»¸ö½Ó¿Ú£º
/*
* ÔÚij¸öʼþ·¢ÉúʱµÃµ½Í¨Öª£®
*/
public interface InterestingEvent {
¡¡¡¡ public void interestingEvent() ......
1. ´´½¨Ị̈߳¨¼Ì³ÐThreadºÍʵÏÖrunnable½Ó¿Ú£© class SubThread {
private class InnerThread extends Thread {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
super.run();
}
}
public Thread getThread() {
return new InnerThread();
}
}
......