1 22 23 package caramel.util; 24 25 import java.net.*; 26 import houston.*; 27 28 public class UrlQueryTokenizer 29 { 30 static Logger T = Logger.getLogger( UrlQueryTokenizer.class ); 31 private StringBuffer _key; 32 private int _pos; 33 34 private String _query; 35 private StringBuffer _value; 36 37 public UrlQueryTokenizer( String query ) 38 { 39 _query = query; 40 _pos = 0; 41 } 42 43 public String getKey() 44 { 45 return URLDecoder.decode( _key.toString() ); 46 } 47 48 public String getValue() 49 { 50 return URLDecoder.decode( _value.toString() ); 51 } 52 53 public boolean advance() 54 { 55 if( _pos >= _query.length() ) 57 return false; 58 60 62 _key = new StringBuffer (); 63 _value = new StringBuffer (); 64 65 while( _pos < _query.length() ) 67 { 68 char ch = _query.charAt( _pos++ ); 69 if( ch == '=' ) 70 break; 71 else 72 _key.append( ch ); 73 } 74 75 while( _pos < _query.length() ) 77 { 78 char ch = _query.charAt( _pos++ ); 79 if( ch == '&' ) 80 break; 81 else 82 _value.append( ch ); 83 } 84 85 T.debug( "key=" + getKey() ); 86 T.debug( "value=" + getValue() ); 87 88 return true; 89 } 90 } 91 | Popular Tags |