servle映射xml配置如下:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.vae.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
那么Tomcat是如何解析我们写的xml的呢?
Tomcat服务器接收到浏览器的访问时,会先去webapps这个目录下找到该访问的目标Servlet所在的工程目录,然后在此工程目录下找到WEB-INF目录,询问此目录下的web.xml文件,会在此文件中先寻找到标签所声明的内容,再找到与此标签相对应的标签里声明的Servlet操作类。寻找到后就会去classes目录下找到这个Servlet操作类,接着就会实例化此操作类的对象。
如果你创建的不是web.xml或者没有放在固定的位置,即使你把你的配置信息写到index.xml或者其他xml文件中当然就会报404找不到资源。
为什么会报404呢?
Tomcat下conf目录下本身具有含一个web.xml文件,对web应用服务的默认值进行定义。
这段话的意思是:这是所有web程序的默认Servlet,为什么敢这么说,我们接着往下看
于它对应的url为“/”,这是最原始的路径的表达方式,我们知道,一个Servlet可以配置多个url但是又会有优先级,即包含路径范围最大的优先级最低,很明显他的优先级最低,即当访问不到其他资源的时候,执行它,即404。
那么为了避免上述情况,我们需要如下操作
如何自动生成web.xml文件
方法一:如下
方法二:生成web项目时,选择中