springmvc开发rest接口时支持“请求的URI地址不存在”-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

springmvc开发rest接口时支持“请求的URI地址不存在”

简介: springmvc开发rest接口时支持“请求的URI地址不存在”

我大体了解到三种解决办法

第一种是从在web.xml中配置errorcode的404配置

(一般的做法是配置一个跳转页面,如果是网站的话,就搞一个404界面友好的提示,如果是接口的话可以在页面上请求一个404的controller返回提示数据,但是有个弊端是浏览器的地址栏会变成这个404的controller地址,而不是用户原访问地址)

第二种是从springmvc源码出发,追溯springmvc在找不到请求url的时候是怎么分发请求的,重写分发器,改写404的方法即可

但是以上两种我个人感觉在对springmvc开发rest接口时并不实用,或者说太复杂。

第三种就是根据springmvc的特点:精确匹配,也就是当用户访问/project/test/a时不会进入到/project/test/*这个controller,就从这里下手。

写一个controller如下:

@Controller
public class ErroerController extends PublicMethod{

@RequestMapping(value={"/","/*"})
public @ResponseBody Map<String,Object> error(HttpServletRequest request)throws Exception{
Map<String,Object> rmap = new HashMap<String,Object>();
rmap.put("status", false);
rmap.put("message", "请求的URI地址不存在");
return rmap;
}

}

"/"的话只能匹配一个单个的"/",而"/*"可以满足所有的不存在的url地址进入到这个请求

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章
最新文章
相关文章