Framework/Spring Framework

(23.01.14.)Spring ํ”„๋ ˆ์ž„ ์›Œํฌ : ์—๋Ÿฌ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2023. 1. 17.

์—๋Ÿฌ๊ฐ€ ๋œจ๊ฒŒ ๋˜๋ฉด ์›น์„ ์ž˜ ๋ชจ๋ฅด๋Š” ์ด์šฉ์ž๋Š” ๋‹นํ™ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์—๋Ÿฌ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์—๋ŸฌํŽ˜์ด์ง€๋ฅผ ๊พธ๋ฉฐ์„œ ์ด์šฉ์ž์—๊ฒŒ ์ž˜ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

ErrorHandler.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
 
@Controller
public class ErrorHandler implements ErrorController
{
   private String viewPath = "thymeleaf/error/";
   
   @GetMapping("/error")
   public String error(HttpServletRequest request)
   {
      Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
      if(status!=null)    //"javax.servlet.error.status_code"
      {
         int statusCode = Integer.parseInt(status.toString());
 
         if(statusCode==HttpStatus.NOT_FOUND.value()) {
            return viewPath + "404";
         }else if(statusCode==HttpStatus.FORBIDDEN.value()) {
            return viewPath + "403";
         }
      }
      return viewPath + "other";
   }
}
/*HttpStatus.FORBIDDEN.value()            //403
 *HttpStatus.METHOD_NOT_ALLOWED.value()      //405
 *HttpStatus.NOT_FOUND.value().value()      //404
 *HttpStatus.REQUEST_TIMEOUT.value()      //408
 *HttpStatus.INTERNAL_SERVER_ERROR.value()   //500
*/
cs

 

 

 

 

 

 

๋Œ“๊ธ€