JavaEE 8 + Tomcat 8.5 首个Servlet遇404错误,求解决方法
嘿,刚看完你的问题,第一次写Servlet碰到404确实很头疼,咱们结合你的代码和配置一步步来排查:
先确认访问路径是否正确
你现在用localhost:8080/hello访问,但Tomcat默认会把项目名称作为上下文路径。比如如果你的项目叫FirstServlet,正确的访问路径应该是localhost:8080/FirstServlet/hello。很多新手容易忽略这个点,直接访问根路径下的hello,自然找不到资源。检查Servlet类的编译与部署位置
确保你的Hello.java编译后的.class文件已经出现在项目的WEB-INF/classes/Test/目录下。Tomcat必须能找到这个编译后的类才能加载Servlet,如果.class文件缺失或者路径不对(比如包名目录写错),就会触发404。
如果你用IDE开发,记得确认IDE是否自动把编译后的类同步到了Tomcat的webapps目录对应的项目文件夹里。核对web.xml配置的细节
你的web.xml配置看起来没问题,但要注意几个大小写敏感的点:<servlet-class>里的Test.Hello要和实际Java文件的包名、类名完全一致(比如包名是不是小写的test而不是Test?Java对大小写很严格)。- 确认web.xml文件确实放在
WEB-INF/目录下,位置错了Tomcat根本读不到配置。
查看Tomcat启动日志
打开Tomcat的控制台或者logs/catalina.out日志文件,看看有没有类似ClassNotFoundException的报错。如果有,那就是类找不到的问题,回到第二步检查.class文件的位置。另外也要确认Tomcat的8080端口没有被其他程序占用,导致服务没正常启动。
最后给个小优化建议:在你的doGet方法里加上res.setContentType("text/html;charset=UTF-8");,避免后续出现中文乱码的问题~
内容的提问来源于stack exchange,提问作者user8799994

