java - Catch-all servlet 和 JSP 无限循环

标签 java jsp servlets

我正在尝试Servlet+JSP MVC模型,但不明白我错在哪里。

我的第一次尝试是“包罗万象”的@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 从其包罗万象中“排除”.jsp?

最佳答案

通常您不需要 servlet 上的/* 映射 - 只是一个过滤器。 '/*' 模式会将所有内容发送到您的 servlet。我建议您定义诸如 *.html (逻辑映射)之类的内容作为您的映射,然后转发到 WEB-INF 中的 jsps。

关于java - Catch-all servlet 和 JSP 无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35703761/

相关文章:

java - 我该如何修复 'android.os.NetworkOnMainThreadException' ?

java - 如何在 $TOMCAT_HOME/logs 中为我的 servlet 创建命名日志?

tomcat - Tomcat 服务器作为另一个 Tomcat 服务器的代理时的 JSESSIONID 问题

Java drawLine() 方法不将类变量作为输入

java - 如何在不使用数据库的情况下在Android中查看拍摄的照片?

java - HTTPClient 给 404 没有 www 的 url

java - JSTL c :set condition

java - 日期值无法正确显示

Java读取和编码大型二进制文件

java - org.hibernate.LazyInitializationException : could not initialize proxy -no Session