protected static String getParameter(HttpServletRequest request, String[] aliases) {
		final String sourceMethod = "getParameter"; //$NON-NLS-1$
		boolean isTraceLogging = log.isLoggable(Level.FINER);
		if (isTraceLogging) {
			log.entering(sourceClass, sourceMethod, new Object[]{request.getQueryString(), Arrays.asList(aliases)});
		}
		Map<String, String[]> params = request.getParameterMap();
		String result = null;
		for (Map.Entry<String, String[]> entry : params.entrySet()) {
			String name = entry.getKey();
			for (String alias : aliases) {
				if (alias.equalsIgnoreCase(name)) {
					String[] values = entry.getValue();
					result = values[values.length-1];	// return last value in array
				}
			}
		}
		if (isTraceLogging) {
			log.exiting(sourceClass, sourceMethod, result);
		}
		return result;
	}
protected static String getParameter ( HttpServletRequest request , String [ ] aliases ) { final String sourceMethod = "getParameter" ; boolean isTraceLogging = log . isLoggable ( Level . FINER ) ; if ( isTraceLogging ) { log . entering ( sourceClass , sourceMethod , new Object [ ] { request . getQueryString ( ) , Arrays . asList ( aliases ) } ) ; } Map < String , String [ ] > params = request . getParameterMap ( ) ; String result = null ; for ( Map . Entry < String , String [ ] > entry : params . entrySet ( ) ) { String name = entry . getKey ( ) ; for ( String alias : aliases ) { if ( alias . equalsIgnoreCase ( name ) ) { String [ ] values = entry . getValue ( ) ; result = values [ values . length - 1 ] ; } } } if ( isTraceLogging ) { log . exiting ( sourceClass , sourceMethod , result ) ; } return result ; }
Returns the value of the requested parameter from the request, or null

@param request
the request object
@param aliases
array of query arg names by which the request may be specified
@return the value of the param, or null if it is not specified under the
specified names