【问题标题】:Tomcat6 response.sendRedirect() 404 errorTomcat6 response.sendRedirect() 404 错误
【发布时间】:2012-01-03 23:41:45
【问题描述】:

我想知道是否有人遇到过我遇到的这个问题,如果有,他们是否可以为我提供解决方案。

我有一个位于 WEB-INF 文件夹之外的“index.jsp”页面,包含以下代码:

<html>
   <body>
      <%response.sendRedirect("home.htm");%>
   </body>
</html>

页面应重定向到位于 WEB-INF 文件夹内的“home.jsp”。

我遇到的问题是,当我使用 Eclipse 在 tomcat 中部署我的应用程序时,重定向有效!

但是,当我通过从 tomcat/bin 文件夹中运行“startup.sh”在 tomcat 中启动我的应用程序时,我收到“HTTP 状态 404”错误。

我使用的是 tomcat 6.0.33

【问题讨论】:

    标签: java jsp http-status-code-404 tomcat6


    【解决方案1】:

    /WEB-INF 文件夹中的文件不可公开访问。该文件夹用于存放不应由网络浏览器直接访问的资源,例如 JSP 包含文件、需要预处理的 JSP 文件(前端控制器)servlet 等。

    您的home.jsp 似乎只是一个普通的JSP 文件,旨在通过URL 直接访问。因此,将其放在/WEB-INF 文件夹之外。这样它就可以通过http://localhost:8080/context/home.jsp 获得。

    至于你的具体要求,让index.jsp 重定向到别的东西真的没有意义。只需将web.xml 中的&lt;welcome-file&gt; 设置更改为home.jsp 而不是index.jsp

    <welcome-file-list>
        <welcome-file>home.jsp</welcome-file>
    </welcome-file-list>
    

    这样,当最终用户不指定任何资源文件直接访问http://localhost:8080/context文件夹时,home.jsp将被打开。

    哦,请注意.htm 扩展名与.jsp 扩展名不同。如有必要,也相应地修复它。

    【讨论】:

      【解决方案2】:

      如果你想重定向到'home.jsp',你必须写'home.jsp'作为sendRedirect参数。

      【讨论】:

        【解决方案3】:

        首先,要转到的初始页面在 web.xml 文件中由元素控制。在独立的 Tomcat 中,默认为 /index.html,然后是 /index.htm,最后是 /index.jsp。

        可能是当您从 Eclipse 中启动 tomcat 时,Web 插件使用默认的 web.xml 做自己的事情,因此默认值可能略有不同。

        其次,如果您只想将 index.jsp 重定向到 home.htm,则不应使用 HTML 标记标签包装 scriptlet。如果 tomcat 决定在执行您的 scriptlet 之前刷新输出,则 sendRedirect() 方法将被忽略,因为 HTTP 标头已被写入。

        最后,我假设您在 Web 应用程序中设置了某种映射来处理“home.htm”请求并转发到 home.jsp?

        【讨论】:

          【解决方案4】:

          sendRedirect 的参数是home.htm 时,您为什么希望它重定向到home.jsp?有错别字吗?如果该文件实际上位于WEB-INF 下,则浏览器将无法访问它。将WEB-INF 的内容暴露给全世界将打开许多潜在的安全漏洞。如果您希望 home.jsp 包含 WEB-INF/home.htm 的内容,则需要执行以下操作:

          <jsp:include page="/WEB-INF/home.htm" />
          

          【讨论】:

            猜你喜欢
            • 2011-12-09
            • 2015-01-19
            • 2010-12-21
            • 2012-08-27
            • 2013-07-09
            • 2011-10-02
            • 1970-01-01
            • 2018-06-20
            • 2011-07-04
            相关资源
            最近更新 更多