SpringMVC初始化之No mapping found for HTTP request with URI

今天刚刚开始写springMVC的helloworld,按着视频一步一步操作,结果出现了以下问题

二月 29, 2020 8:44:36 下午 org.springframework.web.servlet.PageNotFound noHandlerFound
警告: No mapping found for HTTP request with URI [/SpringMVC_02/index.html] in DispatcherServlet with name 'springDispatcherServlet'

细心排查,发现,仅仅是自己将默认的index.jsp(视频中写的是jsp文件)换成了index.html文件

问题原因:处理*.jsp是tomcat做的事,所有项目的web.xml都是继承服务器的web.xml

DefaultServlet是Tomcat处理静态资源的。

除过jsp和servlet外剩下的都是静态资源:

index.html:静态资源,Tomcat就会在服务器下找到这个资源并返回

可以说是,我们的前端控制器的 / 覆盖了服务器中的DefaultServlet

1)服务器的web.xml中有一个DefaultServlet是url-pattern=/

2)我们配置中前端控制器url-patter=/

静态资源会来到DispatcherServlet(前端控制器)看哪那个方法的RequestMapping是这个index.html

3)为什么jsp又能访问;是因为我们没有覆盖服务器中的JspServlet的配置

4)/* 直接就是拦截所有请求

 

解决办法:在web.xml文件中告诉服务器,".html"文件不需要拦截,即在web.xml文件中加上一下语句

<servlet-mapping>
          <servlet-name>default</servlet-name>
          <url-pattern>*.html</url-pattern>
    </servlet-mapping>

 

posted @ 2020-02-29 20:49  老虎很廋  阅读(749)  评论(0编辑  收藏  举报