Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Posto la classe HTTPLogHandler:
    codice:
    public class HTTPLogHandler extends FileLoader{
    
        @Override
        public void parse() {
            for (Iterator<String> i = loadFile().iterator(); i.hasNext();) {
                String next = i.next();
                String[] splitted = next.split(" ", -1);
                
                String ip = splitted[0];
                String usr = splitted[2];
                Calendar date = calendarize(splitted[3]);
                
                String method = removeQuotes(splitted[5]);
                int sepInd = splitted[6].indexOf("/");
                String request = splitted[6].substring(sepInd);
                String protocol = removeQuotes(splitted[7]);
                
                String[] protocolSplit = protocol.split("/");
                String protocolName = protocolSplit[0];
                String protocolVers = protocolSplit[1];
                
                int responseTime = Integer.parseInt(splitted[8]);
                int size = Integer.parseInt(splitted[9]);
                String referer = removeQuotes(splitted[11]);
                String userAgent = next.substring(next.indexOf("("), next.indexOf(")")+1);
                
                HTTPFormat format = new HTTPFormat(ip, usr, date, method, request, protocol, size, size, referer, userAgent);
                parsed.add(format);
    
    
            }
        }
        
        /**
         * Conversione da stringa a formato Calendar.
         * @param s
         * @return 
         */
        public Calendar calendarize(String s){
            s = s.replace("[", "");
            s = s.replace("]", "");
            
            String[] splitted = s.split(" ", -1);
            String dateHour = splitted[0];
            
            int sepIndex = dateHour.indexOf(":");
            String dateString = dateHour.substring(0, sepIndex); //L'indice del separatore è letto correttamente
            String hourString = dateHour.substring(sepIndex+1);
            
            String date[] = dateString.split("/");
            int giorno = Integer.parseInt(date[0]);
            int mese = monthFormat(date[1]);
            int anno = Integer.parseInt(date[2]);
            
            String hour[] = hourString.split(":");
            int hh = Integer.parseInt(hour[0]);
            int mm = Integer.parseInt(hour[1]);
            int ss = Integer.parseInt(hour[2]);
            
            Calendar c = new GregorianCalendar(anno, mese, giorno, hh, mm, ss);
            return c;
        }
        /**
         * Conversione String a formato Integer per i mesi.
         * @param m
         * @return 
         */
        public int monthFormat(String m){
            int month = 0;
            
            if(m.equals("Gen")){
                month = 1;
            } else if(m.equals("Feb")){
                month = 2;
            } else if(m.equals("Mar")){
                month = 3;
            } else if(m.equals("Apr")){
                month = 4;
            } else if(m.equals("May")){
                month = 5;
            } else if(m.equals("Jun")){
                month = 6;
            } else if(m.equals("Jul")){
                month = 7;
            } else if(m.equals("Aug")){
                month = 8;
            } else if(m.equals("Sep")){
                month = 9;
            } else if(m.equals("Oct")){
                month = 10;
            } else if(m.equals("Nov")){
                month = 11;
            } else if(m.equals("Dec")){
                month = 12;
            } 
            return month;
        }
        /**
         * Rimozione virgolette.
         * @param s
         * @return 
         */
        public String removeQuotes(String s){
            char virg = 34;
            String virgolette = String.valueOf(virg);
            s = s.replace(virgolette, "");
            return s;
        }
    
    
    }
    Aggiungo per completezza che Il metodo setFilePath è ereditato dalla classe FileHandler:
    codice:
    public abstract class FileHandler {    List<HTTPFormat> parsed = new LinkedList();
        String filePath;
        
        public List<HTTPFormat> getParsed() {
            return parsed;
        }
    
    
        public void setFilePath(String filePath) {
            this.filePath = filePath;
        }
        
    }
    Per chiarimenti ovviamente, sono qua!
    Ultima modifica di luca93abc; 16-11-2016 a 12:20

Tag per questa discussione

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.