Spring Framework

Spring Framework_ 에러 발생시 특정 controller 요청으로 보내는 설정

꾸주니12 2022. 5. 28. 17:31

<특정 에러 발생시 뷰에 표시하지 않고, 숨기는 방법>

  1. web.xml 설정 추가(한글깨짐 방지 코드 밑에)
	<!-- 특정한 에러 발생시 특정 controller 요청으로 보내는 설정 -->
	<!-- 특정 코드를 이용한 방법  -->
	<error-page>
		<error-code>500</error-code>
		<location>/error/500</location>
	</error-page>
	
	
	<error-page>
		<error-code>404</error-code>
		<location>/error/404</location>
	</error-page>
	
	
	<!--  특정한 Exception 을 이용한 방법 -->
	<error-page>
		<exception-type>java.io.IOException</exception-type>
		<location>/error/IOException</location>
	</error-page>

 

 

2. Controller에 해당 요청에 대한 메서드 추가

@RequestMapping(value = "/error/404")
	public String notFound(Model model) {
		model.addAttribute("msg", "원하시는 요청 또는 페이지가 없습니다.");
		return "error";
	}
	
	
	@RequestMapping(value = "/error/500")
	public String serverError(Model model) {
		model.addAttribute("msg", "서버에서 처리중 문제가 발생했습니다.");
		return "error";
	}
	
	@RequestMapping(value = "/error/IOException")
	public String ioException(Model model) {
		model.addAttribute("msg", "데이터 입출력중 문제가 발생했습니다.");
		return "error";
	}

 

에러가 나면 뷰에 에러난 코드가 공개된다. 사용자에 노출되면 안되니까 특정에러 발생시 메세지를 보여주고, 에러 처리하기

 

 

 

 

<에러>

400 마땅한 파라메터 값이 없음 

404 페이지가 없거나 요청이 없거나 

405 get ,post 방식이 틀렸을 때 나오는 에러