运行tomcat测试项目,浏览器却提示找不到文件的原因

**

运行tomcat测试项目,浏览器却显示找不到文件的原因有哪些

**


1. 将文件直接放置在webapps目录下

我们有时候会直接将jsp文件直接放置在webapps下,如下图所示:

运行tomcat测试项目,浏览器却提示找不到文件的原因

倘若这样放置文件,就会出现 HTTP Status 404 – 未找到 错误,所以,我们一定要在webapps下面建立一个项目,然后放置在项目里面,也就是说正确的访问目录格式应该为:

	http://localhost:8080/项目名称/具体jsp文件
	例如:
	http://localhost:8080/test/example.jsp
	当然,后面的路径还可以继续加,可以在test项目下的某个子项目下的某个特定jsp文件

2. web.xml由冲突

这个导致的上面的问题可能就一下子难以发现,而且我找遍了网上,貌似没有发现有人说明这个原因,但也有可能大神们不会犯这种低级错误。下面就介绍为什么会出现这种问题:

当你学习jsp到了servlet时,你就会知道要给每一个servlet编写部署文件web.xml,如果你是在这个阶段出现这个问题,那恭喜你,你已经找到原因了,那就是你部署的web.xml命名冲突了。
而这个冲突会导致你整个项目都无法在启动tomcat时被tomcat加载运行,所以就会导致无论你访问这个项目下的任何jsp文件都是会报错的。

重名web.xml示例如下:
运行tomcat测试项目,浏览器却提示找不到文件的原因

这就是web.xml,我们用记事本打开,然后找里面是否出现重名,例如下面web.xml代码:

<?xml version="1.0" encoding="UTF-8"?>


<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>word</servlet-name>
        <servlet-class>myservlet.example5_2servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>word</servlet-name>
        <url-pattern>/word</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>triangle</servlet-name>
        <servlet-class>myservlet.example5_3servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>triangle</servlet-name>
        <url-pattern>/triangle</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>word</servlet-name>
        <servlet-class>myservlet.Example5_4_Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>word</servlet-name>
        <url-pattern>/word</url-pattern>
    </servlet-mapping>
   </web-app>

在上面的web.xml中,最开始的servlet和最后面的servlet重名,他们都是word,所以我们只要将其修改成不同就可以了,这个问题就得以解决。