2016-02-29 58 views
0

我正在尝试使用Servlet + JSP MVC模型,但无法理解我错在哪里。Catch-all servlet和JSP无限循环

我的第一次尝试是一个“包罗万象” @WebServlet应充当“路由器”的所有请求:

@WebServlet(urlPatterns = {"/*"}) 
public class RoutingServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 

     System.out.println(req.getPathInfo());  
     req.getRequestDispatcher("index.jsp").forward(req, res); 
    } 
} 

这给了我的StackOverflowError

如何让servlet从其catch-all中“排除”.jsp?

回答

1

通常你不希望/ *在servlet上映射 - 只是一个过滤器。 '/ *'模式会将所有内容发送到您的servlet。我建议你将* .html(一个逻辑映射)定义为映射,然后转发到位于WEB-INF内部的jsps。

+1

URL模式用例的一个很好的总结: http://stackoverflow.com/questions/4140448/difference-between-and-in-servlet-mapping-url-pattern –