HandlerExceptionResolver异常的拦截及其restfull风格 传输url

  • Post author:
  • Post category:其他


异常拦截

在controller中不知道哪个  @RequestMapping(“?”)可能会抛出异常/为了将异常封装统一管理起来 spring提供了

HandlerExceptionResolver实现类

实现方法resolveException(请求,响应,对象,异常)

设置好之后我们需要将异常类对象放入到Spring中     <bean class=”com.project.userpro.util.Exception”></bean> 这样spring就能管理到异常类/直接作用在全局异常捕获。

HandlerMethod hm=(HandlerMethod )handler ;

(HandlerMethod )导包import org.springframework.web.method.HandlerMethod;

如果报如下这样的错,说明包导错了

Request processing failed; nested exception is java.lang.ClassCastException: org.springframework.web.method.HandlerMethod cannot be cast to org.springframework.messaging.handler.HandlerMethod

hm.getMethod().getName获取异常出现的是哪个方法

异常.printStackTrace()在控制台上输出异常


代码区

import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Exception implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, java.lang.Exception ex) {
        HandlerMethod hm=(HandlerMethod )handler;
       String me= hm.getMethod().getName();
        System.out.println(me);
        ex.printStackTrace();
        ModelAndView mv=new ModelAndView("error.jsp");
        mv.addObject("ee","我出错了");
        return mv;
    }
}

========================================================

restfull风格

//大括号可以传参至下面的@PathVariable 所定义的类型中/根据类型来返回参数

@RequestMapping(“json/id/{tag}/str/{str}.job”)

@ResponseBody

public String getJson(@PathVariable int tag,@PathVariable String str){


if (tag==0){


return “输入的值为0″+str;

}else if(tag==1){


return “输入的值为1″+str;

}else{


return “输入的值为2″+str;

}

}

//在访问时我们可以直接将值放入到地址中就能得到想要的json数据

http://localhost:8080/war/json/id/2/str/ppp.job



版权声明:本文为qq_24024541原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。