You can use Filter to modify httprequestparameter value. Watchout the implementation:
Web.xml
<filter> <description>check request for service token</description> <filter-name>CustomFilter</filter-name> <filter-class>com.filters.CustomFilter</filter-class> </filter> <filter-mapping> <filter-name>CustomFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Create a Filter Class:
public class CustomFilter implements Filter { String encoding; public void init(FilterConfig config) throws ServletException { encoding = config.getInitParameter("requestEncoding"); if (encoding == null) { encoding = "UTF-8"; } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException { // next handler System.out.println("accessed"); filterChain.doFilter(new CustomFilterWrapper((HttpServletRequest)request),(HttpServletResponse)response); } public void destroy() { } }
Create a CustomFilterWrapper where you override getParameter method to modify certain request parameter. In my case I change value if the request param is maverick.
public class CustomFilterWrapper extends HttpServletRequestWrapper { public CustomFilterWrapper(HttpServletRequest request) { super(request); } @Override public String getParameter(String name) { String[] vals = getParameterMap().get(name); if (name.equalsIgnoreCase("maverick")) { return "modify value"; } else if (vals != null && vals.length > 0) { return vals[0]; } else { return null; } } }