Ignore:
Timestamp:
07/07/11 11:04:27 (13 years ago)
Author:
sherbold
Message:
  • URI of web sessions is not parsed and split into path and GET parameters; of the GET parameters only the name is used to define the type
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/web/WeblogParser.java

    r78 r111  
    33import java.io.FileNotFoundException; 
    44import java.io.IOException; 
     5import java.net.URI; 
     6import java.net.URISyntaxException; 
    57import java.text.ParseException; 
    68import java.text.SimpleDateFormat; 
     
    4749        } 
    4850         
    49         public void parseFile(String filename) throws IOException, FileNotFoundException, ParseException { 
     51        public void parseFile(String filename) throws IOException, FileNotFoundException, ParseException, URISyntaxException { 
    5052                String[] lines = FileTools.getLinesFromFile(filename); 
    5153                 
     
    6668                        String dateString = values[1]; 
    6769                        long timestamp = dateFormat.parse(dateString).getTime(); 
    68                         String uri = values[2]; 
     70                        String uriString = values[2]; 
    6971                        // String ref = values[3]; // referer is not yet used! 
    7072                        String agent; 
     
    7779                        List<String> postedVars = new ArrayList<String>(); 
    7880                        if( values.length==6 ) { // post vars found 
    79                                 for( String postVar : values[5].split(" ") ) { 
     81                                for( String postVar : values[5].trim().split(" ") ) { 
    8082                                        postedVars.add(postVar); 
    8183                                } 
    8284                        } 
    8385                        if( !isRobot(agent) ) { 
    84                                 WebEvent event = new WebEvent(uri, timestamp, postedVars); 
     86                                URI uri = new URI(uriString); 
     87                                 
     88                                String path = uri.getPath();                             
     89                                List<String> getVars = extractGetVarsFromUri(uri); 
     90                                 
     91                                WebEvent event = new WebEvent(path, timestamp, postedVars, getVars); 
    8592                                 
    8693                                // find session and add event 
     
    141148                return agent.matches(robotRegex); 
    142149        } 
     150         
     151        private List<String> extractGetVarsFromUri(URI uri) { 
     152                List<String> getVars = new ArrayList<String>(); 
     153                String query = uri.getQuery(); 
     154                if( query!=null ) { 
     155                        String[] paramPairs = query.split("&"); 
     156                        for( String paramPair : paramPairs ) { 
     157                                String[] paramSplit = paramPair.split("="); 
     158                                getVars.add(paramSplit[0]); 
     159                        } 
     160                } 
     161                return getVars; 
     162        } 
    143163} 
Note: See TracChangeset for help on using the changeset viewer.