dedecmsÖ¯ÃÎÄÚÈݹÜÀíϵͳ    
Ê×Ò³ | java | C/C++ | PHP | ²Ù×÷ϵͳ | ajax | ½Å±¾±à³Ì | °²È«¼¼Êõ | ±¾Õ¾ÏÂÔØÒ³ | flex | CRM | רÌâ | QQȺ | ²âÊÔÖÐÐÄ | »áÔ±ÖÐÐÄ | »ý·Ö¹æÔò
  µ±Ç°Î»ÖãºÖ÷Ò³>java>ÎÄÕÂÄÚÈÝ
ʹÓÃÒì²½ServletÀ©Õ¹AJAXÓ¦ÓóÌÐò
À´Ô´£º ×÷Õߣº

×÷ΪWebÓ¦ÓóÌÐòÄ£Ð͵ÄAJAXµÄ³öÏÖʹ·þÎñÆ÷¶ËµÄÃæÃ²·¢ÉúÁ˾޴óµÄ±ä»¯¡£Óû§¶Ô×ÅWebÒ³ÃæÌîд±íµ¥²¢µ¥»÷Ìá½»°´Å¥×ªµ½ÏÂÒ»¸öÁ´½ÓµÄµäÐÍWebʹÓÃģʽÏÖÔÚÕýÔÚת±äΪ¸üÏȽøµÄ¿Í»§¶ËJavaScriptÒÔ¼°¹¦Äܸü·á¸»µÄÓû§½çÃæ£¬Ö»Òª¶Ô±íµ¥½øÐвÙ×÷£¬±ÈÈçµ¥»÷Ò»¸ö¸´Ñ¡¿ò¡¢°´ÏÂÒ»¸ö¼ü»ò½«Êó±êÒÆµ½Ò»¸öÑ¡ÏÉÏ£¬¸ÃÓû§½çÃæ¾Í»á²»¶ÏµØÓë·þÎñÆ÷½»»¥¡£

¡¡¡¡¿¼ÂÇһϴӿͻ§¶Ë´«Êäµ½·þÎñÆ÷µÄÊý¾ÝÁ¿Óжà´ó¡£´Ó¿ÉÓÃÐԵĽǶÈÀ´¿´£¬Óû§ÔÚÒ»¸ö±¡¿Í»§¶Ëä¯ÀÀÆ÷ÉÏ»ñµÃÁ˸»Óû§½çÃæ£¬ÎÞÐè°²×°Èκζ«Î÷¡£µ«ÊÇ£¬µ±ÔÚ·þÎñÆ÷¶ËÀ©Õ¹ÕâЩӦÓóÌÐòʱ¾ÍÒª¸¶³ö´ú¼ÛÁË¡£AJAXÓ¦ÓóÌÐòµÄµäÐÍÈÝÁ¿¹æ»®Êý¿ÉÄÜ»áÊDZê×¼WebÓ¦ÓóÌÐòµÄ3µ½4±¶¡£

¡¡¡¡ÓÐÈË¿ÉÄÜ»áÎÊ£ºÕâ¶ÔWebLogic ServerÓкÎÓ°Ï죿ÿ¸ö·¢Ë͸øWebLogicµÄHTTPÇëÇó¶¼ÒªÊ¹ÓÃÒ»¸öÖ´ÐÐÏ̡߳£¸ù¾ÝAJAX±à³ÌµÄÐÔÖÊÒÔ¼°Ðí¶à¶ÌÆÚµÄÇëÇó»áÒÔÂÖѯµÄÐÎʽ²»¶Ï·¢ Ë͵ÄÇé¿ö£¬¸ÃÐÐΪģʽ¿ÉÄÜÔì³É´óÁ¿¿Í»§¶ËÇëÇ󲻶ϳå»÷·þÎñÆ÷µÄ¾ÖÃæ¡£¶àÄêÀ´£¬WebLogic¶¼½«ÕâÒ»ÎÊÌ⿼ÂÇÔÚÄÚ£¬²¢¹¹½¨ÁËÒ»¸öÏ൱°ôµÄÌØÐÔ£¬¼´ FutureResponseServlet.¸Ã·¶Ð͹¹½¨ÓÚÒì²½servletÀíÄîµÄ»ù´¡Ö®ÉÏ¡£´Ó°æ±¾6.1¿ªÊ¼£¬¸Ã¹¦ÄܾÍÔÊÐí¿ª·¢ÈËÔ±Ìá¹©ÕæÕýÒì²½µÄÀ´ ×Ô·þÎñÆ÷µÄ֪ͨ£¬¶øÎÞÐè¶Ôʼþ½øÐпͻ§¶ËÂÖѵ²¢ÔÚ·þÎñÆ÷¶ËʹÓÃÖ´ÐÐÏ̡߳£ÔÚ9.x֮ǰ£¬BEA»¹²»¼±ÓÚ¹«¿ª¸ÃÀà¡£

¡¡¡¡ÈçºÎÔÚÏÖʵÖÐÀûÓøÃÀàÄØ£¿ÎÒÃÇÀ´¿´Ò»¸öÀý×Ó¡£¼Ù¶¨ÒµÎñÐèÇóÊÇÒª¹¹½¨Ò»¸ö»ùÓÚWebµÄÓ¦ÓóÌÐò£¬¸ÃÓ¦ÓóÌÐòÒÔ½üºõʵʱµÄ·½Ê½Ïò·þÎñÆ÷·¢ËÍÊý¾Ý¶øÎÞ ÐèË¢ÐÂä¯ÀÀÆ÷¡£ÕâÑùµÄÓ¦ÓóÌÐò¿ÉÒÔÏò·þÎñÆ÷Ìá½»Ò»¸öÐèÒª»¨ºÜ³¤Ê±¼ä´¦ÀíµÄÇëÇ󣬶øÈÔÈ»Äܹ»½ÓÊÕµ½¹ØÓÚÆä״̬µÄÒ첽ʼþ²¢¼àÌýʼþ¡£´Ó¼¼Êõ½Ç¶ÈÀ´¿´£¬ÕâÓÐÐí ¶àʵÏÖ·½·¨¡£ÆäÖÐÒ»ÖÖ·½·¨¾ÍÊÇʹÓÃÒ»¸öÓëJava ServletͨÐŵÄJava AppletÀ´»ñµÃÒì²½ÐÅÏ¢¡£ÕâÊÇÒ»ÖÖ²»´íµÄ·½·¨£¬µ«ÊǶÔÓÚÓû§À´ËµÓÐЩ²»Ì«·½±ã£¬ÒòΪËûÃDZØÐëÏÂÔØÒ»¸öJVM£¬»¹ÒªÏÂÔØÒ» ¸öappletµ½ä¯ÀÀÆ÷¡£´ËÍ⣬»¹±ØÐëά»¤Ò»¸ö´Ó¿Í»§¶Ëµ½·þÎñÆ÷µÄ³Ö¾ÃÐÔÌ×½Ó×ÖÁ¬½Ó£¬ÒÔ±ã½ÓÊÕÒì²½ÏûÏ¢¡£ÉèÏëһϣ¬Èç¹ûÓÐ1000¸öÓû§Ê¹Óøà applet£¬ÄÇô¾ÍÓÐ1000¸öÖ´ÐÐÏ̼߳¸ºõÊÇÔÚ¿ÕµÈ×Å·¢ËÍʼþ֪ͨµ½¿Í»§¶Ë¡£µ±È»ÁË£¬»¹ÓÐÆäËü·½·¨£¬±ÈÈç´Óapplet»òAJAXÓ¦ÓóÌÐò¹¹½¨ÂÖѯ»ú ÖÆÀ´¶¨ÆÚ¼ì²éÐÂÊý¾Ý¡£¶øÈç¹û²»¾­³£½ÓÊÕµ½Êý¾Ý£¬ÄÇôÂÖѯ¾ÍÏÔµÃÎÞÓÃÁË£¬¶øÇÒ»¹ÀË·ÑÁË·þÎñÆ÷×ÊÔ´£¬Õ¼ÓÃÁËÖ´ÐÐÏ̡߳£·´Ö®£¬·þÎñÆ÷¿ÉÒÔ¶¨ÆÚÂÖѯ£¬½«Ê¼þ´«²¥»Ø ¿Í»§¶Ë£¬²¢Î¬»¤Ì×½Ó×ÖỊ̈߳¬¶øÎÞÐèʹÓó־ÃÐÔÖ´ÐÐÏ̡߳£Õâ·Ç³£ÀàËÆÓÚJava NIOµÄÔËÐз½Ê½¡£ÀíÏëÇé¿öÏ£¬ÎÒÃǶ¼Ï£Íû¹¹½¨Ò»¸ö´Ó·þÎñÆ÷“Òì²½”½ÓÊÕʼþ֪ͨ¶øÎÞÐèÔÚ·þÎñÆ÷¶ËʹÓó־ÃÐÔÖ´ÐÐÏ̵߳ÄÓ¦ÓóÌÐò£¬²»¹ÜËüÊÇÒ»¸ö applet»¹ÊÇÒ»¸ö»ùÓÚAJAXµÄ±¡WebÓ¦ÓóÌÐò¡£

¡¡¡¡´ËÎÊÌâµÄÒ»ÖÖ½â¾ö·½°¸ÊÇ´´½¨Ò»¸öÀ©Õ¹FutureResponseServletÀàµÄservlet.ä¯ÀÀÆ÷½¨Á¢Á˵½ FutureResponseServletÀàµÄµ¥Ò»Á¬½Ó£¬²¢ÔÚÁíÒ»¸öÏß³ÌÖн«Ëü×ÔÉí×¢²áΪһ¸ö¼àÌý³ÌÐò¡£Ö»ÒªÔÚ·þÎñÆ÷¶Ë½ÓÊÕµ½Ò»¸öʼþ£¬Ï߳̾ÍÏò¿Í»§¶Ë ֪ͨ¸Ãʼþ¡£·þÎñÆ÷Óë¿Í»§¶Ë±£³ÖÒì²½£¬ÎÞÐèʹÓó־ÃÐÔÖ´ÐÐÏ̡߳£¸ÃÄ£ÐÍ¿ÉÀ©Õ¹ÓÃÓÚ¶à¸ö²¢·¢Óû§µÄÇé¿ö¡£

¡¡¡¡±¾ÎIJ¢²»´òËã½éÉÜÈçºÎ¹¹½¨AJAXÓ¦ÓóÌÐò¡£Õâ·½ÃæµÄÎÄÕÂÒѾ­ÓкܶàÁË¡£±¾ÎĵÄÖØµãÔÚÓÚÌÖÂÛ±íʾ²ã£¨±ÈÈçAJAX¡¢applet»òÕßÈκÎǰ¶ËÓ¦ÓóÌÐò£©µÄÒì²½´¦ÀíµÄÖØÒªÐÔ¡£Çåµ¥1չʾÁËÒ»¸öÀý×Ó¡£

¡¡¡¡

 import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Date; 
import java.util.Stack;  
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServletRequest;  
import weblogic.servlet.FutureResponseServlet; 
import weblogic.servlet.FutureServletResponse;  
// An AsynchronousServlet that handles HTTP requests from a "separate" thread and 
// not the execute thread used to invoke this servlet. 
public class AsynchronousServerResponseServlet extends FutureResponseServlet {  
 
 private final Notifier notifier; 
 
 public AsynchronousServerResponseServlet() {   
  this.notifier = new Notifier();   
  this.notifier.start();  
 }   
 
 public void service(HttpServletRequest request, FutureServletResponse response) throws IOException,ServletException {    
  // push this client's request to a buffer and return immediately.   
  // asynchronous processing occurs in the run method of the Notifier Thread   
  notifier.poll(request, response);  
 }   
 
 class Notifier extends Thread {    
  private static Stack clients = new Stack();    
  void poll (HttpServletRequest request, FutureServletResponse response) {    
   clients.push(new Client(request, response));   
  }    
  
 public void run() {    
  while (!clients.empty()) {     
   Client client = null;     
   try{      
    client = (Client) clients.pop();      
    PrintWriter pw = client.response.getWriter();      
    for(int j = 0; j < 10; j++) {       
     pw.println("Time is:" + new Date() + "");       
     pw.flush();
    }      
    pw.close();     
   } 
   catch(Throwable t) {      
    t.printStackTrace();     
   } 
   finally {      
    try {      
     client.response.send();       
    } 
    catch(IOException ioe) {      
     ioe.printStackTrace();      
    }     
   }     
  }   
 }  
}  

// inner class that holds o-n to the clients http request and response  
class Client {   
 private HttpServletRequest request;   
 private FutureServletResponse response;    
 private Client(HttpServletRequest request, FutureServletResponse response) {    
  this.request = request;    
  this.response = response;   
 }  
}

¡¡¡¡¿ÉÒÔ¿´³ö£¬¸ÃÀý×ӷdz£¼òµ¥¡£AsynchronousServerResponseServletÀàÀ©Õ¹ÁË FutureResponseServlet£¬²¢ÖØÐ´ÁËservice·½·¨¡£Ö»Ê¹ÓÃÒ»¸öỊ̈߳¨¼´NotifierÀࣩÀ´´¦ÀíËùÓеĿͻ§¶ËÁ¬½ÓÏìÓ¦¡£¶ÔÓÚÿ ¸öHTTPÇëÇó£¬servletÏòNotifierÏß³Ì×¢²áÌ×½Ó×ÖÁ¬½Ó£¬È»ºó·µ»Ø¡£Ò첽ʼþ±»½»¸¶¸ø¿Í»§¶Ë£¬¶ø³Ö¾ÃÐÔÌ×½Ó×ÖÁ¬½Ó±»Î¬³Ö¡£

¡¡¡¡µ¥¸öÏ߳̿ɹÜÀí¶à¸ö¿Í»§¶ËÁ¬½Ó£¡run£¨£©·½·¨¿ÉÓÃÓÚ¸ù¾ÝijÖÖÏûϢѡÔñÌõ¼þ»Øµ÷ʼþµ½¿Í»§¶Ë¡£¸ÃÀý×ÓÖ»Ö´ÐÐÁËÒ»¸ö·þÎñÆ÷¶ËµÄpush²Ù×÷£¬ÓÐЩ¹ý·Ö¼òµ¥ÁË¡£Ï̳߳ؿɱ»ÓÃÓÚijЩÀàÐ͵Äʼþ´¦Àí¡£

¡¡¡¡×ܶøÑÔÖ®£¬ÔÚ´¦Àí³¤ÆÚÔËÐеÄÈÎÎñʱ£¬FutureResponseServletÊÇÒ»¸öºÃÌØÐÔ£¬ËüÔÊÐí¿ª·¢ÈËÔ±Ìá¸ßÐÔÄÜ£¬ÔÚ¶ÀÁ¢µÄÏß³ÌÖд¦ÀíÏìÓ¦£¬²¢½«¿ªÏú½µÖÁ×îµÍ¡£ÔÚ¹¹½¨Òì²½Ó¦ÓóÌÐòʱ£¬¸Ã·½·¨Ö§³Ö¿ÉÉìËõÐÔ


ÉÏһƪ£ºhibernate"null id in entry (don't flush the Session after an exception occurs)"Ò   ÏÂһƪ£ºJava³ÌÐòµÄ¼ÓÃܺͷ´¼ÓÃÜ
[ÊÕ²Ø] [ÍÆ¼ö] [ÆÀÂÛ(0Ìõ)] [·µ»Ø¶¥²¿] [´òÓ¡±¾Ò³] [¹Ø±Õ´°¿Ú]  
Óû§Ãû£º £¨ÐÂ×¢²á£© ÃÜÂ룺 ÄäÃûÆÀÂÛ
ÆÀÂÛÄÚÈÝ£º(²»Äܳ¬¹ý250×Ö£¬ÐèÉóºËºó²Å»á¹«²¼£¬Çë×Ô¾õ×ñÊØ»¥ÁªÍøÏà¹ØÕþ²ß·¨¹æ¡£
 ¡ì×îÐÂÆÀÂÛ£º
  ÈȵãÎÄÕÂ
¡¤java×Ôѧ·Ïßͼ
¡¤JSPÈëÃÅʵÀý½Ì³Ì
¡¤JUnitµ¥Ôª²âÊÔ(2)
¡¤JUnitµ¥Ôª²âÊÔ(1)
¡¤Ê²Ã´ÊÇServlet
¡¤ÓÃAJAX+J2EEʵÏÖÍøÉÏ»áÒéÊÒϵͳ
¡¤Ç³Ì¸ÔÚJavaÓïÑÔÖо¿¾¹ÊÇ´«Öµ»¹ÊÇ
¡¤Java 5.0 ¶àÏ̱߳à³Ìʵ¼ù
¡¤JavaµÄÎļþ ¶ÁºÍд
¡¤¹¹ÔìÆ÷ÄÚ²¿µÄ¶à̬·½·¨µÄÐÐΪ
¡¤JSP³£ÓÃÄÚÖöÔÏóʹÓÃ˵Ã÷
¡¤¶ÔÓÚJAVA»ù´¡²âÊÔÖг£¼ûµÄÒì³£ÎÊ
  Ïà¹ØÎÄÕÂ
¡¤hibernate"null id in entry (do
¡¤Java³ÌÐòµÄ¼ÓÃܺͷ´¼ÓÃÜ
¡¤ÕùÂÛ£ºJavaÊÇ·ñÓ¦¸ÃÍ£Ö¹Ôö¼ÓÐÂÌØ
¡¤Ê¹ÓÃJUnit¶ÔEJB½øÐе¥Ôª²âÊÔ
¡¤ÈçºÎµ÷ÓÃJavaBean
¡¤ÏìÓ¦JSFµÄÇëÇó ʼþ
¡¤JSFÖеÄʼþ
¡¤JSFÓëStrutsµÄ±È½Ï
¡¤JSF1.2¼¼ÊõµÄÐÂÌØÐÔ×ܽá
¡¤¼ò½éJSF
¡¤JSF´íÎóѶϢ´¦Àí
¡¤J2EE×ۺϡªStruts³£¼û´íÎóµÄÈ«Ãæ
  Ïà¹ØÐÅÏ¢
copy right @ °Ù¼ÒÈ­Èí¼þÏîÄ¿Ñо¿ÊÒ 2007 ÁÉICP±¸07011763