springboot - 映射HTTP Response Status Codes 到 静态 HTML页面

Posted 遥远2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot - 映射HTTP Response Status Codes 到 静态 HTML页面相关的知识,希望对你有一定的参考价值。

1、总览

 

 

2、代码

1)、pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>
View Code

2)、MyController.java

package com.ebc.controller;

import com.ebc.error.NotYetImplemented;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MyController {
    /**
     * response status code=500,导航到5xx.html
     */
    @RequestMapping("/")
    public void handleRequest() {
        throw new RuntimeException("test exception");
    }
    /**
     * response status code=501,导航到5xx.html
     */
    @RequestMapping("/app")
    public void handleAppInfoRequest() throws NotYetImplemented {
        throw new NotYetImplemented("The request page is not yet implemented");
    }

}

3)、ForbiddenException.java

package com.ebc.error;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(HttpStatus.FORBIDDEN)
public class ForbiddenException extends Exception {
    public ForbiddenException(String message) {
        super(message);
    }
}
View Code

4)、NotYetImplemented.java

package com.ebc.error;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(HttpStatus.NOT_IMPLEMENTED)
public class NotYetImplemented extends Exception {
    public NotYetImplemented(String message) {
        super(message);
    }
}
View Code

5)、5xx.html

<html>
<body>
<h1>My 5xx Error Page</h1>
<div id="locationDiv"></div>
<script>
    document.getElementById("locationDiv").innerHTML = "Location: " + window.location.href;
</script>
</body>
</html>

6)、404.html

<html>
<body>
<h1>My 404 Error Page</h1>
<div id="locationDiv"></div>
<script>
    document.getElementById("locationDiv").innerHTML = "Location: " + window.location.href;
</script></body>
</html>

3、执行

 

 

 

 

总结:

1、如果出现了非5xx、404返回码如403时,怎么办?使用error.jsp,并将其放在根下,如本例需放在static目录下。

2、5xx.html、404.html需放在error目录下。

 

以上是关于springboot - 映射HTTP Response Status Codes 到 静态 HTML页面的主要内容,如果未能解决你的问题,请参考以下文章

springboot配置静态资源映射

springboot - 映射HTTP Response Status Codes 到 静态 HTML页面

css 来自http://stackoverflow.com/questions/26939104/clear-rows-when-doing-multi-responsive-columns-boo

无法反序列化从 Springboot POST 映射函数上的 Angular http post 请求发送的 POJO

Spring Boot 默认异常映射到标准 HTTP 状态码

springBoot(13):基于HTTP的监控