Java/Spring
request parameter를 서버단에서 추가하기
innocent_k
2015. 4. 27. 10:32
filter단에서 request parameter에 기본적으로 셋팅하고 싶은 정보가 있을때 사용한다.
AddParamHttpRequest.java
public class AddParamHttpRequest extends HttpServletRequestWrapper { private final MapmodifiableParameters; private Map allParameters = null; /** * Create a new request wrapper that will merge additional parameters into * the request object without prematurely reading parameters from the * original request. * * @param request * @param additionalParams */ public AddParamHttpRequest(final HttpServletRequest request, final Map additionalParams) { super(request); modifiableParameters = new TreeMap (); modifiableParameters.putAll(additionalParams); } @Override public String getParameter(final String name) { String[] strings = getParameterMap().get(name); if (strings != null) { return strings[0]; } return super.getParameter(name); } @Override public Map getParameterMap() { if (allParameters == null) { allParameters = new TreeMap (); allParameters.putAll(super.getParameterMap()); allParameters.putAll(modifiableParameters); } // Return an unmodifiable collection because we need to uphold the // interface contract. return Collections.unmodifiableMap(allParameters); } @Override public Enumeration getParameterNames() { return Collections.enumeration(getParameterMap().keySet()); } @Override public String[] getParameterValues(final String name) { return getParameterMap().get(name); } }