public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		if("getParameter".equals(method.getName())) {
			String value = (String) method.invoke(this.request, args);
			
			if(value==null) {
				return null;
			}
			
			if("get".equalsIgnoreCase(this.request.getMethod())) {
				try {
					value = new String(value.getBytes(this.filterConfig.getInitParameter("server-encoding")), this.filterConfig.getInitParameter("context-encoding"));
				} catch (UnsupportedEncodingException e) {
					throw new RuntimeException(e);
				}
			}
			
			return value;
		}
		return method.invoke(this.request, args);
	}