Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    7

    uscita a video risultati parziali[fattoriale]

    Salve, mi è stato assegnato l'esercizio da svolgere in java che consiste nel calcolare il fattoriale di un numero intero dato in ingresso(con controllo del campo), in pratica devo creare una SERVLET. Sono riuscito a fare tutto, l'unico problema è che non riesco a visualizzare a video i risultati parziali, cioè mano mano che il fattoriale viene calcolato; il tutto deve essere cadenzato temporalmente; sono riuscito solo a mostrare a video il risultato finale del fattoriale. La servlet gira correttamente.
    Grazie.

    PARTE HTML
    codice:
     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> 
    <body> <form action="fattoriale" method="post">   
     <h3>Inserisci numero intero</h3>  
    <input type="TEXT" name="intero"> 
      
     <input type="submit" name="invianumero" value="Calcola fattoriale!">  
     </form>  
    </body> </html>

    PARTE JAVA
    codice:
     
    import java.io.IOException;
    
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class fattoriale
     */
    public class fattoriale extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	
    	
    
    	
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public fattoriale() {
            super();
            // TODO Auto-generated constructor stub
        }
        
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    		response.setContentType("text/html");
    		PrintWriter responseOutput = response.getWriter();
    		
    		
    		if (request.getParameter("invianumero")=null) {
    			
    			
    			
    			
    		
    			try {
    				// converto la stringa in un numero intero 
    				int numero = int.parseint(stringa);
    		    
    				if (numero < 0){
    					
    				
    					System.out.println("
    
    Attenzione! Immettere un numero intero");}// fine if
    				
    				if(numero > 0){
    					 
    				 
    				
    				long fatt = 1;    
    				for (int i = 1; i <= numero; i++)
    				
    			
    				
    				System.out.println.println("
    
    Il fattoriale di "+numero+ " è "+fatt);
    				
    				}// fine if
    
    				
    			
    	
    			}
    		}
    	}

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: uscita a video risultati parziali[fattoriale]

    Originariamente inviato da hMfL
    l'unico problema è che non riesco a visualizzare a video i risultati parziali, cioè mano mano che il fattoriale viene calcolato; il tutto deve essere cadenzato temporalmente;
    Cioè deve passare un certo intervallo di tempo (es. sparo, 100ms) tra un parziale e l'altro?.

    Stampi il parziale (chiaramente va fatto nel for), fai il flush della response e attendi un tot di tempo (con un Thread.sleep). Ovviamente tutto il servizio della response diventa più lungo ma al client arrivano subito pezzetti a distanza di tempo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    7
    grazie per la risposta ...
    mmm vediamo 1 pò:
    inserisco solo la 2 parte del codice servlet ==> l righe di codice che ho aggiunto sono in grassetto ... comunque non va , l'uscita a video è così:



    in pratica i risultati parziali li calcola correttamente ma non c'è il timeout tra un calcolo e l'altro, cioè li visualizza tutti in un colpo e poi nn so come potrei fare per non far usvire sempre il 1 risultato parziale , ma anke il 2 ris parz, il 3 e così via



    Grazie 1000

    codice:
    import java.io.IOException;
    
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class fattoriale
     */
    public class fattoriale extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	
    	
    
    	
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public fattoriale() {
            super();
            // TODO Auto-generated constructor stub
        }
        
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    		response.setContentType("text/html");
    		PrintWriter responseOutput = response.getWriter();
    		
    		
    		if (request.getParameter("invianumero")=null) {
    			
    			Thread.sleep(1000);
    			
    			
    		
    			try {
    				// converto la stringa in un numero intero 
    				int numero = int.parseint(stringa);
    		    
    				if (numero < 0){
    					
    				
    					System.out.println("
    
    Attenzione! Immettere un numero intero");}// fine if
    				
    				if(numero > 0){
    					Thread.sleep(1000); 
    				 
    				
    				long fatt = 1;    
    				for (int i = 1; i <= numero; i++)
    				
    			
    				
    				System.out.println.println("
    
    Il fattoriale di "+numero+ " è "+fatt);
    				
    				}// fine if
    
    				
    			
    	
    			}
    		}
    	}

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    7
    chiedo scusa per aver fatto casino con il codice , ma ovviamente le parti in CODE e in grassetto sono sequenziali


    grazie

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da hMfL
    ma non c'è il timeout tra un calcolo e l'altro, cioè li visualizza tutti in un colpo e poi nn so come potrei fare per non far usvire sempre il 1 risultato parziale
    Sì ... il post precedente è un gran casino.

    Hai 1 ciclo for, al cui interno aggiorni 1 variabile man mano con il parziale del fattoriale.

    Quindi nel ciclo (ripeto: dentro il ciclo!):
    1) aggiorni la variabile.
    2) mandi in output il valore (che è un parziale)
    3) fai un flush della response
    4) attendi un tot di tempo con Thread.sleep
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,323

    Moderazione

    @hMfL: ho sistemato i due codici, come da tua richiesta.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.