java访问错误404_如何解决 Java web 项目中的 404 错误

在使用 Tomcat 进行 Java Web 开发的时候,经常会遇到以下 HTTP 404 错误:

573dbb6e7ca38d14b1543ce268be28a2.png

错误代码为 HTTP 404(未找到),描述信息是:

“The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.”

此错误表示服务器找不到请求的资源(JSP,HTML,图像等),并返回 HTTP 状态代码404。大多数时候,可以通过更正 URL 来解决此错误。但有的时候并非那么简单。

在这里列出一些可能的原因,以及如何在使用 Tomcat 的 Java Web 开发中修复错误 HTTP 404。

URL 没有任何 Java Servlet 进行处理

检查 servlet 类中的 URL 映射,确保请求的 URL 是由 servlet 处理的。 例如:

@WebServlet("/view_book")

public class ViewBookServlet extends HttpServlet {

...

}

上面的 servlet 可以处理 /view_book。如果请求的 URL 是 /view_books,则服务器将引发 HTTP 404 错误。可以通过更正 URL 或更正 @WebServlet 注解中的 URL 映射来进行修复。

在旧的 Java Web 应用程序中,需要检查 Web 部署描述符文件 web.xml,其中由将 Java servlet 映射到 URL 的配置,如下所示:

ViewBookServlet

/view_book

Java Servlet 转发到不存在的资源

在这种情况下,请求的 URL 由 Java servlet 处理,但是 servlet 随后转发到一个不存在的资源(JSP,HTML…),如下所示:

881cfc850f36274168509a731653ee19.png

servlet 类中的代码如下:

String registerForm = "frontend/registerform.jsp";

RequestDispatcher dispatcher = request.getRequestDispatcher(registerForm);

dispatcher.forward(request, response);

可以更正 servlet 中的转发路径来进行修复,并确保转发的资源确实存在。

网址区分大小写

注意,Tomcat 中的 URL 区分大小写,例如 /Register 与 /register 不同。 因此需要检查请求 URL 中的字母并使用正确的大小写。

还要注意 URL 中的 Web 应用程序名称的大小写,例如 http://localhost:8080/BookstoreWebsite/ 与 http://localhost:8080/BookStoreWebsite/ 是不同的。

最后,不应让用户看到服务器呈现的原始 HTTP 404 错误页面。 而是应该设计自己的用户友好型 404 错误页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值