/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.web.filter.render; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ewcms.core.site.model.Site; import com.ewcms.web.util.EwcmsContextUtil; /** * 返回资源 * * @author wangwei */ public abstract class AbstractResourceRender implements Renderable { private static final Logger logger = LoggerFactory .getLogger(AbstractResourceRender.class); protected String getPath(HttpServletRequest request) { String uri = request.getRequestURI(); logger.debug("404's uri is {}", uri); String contextPath = request.getContextPath(); logger.debug("ContextPath is {}", contextPath); return uri.replace(contextPath, ""); } protected boolean skip(HttpServletRequest request,HttpServletResponse response){ Site site = EwcmsContextUtil.getCurrentSite(); return site == null; } /** * 输出指定的资源 * * @param response * @param uri 资源地址 * @return true 返回资源 * @throws IOException */ protected abstract boolean output(HttpServletResponse response,String uri)throws IOException; @Override public boolean render(HttpServletRequest request,HttpServletResponse response)throws IOException { if(skip(request,response)){ return false; } String uri = getPath(request); logger.debug("Resource path is {}",uri); return output(response,uri); } }