작성
·
215
0
package hello.exception.servlet;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import java.io.IOException;
@Slf4j
@Controller
public class ServletExController {
@GetMapping("/error-ex")
public void errorEx() {
throw new RuntimeException("예외발생");
}
@GetMapping("/error-404")
public void send404Error(HttpServletResponse response) throws IOException {
response.setStatus(404); // 상태 코드 설정
response.getWriter().write("404 오류 발생");
}
@GetMapping("/error-500")
public void send500Error(HttpServletResponse response) throws IOException {
response.setStatus(500); // 상태 코드 설정
response.getWriter().write("500 오류 발생");
}
}
이렇게 400오류일 때 페이지를 설정해도 error-404로 들어가면 오류가 발생하고 error-400에 들어가면 404 화면이 나옵니다.
application.properties는 이렇게 구성되어있고, html파일은 수업 자료 코드 그대로 가져왔습니다.
확인 한번 해주시면 감사하겠습니다.
답변 2
아 제가 질문을 잘못 이해했습니다. 죄송합니다
말씀하신 것과 캡처본을 종합해봤을 때 /error-404 url을 호출했을 때 강의 화면과 다른 화면이 뜨는 것이 문제로 보입니다.
제가 전에 말씀드린 errorPage400을 추가하는 것은 문제 해결에 도움이 되지 않습니다!
잘못된 답변을 드려 죄송합니다.
그보다는 기존 ServletExController 수정과 ErrorPageController를 강의와 똑같이 구현해주시는 게 중요합니다.
예를 들어 지금 ServletExController 에서 해주신 구현은 response.getWriter().write()를 통해 응답을 그대로 조작해버리기 때문에 강의화면과 다릅니다!
ServletExController에서는 강의와 같이 response.sendError() 만 해주시고, ErrorPageController를 추가해주십쇼!