Today I Learned - 32
JSP - 6
- 예외 처리: 예외 처리 페이지 만들기
- 필터: 로그 기록하기
예외 처리 - 1. 개요
- 예외 처리 (a.k.a 오류 처리)
- 프로그램 실행될 때 특정 문제가 발생하면 정상 실행을 중단하고 다른 처리를 하는 것
=> 프로그램의 비정상적인 종료를 방지!!
- 프로그램 실행될 때 특정 문제가 발생하면 정상 실행을 중단하고 다른 처리를 하는 것
- 예외 처리 방법
- page 디렉티브 태그 이용
- web.xml 파일 이용
- try/catch/finally 구문 이용
위 3가지 방법 우선 순위 (try-catch > page 디렉티브 > web.xml)
예외 처리 - 2. page 디렉티브 태그 사용
-
태그의 errorPage, isErrorPage 속성 사용
- errorPage 속성
- 오류 발생 시 처리할 오류 페이지로 이동!
<%@ page errorPage = "오류 패키지 URL" %>
- isErrorPage 속성
- 현재 페이지를 오류 페이지로 호출!
<%@ page isErrorPage = "true" %>
이때 오류 페이지에서 exception 내장 객체 메서드 사용 가능
메서드 | 형식 | 설명 |
---|---|---|
getMessage() | String | 오류 이벤트와 함께 들어오는 메시지 출력 |
toString() | String | 오류 이벤트의 toString()을 호출, 간단한 오류 메시지 확인 |
printStackTrace() | String | 오류 메시지의 발생 근원지를 찾아 단계별로 오류 출력 |
예외 처리 - 3. web.xml 파일 이용
- web.xml 파일을 통해 오류 상태와 오류 페이지 출력
<error-page>
…</error-page>
요소에 처리할 오류 코드/유형 호출!
- 오류 코드로 오류 페이지 호출
<error-page>
<error-code> 오류 코드 </error-code>
<location> 오류 페이지 URI </location>
</error-page>
- 예외 유형으로 오류 페이지 호출
<error-page>
<exception-type> 예외 유형 </exception-type>
<location> 오류 페이지 URI </location>
</error-page>
예외 처리 - 4. try-catch-finally 구문 이용
- 자바의 예외 처리 구문 - 스크립틀릿 태그에 작성
- try {// 예외가 발생할 수 있는 실행문}
- catch {// 예외 처리문}
- finally {// 예외와 상관없이 무조건 실행되는 문장}
필터 - 1. 개요
- 필터,
- 클라이언트와 서버 사이에서 request와 response 객체를 먼저 받아 사전/사후 작업 등 공통적으로 필요한 부분을 처리하는 것
- 필터의 기능
- Request 필터
- 웹 서버의 정적 리소스에 도착하기 전에 수행
- 사용자 인증, 요청 정보 로그 파일로 작성, 암호화 인코딩..
- Response 필터
- 클라이언트에게 도착하기 전에 수행
- 응답 결과 데이터 압축, 응답 결과에 내용 추가/수정, 총 서비스 시간 측정..
- Request 필터
필터 - 2. Filter 인터페이스
- Filter 인터페이스,
- 필터 기능을 구현하는 데 핵심적인 역할
- 자바 클래스로 구현해야 함
- javax.servlet.Filter 임포트 해야 함
- Filter 인터페이스 메서드 - 1. init()
- 필터 인스턴스의 초기화
- 필터 인스턴스 생성 후 한 번만 호출됨
- “필터 서비스가 시작되고 있음”을 알림
- 필터 인스턴스의 초기화
- Filter 인터페이스 메서드 - 2. doFilter()
- 필터 기능을 작성
- 연속된 체인을 따라 다음 필터로 이동하며 연속적으로 수행
- filterChain.doFilter() 메서드를 기준으로 전처리/후처리로 나눠짐!
- Filter 인터페이스 메서드 - 3. destroy()
- 필터 인스턴스 종료 전에 호출됨
- 필터로 열린 리소스를 모두 닫음
필터 - 3. web.xml 파일의 필터 구성
- 필터 설정
- 어떤 필터가 어떤 리소스에 적용되는지 JSP 컨테이너에 알려주는 역할
- 적용 순서
- 여러 필터가 설정된 경우, 선언된 순서대로 실행됨!
- 필터 구성 -
<filter>
요소- WEB APP 에서 자바 필터와 매개변수를 설정하는데 사용
<filter>
<filter-name> 필터 이름 <filter-name>
<filter-class> 클래스 이름 <filter-class>
<filter>
클래스 아래에
추가 가능
- WEB APP 에서 자바 필터와 매개변수를 설정하는데 사용
- 필터 구성 -
<filter-mapping>
요소- 특정 리소스에 대해 어떤 필터를 사용할 지 설정하는데 사용
<filter-mapping>
<filter-name> 필터 이름 <filter-name>
<url-pattern> 요청 URL 패턴 </url-pattern>
<filter-mapping>
- 특정 리소스에 대해 어떤 필터를 사용할 지 설정하는데 사용
과제
-
11, 12단원 연습문제 / ~7/8(금)까지
-
이형록_220524_JSP과제
-
내용
- 1~3번
- 교재 읽고 답 찾기
- 메모장에 타이핑
- 4~6번
- 교재 읽고 실습
- 기본 소스 임포트 해서 확인
- 7번
- Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
- 수업용 예제, ‘Web Market Mall’ 참고!
- 1~3번
nice!!!