出现问题
使用maven创建javaweb项目,设置servlet后,出现无法访问的情况。
初步检查
初步检查发现,在web.xml中配置servlet和servlet-mapping时这个错误可以避免。
但是如果依靠注释@WebServlet(name = "LoginServlet", value = "/Login")
则总会报错失败。
深度分析
和非maven项目的已成功的servlet进行对比,发现使用的servlet不一样,来自不同的包,分别javax.servlet和jakarta.servlet。
使用import jakarta.servlet.*;
系列包则不会这个错误。
javax.servlet和jakarta.servlet
为了能够继续发展,原始的javax.servlet包已经迁移到了jakarta.servlet包。新的jakarta.servlet包是javax.servlet包的完全向后兼容的替代品,它包含了所有原始包中的类和接口。