在MyEclipse里正确配置web.xml,可以说是Java Web项目顺利部署的“必经之路”。不少初学者容易在这里踩坑——要么文件存放路径不对,要么遗漏了关键步骤,最终项目启动后出现404或500错误,控制台又没有明确的异常信息,排查起来极为耗时。下面就把这些要点逐一拆解清楚,跟着操作基本不会出错。

先划重点:web.xml必须严格放置在 WebContent/WEB-INF/ 目录下,这是容器识别它的唯一路径。如果放到 src/META-INF/ 或 WEB-INF/classes/ 里,Tomcat会直接忽略,甚至不会给出任何警告。因此第一步,展开项目结构,确认该文件真实存在且路径正确。如果发现缺失,不必慌张,继续往下看。
确认web.xml是否存在且位置正确
展开项目树,找到 WebContent/WEB-INF/ 目录,检查 web.xml 是否确实存放在那里。如果找不到,说明项目创建时未勾选生成部署描述符,或者被误删了。务必牢记:路径是硬性要求,放错位置等同于没有配置。
自动生成web.xml部署描述符
如果文件缺失,有两种补救办法:
- 方法一(推荐):右键点击项目名称 →
Ja va EE Tools→Generate Deployment Descriptor Stub,一秒即可生成。 - 方法二:如果项目尚未创建,在新建项目的向导最后一页,务必勾选“Generate web.xml deployment descriptor”。注意,这个选项后续无法补选,只能重新创建项目。
生成的web.xml默认只包含XML声明和空的根元素 ,内部没有任何组件声明。此时文件已可编辑,可以开始添加配置内容。
通过可视化编辑器配置Servlet映射
双击打开 web.xml,切换到底部的“Design”标签页——进入可视化视图。在左侧树状结构中找到“Servlets”节点,点击右上角的“Add Servlet”图标。在弹出的窗口中填写Servlet名称(例如 HelloServlet)和对应的全限定类名(例如 com.example.HelloServlet),点击OK。
接下来更关键的是:在“Servlet Mappings”节点下点击“Add Servlet Mapping”,选择刚刚添加的Servlet,输入URL模式(例如 /hello),点击OK。这一步绝不能省略——缺少URL映射,浏览器访问对应路径时会直接返回404,而且控制台不会提示Servlet加载失败。保存文件后,MyEclipse会自动将配置同步到源码视图,免去手动修改标签的麻烦。
手动编辑web.xml添加Filter配置
某些场景仍需手写代码,例如添加一个编码过滤器。切换到“Source”标签页,找到文件末尾的 ,在此之前插入Filter定义和映射,顺序必须是先定义后映射,不可颠倒。
EncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 EncodingFilter /*
这里必须核实 filter-class 的路径是否真实存在——类名拼写错误或对应的jar包未添加到build path中,项目发布时不会报错,但请求经过该Filter时会抛出 ClassNotFoundException,且日志只显示“Filter threw exception”,排查起来非常棘手。因此编写完成后务必核对类路径,确保构建路径中包含对应的jar。
