- Timestamp:
- 2011-04-16T20:16:19+12:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/OAIServer.java
r21802 r23913 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; 279 290 String[] pairs = (query==null)? null : query.split("&");//split into key/value pairs 280 291 String verb = getVerb(query); … … 377 388 } 378 389 } 390 391 // For OAI version 2.0, validation tests indicated that POST needs to be supported. Some 392 // modification was required in order to ensure that the request is passed intact to doGet() 379 393 public void doPost(HttpServletRequest request, 380 394 HttpServletResponse response) 381 395 throws ServletException, IOException { 396 397 // the post method returns a wrapper of type RequestFacade by apache and there 398 // is no getQueryString() method defined for it. Therefore, need to work this out 399 // manually before calling doGet(request, response) so that doGet can work as before. 400 401 queryString = ""; 402 Iterator parameter_entries = request.getParameterMap().entrySet().iterator(); 403 while(parameter_entries.hasNext()) { 404 Map.Entry param_entry = (Map.Entry)parameter_entries.next(); 405 String[] paramVals = (String[]) param_entry.getValue(); 406 if(paramVals != null) { 407 if(paramVals.length > 0) { 408 logger.error("POST request received: " + param_entry.getKey() + " - " + paramVals[0]); 409 queryString = queryString + "&" + param_entry.getKey() + "=" + paramVals[0]; 410 } 411 } 412 } 413 if(queryString.length() > 0) { 414 queryString = queryString.substring(1); 415 //queryString = java.net.URLEncoder.encode(queryString,"UTF-8"); 416 } 417 if(queryString.equals("")) { 418 queryString = null; 419 } 382 420 doGet(request,response); 383 421 }
Note:
See TracChangeset
for help on using the changeset viewer.