• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
流白的日记
博客园    首页    新随笔    联系   管理    订阅  订阅

一个404异常信息的解决方案

  以前使用Spring Mvc时候都是返回jsp页面,今天想返回html页面,

结果一直报页面一直报404,log日志报Did not find handler method for [/index.html],但是改成jsp就可以正常运行了。

原因是:

servlet容器通过这个请求的流程如下:

  1. 首先由Servlet容器调用DispatcherServlet。
  2. DispatcherServlet找到映射到Controller的home方法的映射,home方法返回一个视图名称“HelloWorld”
  3. 现在DispatcherServlet使用一个View Resolver(你的InternalResourceViewResolver)来查找视图来渲染模型,因为名称是“HelloWorld”,它映射到/WEB-INF/view/HelloWorld.html视图。
  4. 现在基本上是打电话了 RequestDispatcher.forward("/WEB-INF/views/HelloWorld.html",....
  5. 此时的Servlet容器试图寻找它可以处理servlet的/WEB-INF/views/HellowWorld.htmlURI -如果它一直是.jsp有一个JSPServlet注册,它可以处理渲染JSP,但是,对于*.html没有注册的servlet,所以通话结束了的"default servlet",这是注册一个/可能是你的DispatcherServlet 的servlet映射。
  6. 现在分派器servlet没有找到一个控制器来处理请求/WEB-INF/views/HelloWorld.html,因此也就是你看到的消息

如果你想要这种类型的扩展被servlet容器处理,比如说tomcat,你可以注册*.html扩展来被JSPServlet处理,然后它应该干净地工作。或者返回forward:/resources/HelloWorld.html哪个将被视为相对于您的resources文件夹的静态文件。

 

解决方案:

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

 

再次运行就可以了!!!

posted @ 2018-02-05 17:11  流白的日记  阅读(116)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3