该
/*URL模式涵盖 一切,还转发的JSP文件和类似CSS/JS/图像静态资源。您不想在前端控制器servlet上使用它。
将您的控制器Servlet保持在更具体的URL模式上,例如
/pages/*。您可以通过将静态资源分组到一个常见的文件夹(例如
/resources创建一个
Filter映射到该文件夹中并
/*在该
doFilter()方法中执行以下工作)中的静态资源,来达到消除URL中“/ pages”的功能要求:
HttpServletRequest req = (HttpServletRequest) request;String path = req.getRequestURI().substring(req.getContextPath().length());if (path.startsWith("/resources/")) { // Just let container's default servlet do its job. chain.doFilter(request, response);} else { // Delegate to your front controller. request.getRequestDispatcher("/pages" + path).forward(request, response);}默认情况下,转发的JSP资源将不匹配此过滤器,因此它将由容器自己正确地拾取
JspServlet。



