IntelliJ创建Maven Servlet项目:访问路径异常疑问
问题分析与解决
这不是正常行为,说明你的Servlet映射或项目配置存在问题,以下是常见原因和修复方案:
1. Servlet映射同时包含根路径和指定路径
检查你的Servlet配置(web.xml或者注解),看是否给DemoServlet同时配置了多个映射路径:
- 如果用注解:查看
@WebServlet注解的urlPatterns是否同时包含"/"和"/DemoServlet",示例错误代码:
只需保留@WebServlet(urlPatterns = {"/", "/DemoServlet"}) public class DemoServlet extends HttpServlet { ... }"/DemoServlet"即可解决。 - 如果用web.xml:检查是否存在多个
<url-pattern>指向同一个Servlet,示例错误配置:
删除<servlet-mapping> <servlet-name>DemoServlet</servlet-name> <url-pattern>/</url-pattern> <url-pattern>/DemoServlet</url-pattern> </servlet-mapping><url-pattern>/</url-pattern>这一行,仅保留指定路径的映射。
2. 项目默认欢迎页被配置为Servlet
Tomcat默认会加载index.jsp、index.html这类欢迎页,若你的项目在web.xml里把欢迎页设为DemoServlet,会导致根路径直接访问到该Servlet:
检查web.xml中的<welcome-file-list>配置,示例错误配置:
<welcome-file-list> <welcome-file>DemoServlet</welcome-file> </welcome-file-list>
删除该配置或恢复为默认欢迎页(如index.jsp)即可。
3. 误将DemoServlet设为Tomcat默认Servlet
Tomcat自带的默认Servlet负责处理静态资源和未匹配的请求,若你把DemoServlet的映射设为"/",会覆盖默认Servlet,导致所有未匹配的请求都走它。修复方式是将DemoServlet的映射改为"/DemoServlet",避免使用"/"。
验证修复
修改配置后重启Tomcat:
- 访问
http://localhost:8080应显示Tomcat默认页面或项目自定义欢迎页(如有) - 仅访问
http://localhost:8080/DemoServlet时才会显示"Hello World!"
内容的提问来源于stack exchange,提问作者Doldrums
相关产品推荐
相关产品推荐

