SpringMVC学习笔记(七)--异常处理和RESTful架构

目录

一、异常处理

1.1 全局异常(实现HandlerExceptionResolver方法)

1.1.1 思路

1.1.2 代码示例

1.1.3 结果演示

1.2 自定义异常(继承Exception类)

1.2.1 思路

1.2.2 代码举例

1.2.3 结果演示

 

二、RESTful风格

 2.1 概念

2.2 RESTful举例

2.2.1 tips

2.2.2 例子 

2.3 RESTful注意事项!!!

TESTful风格无后缀,故web.xml不可以配置为*.do,否则会报错找不到页面


一、异常处理

1.1 全局异常(实现HandlerExceptionResolver方法)

当页面出错的时候,不会出现404、500,出现的是自定义的错误界面,给用户体验更好

1.1.1 思路

  1. 定义全局异常类实现HandlerExceptionResolver方法
  2. 设计报错的页面
  3. 配置全局异常
  4. 使用1/0抛出异常

1.1.2 代码示例

  • 全局异常类CustomerExpection.java
//全局异常类
public class CustomerExpection implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        String msg="页面走丢了";
        ModelAndView mv=new ModelAndView();
        mv.setViewName("error");
        mv.addObject("msg",msg);
        return mv;
    }
}
  • 页面设计error.jsp 
<body>
<div align="center">
${msg}<br>
<img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcxt.zfcg.com%2Fstatic%2Fhome%2Fimg%2F404_03.png&refer=http%3A%2F%2Fcxt.zfcg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1625492854&t=821ecdad3d59951303f95bba857615b1">
</div>
</body>
  •  配置文件dispatch-servlet.xml
<!--配置全局异常-->
    <bean class="com.jc.util.CustomerExpection"></bean>
  • 抛出异常(在上一篇文章文件上传的代码上抛异常)

1.1.3 结果演示

1.2 自定义异常(继承Exception类)

1.2.1 思路

  1. 自定义异常类继承Exception
  2. 改造全局异常
  3. 抛出异常

1.2.2 代码举例

  • 自定义异常类MyException.java
public class MyException extends Exception{
    private String msg;
//生成有参构造,可自定义提示信息
    public MyException(String msg) {
        this.msg = msg;
    }
    public MyException() { }

    public String getMsg() { return msg; }
    public void setMsg(String msg) { this.msg = msg; }
}
  • 改造全局异常

  • 抛出异常

1.2.3 结果演示

 


二、RESTful风格

 2.1 概念

REST,即Representational State Transfer的缩写。对这个词组的翻译是"表现层状态转化"。

HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

RESTful架构,就是目前最流行的一种互联网软件架构,提供了一组设计原则和约束条件。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。归纳一下就是以下几点:

       (1)每一个URI代表一种资源;

         localhost:8080/springMVC/zhq/123

  (2)客户端和服务器之间,传递这种资源的某种表现层;

         json、普通文本(对contentType进行规范,即请求的数据类型)

  (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

         GET、POST、PUT、DELETE(对http的方法进行规范)

2.2 RESTful举例

2.2.1 tips

2.2.2 例子 

HelloWorldController.java

    /**
     * RESTful架构
     */
    @RequestMapping("rest/{username}/{password}")
    public String rest(@PathVariable("username")String name,@PathVariable("password")String pwd,Model model){
        if (name.equals("钟")&&pwd.equals("123")){
            model.addAttribute("name",name);
            return "hello";
        }
        return "error";
    }

页面:hello.jsp

2.3 RESTful注意事项!!!

TESTful风格无后缀,故web.xml不可以配置为*.do,否则会报错找不到页面

当配置为*.do时,找到url对应的controller,Springmvc不认为url请求和@RequestMapping可以对应。 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值