我想知道是否有人遇到过我遇到的这个问题,如果有的话他们是否可以为我提供解决方案。
我有一个“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/