java - Tomcat6 response.sendRedirect() 404错误

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

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

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

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

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

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

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

我使用的是tomcat 6.0.33

最佳答案

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

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

至于您的具体要求,让index.jsp重定向到其他东西确实没有意义。只需更改 <welcome-file>设置在web.xml成为home.jsp而不是index.jsp .

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

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

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

关于java - Tomcat6 response.sendRedirect() 404错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720245/

相关文章:

java - 判断STDERR是否要到终端

java.io.NotSerializableException 和实现 Serializable

java - 在 jtable 中使用 jquery 的动态字段

magento - Magento 扩展前端出现 404 错误

java - 从方法返回错误代码

java - Spring中@Service注解的作用

node.js - 如何使用Node.js呈现浏览器错误404

jQuery ajax 不会在 404 错误上触发 ajaxStop

java - 如何告诉 gradle 在构建时在项目中安装 npm?

java - apachetiles 3 的动态属性