除了本例出现的错误原因外,还有其他的原因,比如web.xml出错
正常配置了web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>MyFirstServlet</servlet-name>
<servlet-class>servlet.MyFirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyFirstServlet</servlet-name>
<url-pattern>/myfirstservlet</url-pattern>
</servlet-mapping>
</web-app>
我的index.html和Servlet实现类
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页</title>
</head>
<body>
<div>
<a href="myfirstservlet">连接</a>
<form action="myfirstservlet" method="post">
<input type="submit" value="注册">
</form>
</div>
</body>
</html>
package servlet;
import javax.servlet.*;
import java.io.IOException;
public class MyFirstServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("MyFirstServlet worked...");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
错误示范:
首先是500错误,后来变成了404错误。
查看自己在环境变量中配置的jdk版本为8,但是在idea中使用的是11版本
由于tomcat是需要依赖环境变量中的jdk的,所以这样会导致出现错误。需要将idea中的jdk版本更改为8.
这样便解决了问题