(个人经验,仅供参考,错误之处,敬请谅解)
出现错误
运行Tomcat服务器后,访问/login.html 报http 405 错误,Resquest method get not supported (web.xml配置拦截所有请求)
原因
因请求的资源和所需要拦截处理的路径名相同,且设置了methodrequest,则另一种请求被拒绝。
解决方法
- 修改拦截路径名,例如"/loginUser"(处理用户登录),则访问login.html,不会被拦截,只会当作静态资源文件处理 【推荐】
- 对该路径名的两种请求方式get、post,分别进行处理,get跳转一个页面(该页面同样不能和本路径名相同,否则陷入死循环导致栈溢出),post进行处理再进行跳转。
- 最简单不用动脑的方法, 将所有需要拦截的路径名后缀为 .do,同时修改配置文件拦截.do的请求,则所有静态资源直接访问且不会与拦截的路径名冲突。如果不修改配置文件的话,本人没有尝试,可能也会导致冲突。