在eclipse中启动servlet报错500 404

时间:2022-03-28 06:45:14

        博主近来学习JSP,在eclipse中创建servlet调试时出现问题,于是,不停地百度,不停地创建项目,然后删了再建,建了再删,搞得头都大了,最后发现问题出在一个小地方。在这里,博主很想吐槽一下网上的一些解决方法的贴子,不知道是转载还是怎么滴,几乎是千篇一律,都说的差不多,这样也就罢了,问题是还写的不详细,具体怎么做也没说清楚。所以,一方面博主想把自己解决问题的方法记录下来,以便后面查阅,另一方面,把遇到的问题跟解决方法和大家分享,希望大家少走弯路。问题的解决是一个过程,说遇事不要急躁纯属扯淡,如果遇到个问题,搞大半天搞不出来,谁能不急?急躁在所难免,但莫要轻易放弃,当你经过重重困难,最后把问题解决的时候,那种欣喜乐趣只有你自己能明白。

        下面说正题,博主是在eclipse中配置tomcat,创建Dynamic Web Project,怎么配置tomcat,怎么创建项目,相信大家都没问题,博主只把其中要注意的一些地方写下来,当然,解决问题的方法可能不唯一。

注意:

博主已经改变了部署目录,可参考点击打开链接

给出博主的项目结构:

在eclipse中启动servlet报错500 404

1 当博主创建完servlet文件,配置好web.xml文件后,运行的时候发现报错500,按道理servlet会被编译成class文件,但我在workspace的项目目录下没有找到。

注意:

如果此时报错500并且没有结束运行中的程序,再去点运行时,会报错404,建议每次运行完,关掉程序。

解决:

在eclipse的菜单栏点击Project,选中Build Automatically,选中后会有打勾。

2 之后在workspace的项目目录下找到了编译好的class文件,但是出现在项目/build/classes中,博主的目录是C:\Users\lenovo\workspace\TomcatTest\build\classes\com\test\TestServlet.class,而在tomcat安装目录下却没有找到编译好的class文件。

解决:

在eclipse中启动servlet报错500 404

在eclipse中,右键点击创建的项目,Properties——Java Build Path——Source,将Default output folder的路径TomcatTest/build/classes,改为TomcatTest/WebContent/WEB-INF/classes,点击OK。

这样就可以在tomcat安装目录下找到编译好的class文件,博主的目录是E:\apache-tomcat-9.0.0.M22\webapps\Tomcat\WEB-INF\classes\com\test\TestServlet.class。

3 再次运行,还是报错500,程序抛出异常ClassNotFoundException。

注意:

如果再次运行,出现下图问题:

在eclipse中启动servlet报错500 404

删掉刚刚在tomcat安装目录下生成的class文件,即可启动tomcat服务。

博主的问题是出在web.xml文件的配置上,

<servlet>
        <!-- 类名 -->
    <servlet-name>TestServlet</servlet-name>
    <!-- 所在的包 -->
    <servlet-class>com.test.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <!-- 访问的网址 -->
    <url-pattern>/TestServlet</url-pattern>
    </servlet-mapping>

解决:

博主最后发现是<url-pattern>/TestServlet</url-pattern>这一行的问题,这一行是配置浏览器中访问servlet的地址,

一种方法是改为:/testServlet

用小写开头。

另一种方法是改为:/TomcatTest/TestServlet

/项目名/servlet文件的类名

当然,/TomcatTest/testServlet这样也可以。

博主改了web.xml文件后就可以正常运行了!