tomcat 为什么老是显示旧的页面

该博客为转载内容,转载自https://www.cnblogs.com/bobomail/archive/2005/03/25/125357.html ,涉及Java相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 tomcat 的目录下 有个work 目录 做页面缓存,这个实在是太滥了

转载于:https://www.cnblogs.com/bobomail/archive/2005/03/25/125357.html

### Tomcat 404 跳转错误原因及解决方法 Tomcat 服务器在处理请求时,如果返回 404 错误,通常表示请求的资源未找到。以下是可能导致 404 错误的原因及相应的解决方法: #### 1. 文件路径配置错误 将文件直接放置在 `webapps` 根目录下可能导致 404 错误[^1]。Tomcat 默认不会将根目录作为应用上下文路径的一部分。 **解决方法**:创建一个子目录(如 `test`),将目标文件(如 `b.html`)放入该目录中,并通过正确的 URL 访问,例如:`http://localhost:8080/test/b.html`。 #### 2. Servlet API 版本不匹配 较新的 Tomcat 版本(如 10.x)使用了 `jakarta.servlet-api` 替代了版的 `javax.servlet-api`[^5]。如果项目仍依赖版的 `javax.servlet-api`,则可能导致对象创建失败,从而引发 404 错误。 **解决方法**:更新 Maven 依赖为 `jakarta.servlet-api` 或降级 Tomcat 至 8.5 或 9.x 版本[^4]。 #### 3. 请求路径与映射不匹配 在 Servlet 中定义的路径映射可能与实际访问路径不符。例如,在 `doGet` 方法中未正确设置响应内容类型或路径[^3]。 **解决方法**:确保 Servlet 的 `@WebServlet` 注解或 `web.xml` 中的 `<url-pattern>` 配置与访问路径一致。以下是一个示例: ```java @WebServlet("/example") public class ExampleServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=UTF-8"); resp.getWriter().write("<h1>Hello World</h1>"); } } ``` #### 4. 应用未正确部署 如果应用未被正确部署到 Tomcat 的 `webapps` 目录下,或者部署后未生成 `ROOT` 目录,则可能导致 404 错误。 **解决方法**:检查 `webapps` 目录下是否包含应用的 `.war` 文件或解压后的目录结构。如果需要设置默认应用,可以将应用重命名为 `ROOT`[^1]。 #### 5. 自定义错误页面配置错误 Tomcat 的错误报告阀(ErrorReportValve)可能未正确配置,导致自定义错误页面无法正常显示[^2]。 **解决方法**:在 `server.xml` 中添加以下配置: ```xml <Valve className="org.apache.catalina.valves.ErrorReportValve" errorCode.400="webapps/ROOT/server_error.html"/> ``` 确保指定的错误页面路径存在且可访问。 --- ### 总结 Tomcat 404 错误的主要原因包括文件路径配置错误、Servlet API 版本不匹配、请求路径与映射不匹配、应用未正确部署以及自定义错误页面配置错误。根据具体问题选择合适的解决方法。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值