SpringMVC请求html页面报出406问题及解决方案

在尝试将项目升级为SpringMVC框架时,遇到访问HTML页面返回406错误的问题。虽然静态资源请求已配置过滤,但登录请求仍被SpringMVC的DispatchServlet处理,导致前端因请求头和响应头类型不匹配而无法解析。解决方法是在web.xml中配置Tomcat默认Servlet,让所有.html结尾的请求通过默认Servlet处理,避免SpringMVC介入。
摘要由CSDN通过智能技术生成

刚学习完SpringMVC框架,为了巩固,打算将之前的项目升级成SpringMVC项目,却遇到了地址栏提交/admin/login.html请求访问登录页面却返回406的问题,但是,却可以访问其他静态资源网页。

这里有个前提,我的Controller中的登录方法的请求url是/admin/login

我在springmvc的配置文件中明确配置了
<mvc:default-servlet-handler/>
以过滤静态资源请求,为什么还会出现这样的问题

一般情况下返回406,是因为后台接收到了请求并返回了响应,但是浏览器无法解析响应的内容而报出406,也就是说,login.html这个请求被SpringMVC的DispatchServlet处理了,我认为,不是springmvc没有过滤静态资源,而是它将/admin/login.html这个请求当做了/admin/login,从而调用了我的登录方法,返回了JSON到前端,前端由于请求头和响应头的返回类型不同而导致无法解析,从而报出406。

那么现在问题就明确了,只要让这个请求不走DispatcherServlet就好了,解决方案:

在web.xml中配置tomcat默认的servlet,并且设定所有以.html结尾的请求都走默认的servlet即可

<servlet-mapping
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值