如果报错404一般是因为地址栏的地址不正确,或者路径不匹配导致的。
今天创建web项目的过程中,有几次出现404报错问题,妈的。。。。。。
1.Tomcat报错404
下面是我在各种错误中总结的解决方法,不知道对你有用不。。。一步一步来看。。。。。
1.首先看下上面的错误:
2.一旦发现是上面的错误,首先找配置:
看一下配置中Application context(应用目录)中的内容
3.第一种解决方法:
4.第二种解决方法:
将配置中应用目录斜杠后面的内容去掉,也就是说如果/
后面没有内容,就不用在地址栏加上额外的内容,如果/
后面有内容,就要在地址栏加上相同的内容。
4.再来运行下程序:
如果应用目录/
后面没有内容,那么地址栏也不用加
2.post方式表单提交报错404
login.html文件:
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/demo3" method="post">
<input name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
package Servlet体系结构_02;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/demo3")
public class ServletDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet.....");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost....");
}
}
报错原因:表单提交的地址是localhost:8080/demo3
但是sevlet执行的地址是localhost:8080/14_Servlet_war_exploded/demo3
所以只要一提交就会报错
解决方法:用上面的第二种解决方法,即把Application context中的/
后面的内容去掉
注意:如果想成功的提交表单,Application context中/
后面不要加任何内容
如果是普通的Servlet执行程序,可以Application context中加内容,但在地址栏访问时也要加上相应的内容。
说明:项目的正确路径为:本机地址+端口号+Application context后面的内容
如果报错404,首先检测下项目路径是否正确