| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- jointpoint
- produces
- spring
- springjdbc
- springmvc
- application.properties
- @RequestParam
- gradle
- 생성자주입
- AOP
- 비즈니스레이어
- PointCut
- after-throwing
- 의존주입
- frontController
- c:if
- Java
- @ResponseBody
- @Valid
- Model
- 스프링
- @
- 유효성검사
- 서비스레이어
- 바인딩변수
- 어노테이션
- .xml
- @RequestMapping
- SpringBoot
- MVC
- Today
- Total
메모장
Spring 예외 처리 페이지 본문
예외가 발생했을때 , 사용자에게 보여줄 페이지를 정하는 방법이 여러가지가 있지만
그 중 대표적인 것 두가지가 있다.
1. 개발자가 처리하기
로직으로 예외발생시 화면이 넘어가지 않게 처리하는 방법 >> JAVA
또는
null 을 view에서 보여줘야 한다면 특정문구가 나오게 처리 >> JSTL로 <c:if> 조건문으로 유효성 검사

--->>> 규모가 있는 회사들은 상황 마다 이런 방식으로 많이 쓴다. 확실하게 상황마다 유효성 검사를 진행한다.
우리도 유효성을 검사를 철저히 해야 하는 이 방법을 써야 한다.
다른 방법도 있으니 알아보자
2. Spring 한테 떠넘기기 << 다른 방법도 있다. 이 방법에 대한 설명
비교적 간단한것은 Spring 떠넘기기 !
이것또한 .xml 방식과 @ 방식이 있다.
① .xml 설정 (에러페이지 처리는 이것을 더 많이 사용)
출처 입력
Spring 한테 예외 발생시
자동으로 처리해서 특정 페이지 까지 사용자가 도달할 수 있게 해주는 객체가 존재한다.
그 객체의 이름 : ExceptionResolver
DS 의 멤버변수 겠구나 ! 라고 생각 할 수 있다.
DS의 멤버변수 니까 DS-servlet.xml에 <bean> 한테 의존 주입

어 ? HM 이랑 비슷 하네 ? 라고 파악 할 수 있다.
handler.SimpleMapping 있다는 점에서 HM 과 비슷하다는 점 을 알 수 있다.
HM 은 어떤 요청에 대해 어떤 controller 객체를 반환할지 결정하는 친구
그래서 팩토리 패턴을 갖고 있다.
exception Resolver : 어떤 예외에 대해 어떤 페이지로 가야할지 결정
얘도 내부적으로 팩토리 패턴을 가지고 있다.
exceptionMappings 이 무엇에 대해 무엇을 할거야 니까
nullpointerException 에 대해 에러페이지로 가줘

어떤 예외에 대해 어디로 가야할지를 정해준다.
webapp 안에 에러폴더 안에 에러페이지를 만들어 줬다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>에러페이지</title>
</head>
<body>
<h1>${exception}</h1> <!-- exception 만 쓰면 에러 메세지도 같이 나온다 -->
<h3>${exception.message}</h3>
<hr>
<a href="main.do">메인으로 돌아가기</a>
</body>
</html>
${} el식에서 exception 이라는 객체를 사용하고 싶으면
위에 isErrorPage="true" 이게 중요 ★★★
이걸 true로 해놔야 쓸 수 있다. 설정해놔야

DS 서블릿에서 예외를 등록을 안한 예외가 발생할 수도 있음 !
혹시 프로퍼티 등록을 안한 예외가 있다면 어디 페이지로 가라 라고 정해줄수 있다.

★ 완료 화면 ★



② @ 설정 ( 유지보수 불리 )
@으로 설정 하려면 , ".java" 가 필요하다.
그러면 , 예외를 잡아줄 클래스.java가 필요하고,
얘를 어디로 보내줄 컨트롤러 역할 을 해줄
특정페이지까지 전달을 위한 (controller역할의 ) 클래스. java 도 필요
점점 자바 파일이 많아지고 컴파일을 해야해서 유지보수에 불리하다.
'Spring > 개념정리' 카테고리의 다른 글
| Spring 비동기 처리 (별도의 lib 없이) (0) | 2024.08.07 |
|---|---|
| [ null 업데이트 이슈 ] (1) | 2024.08.07 |
| @RequestMapping 에서 사용되는 옵션 종류 (0) | 2024.08.07 |
| Spring 사진 썸네일 실습 (0) | 2024.08.07 |
| Spring 업로드 사진 출력 실습 (0) | 2024.08.07 |