Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.web; import java.io.IOException; import java.util.Arrays; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.springframework.http.HttpMethod; import org.springframework.web.servlet.DispatcherServlet; import com.enonic.cms.core.servlet.ServletRequestAccessor; import com.enonic.cms.server.service.servlet.OriginalUrlResolver; /** * This class implements a modification of the dispatcher servlet. */ public final class CmsDispatcherServlet extends DispatcherServlet { private final static List<HttpMethod> ALLOWED_HTTP_METHODS = Arrays.asList(HttpMethod.GET, HttpMethod.POST, HttpMethod.HEAD, HttpMethod.OPTIONS); public CmsDispatcherServlet() { setContextConfigLocation(""); } @Override protected void doOptions(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Allow", StringUtils.join(ALLOWED_HTTP_METHODS, ",")); response.setStatus(HttpServletResponse.SC_OK); } protected void doService(HttpServletRequest req, HttpServletResponse res) throws Exception { final HttpMethod requestMethod = HttpMethod.valueOf(req.getMethod()); if (!ALLOWED_HTTP_METHODS.contains(requestMethod)) { res.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED); return; } ServletRequestAccessor.setRequest(req); OriginalUrlResolver.resolveOriginalUrl(req); super.doService(req, res); } }