Tomcat6 response.sendRedirect()404错误

2019年11月20日 48点热度 0条评论

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

我有一个'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文件夹中的文件不可公开访问。该文件夹专用于不应由Web浏览器直接访问的资源,例如JSP包含文件,需要预处理(前端控制器)servlet的JSP文件等。

您的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>

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

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