SendRedirect 后未找到 JSP

标签 jsp tomcat

我的 JSP 的位置是 src/webcontent/WEB-INF/jsp/sessionTimeout.jsp

在我从过滤器执行如下 sendRedirect 后,找不到它。我已经尝试过这些组合:

((HttpServletResponse)response).sendRedirect("/WEB-INF/jsp/sessionTimeout.jsp");
((HttpServletResponse)response).sendRedirect("sessionTimeout.jsp");
((HttpServletResponse)response).sendRedirect("jsp/sessionTimeout.jsp");
((HttpServletResponse)response).sendRedirect(((HttpServletRequest)request).getContextPath() +  "/jsp/sessionTimeout.jsp");

404 错误。代码:

public class SpringMVCControllerFilter implements Filter
{

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException         
{
        if (session.isValid() && !session.isNew())
        {
            chain.doFilter(request, response);
        }
        else
        {             ((HttpServletResponse)response).sendRedirect("jsp/sessionTimeout.jsp");
        }


    }
}

最佳答案

WEB-INF 下的所有内容都是故意无法从外部访问的。把它放在任何你喜欢的地方,除非你想从浏览器访问它。

JSP 通常放在 WEB-INF 下,因为 JSP 是 View ,请求应该始终发送到准备模型并分派(dispatch)到 View 的 Controller 。

关于SendRedirect 后未找到 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35636386/

相关文章:

Java EE Tomcat DefaultServlet 扩展不适用于静态文件

spring - 在 tomcat 7.0 中初始化缓存 connectionfactory 时出错

java - servlet doGet通过servlet注解调用启动两次

java - 带有 :errors tag 形式的 Spring JSR-303

eclipse - 如何将 Eclipse TODO 添加到 JSP

java - 在 IntelliJ 中添加一个 servlet,说包 javax.servlet.http 不存在

java - 像 Web App 或 Servlet 一样部署 Web 服务

javax.el.PropertyNotFoundException : Property 'EmailAddress' not found on type com. iid.users.model.UsersPrimary

html - 如何在网页上用JSP标签编写的无序列表应用CSS

c# - 为希望在 JSP+Tomcat 中构建的 ASP.NET/C# 开发人员预订推荐信?