Changeset 24007 for main/branches/64_bit_Greenstone/greenstone3/src/java/org/greenstone/gsdl3/OAIServer.java
- Timestamp:
- 2011-05-09T14:37:04+12:00 (13 years ago)
- Location:
- main/branches/64_bit_Greenstone/greenstone3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/branches/64_bit_Greenstone/greenstone3
- Property svn:mergeinfo changed
-
main/branches/64_bit_Greenstone/greenstone3/src/java/org/greenstone/gsdl3/OAIServer.java
r21802 r24007 29 29 import java.util.Enumeration; 30 30 import java.util.HashSet; 31 import java.util.Iterator; 32 import java.util.Map; 33 import java.util.Map.Entry; 31 34 import java.io.File; 32 35 … … 78 81 protected String oai_stylesheet = "interfaces/oai/oai2.xsl"; 79 82 83 // there is no getQueryString() method in the HttpServletRequest returned from doPost, 84 // since that is actually of type apache RequestFacade, and doesn't define such a method 85 protected String queryString = null; 86 80 87 static Logger logger = Logger.getLogger(org.greenstone.gsdl3.OAIServer.class.getName()); 81 88 … … 223 230 String usageInfo = ""; 224 231 232 String query = (queryString == null) ? request.getQueryString() : queryString; 233 225 234 //logged info = general-info + session-info 226 235 usageInfo = 227 236 request.getContextPath()+" "+ //session id 228 237 request.getServletPath()+" "+ //serlvet 229 "["+ request.getQueryString()+"]" +" "+ //the query string238 "["+query+"]" +" "+ //the query string 230 239 "["+usageInfo.trim()+"]" +" "+ // params stored in a session 231 240 request.getRemoteAddr()+" "+ //remote address … … 256 265 return query.substring(verb_start_index, verb_end_index); 257 266 } 267 258 268 public void doGet(HttpServletRequest request, HttpServletResponse response) 259 269 throws ServletException, IOException { … … 276 286 //For example, puka.cs.waikato.ac.nz vs www.greenstone.org 277 287 //String base_url = request.getRequestURL().toString(); 278 String query = request.getQueryString(); 288 // if called by doPost (if this was originally a POST request), var queryString would have been set 289 String query = (queryString == null) ? request.getQueryString() : queryString; 290 queryString = null; // reset member variable, else no doGet will work as long as the server remains running 291 279 292 String[] pairs = (query==null)? null : query.split("&");//split into key/value pairs 280 293 String verb = getVerb(query); … … 377 390 } 378 391 } 392 393 // For OAI version 2.0, validation tests indicated that POST needs to be supported. Some 394 // modification was required in order to ensure that the request is passed intact to doGet() 379 395 public void doPost(HttpServletRequest request, 380 396 HttpServletResponse response) 381 397 throws ServletException, IOException { 398 399 // the post method returns a wrapper of type RequestFacade by apache and there 400 // is no getQueryString() method defined for it. Therefore, need to work this out 401 // manually before calling doGet(request, response) so that doGet can work as before. 402 403 queryString = ""; 404 Iterator parameter_entries = request.getParameterMap().entrySet().iterator(); 405 while(parameter_entries.hasNext()) { 406 Map.Entry param_entry = (Map.Entry)parameter_entries.next(); 407 String[] paramVals = (String[]) param_entry.getValue(); 408 if(paramVals != null) { 409 if(paramVals.length > 0) { 410 logger.error("POST request received: " + param_entry.getKey() + " - " + paramVals[0]); 411 queryString = queryString + "&" + param_entry.getKey() + "=" + paramVals[0]; 412 } 413 } 414 } 415 if(queryString.length() > 0) { 416 queryString = queryString.substring(1); 417 //queryString = OAIXML.oaiEncode(queryString); 418 } 419 if(queryString.equals("")) { 420 queryString = null; 421 } 382 422 doGet(request,response); 383 423 }
Note:
See TracChangeset
for help on using the changeset viewer.