예외 처리란 무엇인가?
예외 처리는 프로그램이 처리되는 동안(프로세스) 특정한 문제가 발생했을 때(Error) 처리를 중단(Intersepter)하고 다른 처리(Exception)를 하는 것으로 오류 처리라고도 한다
page 디렉티브 태그를 이용한 예외 처리 기법에 사용되는 속성에 대해 설명하시오.
1) errorPage 속성으로 오류 페이지 호출하기:errorPage 속성은 오류 페이지를 호출하는 page 디렉티브 태그의 속성으로 형식은 다음과 같다
2) isErrorPage 속성으로 오류 페이지 만들기: isErrorPage 속성은 현재 JSP 페이지를 오류 페이지로 호출하는 page 디렉티브 태그의 속성으로 형식은 다음과 같다
이것을 쓰는 이유는 exception 객체를 사용하기 위해서 사용한다
web.xml 파일을 이용한 예외 처리 기법에 대해 설명하시오.
1) 오류 코드로 오류 페이지 호출하기
404(페이지 없음), 500(프로그래밍 오류)..
2) 예외 유형으로 오류 페이지 호출하기
NullPointerException, ArrayOutofBound..
web.xml 의 , 엘리먼트에 설정된 오류의 지정 서블릿/JSP 가 수행될 때 발생된 오류에 대한 정보가 HttpServletRequest 객체 통해 전달됨.
javax.servlet.error.status_code : 오류 코드
javax.servlet.error.exception_type : 예외 타입 정보 (Class 형 객체)
javax.servlet.error.message : 예외 메시지
javax.servlet.error.exception : 발생된 예외 객체
javax.servlet.error.request_uri : 오류 발생 파일의 URI
학습목표
필터(Filter)
클라이언트와 서버 사이에서 request와 response 객체를 먼저 받아 사전/사후 작업 등 공통적으로 필요한 부분을 처리하는 것을 말한다
필터는 클라이언트의 요청이 웹 서버의 Servlet, JSP, HTML 페이지 같은 정적 리소스에 도달하기 전과, 반대로 정적 리소스에서 클라이언트로 응답하기 전에 필요한 전처리를 가능하게 한다
필터는 HTTP 요청과 응답을 변경할 수 있는 코드로 재사용이 가능하다
클라이언트와 정적 리소스 사이에 여러 개의 필터로 이루어진 필터 체인을 제공하기도 한다
필터의 기능
Request 필터 : 인증(사용자 인증), 요청 정보를 로그 파일로 작성, 암호화 인코딩 작업
Response 필터 : 응답 결과 데이터 압축, 응답 결과에 내용 추가/수정, 총 서비스 시간 측정
Filter 인터페이스
init() 메소드
AuthenFilter.java
Filter를 implement를 하면 필수 메소드가 3개가 있어야 한다
init 메소드는 초기화하는 메소드
doFilter 메소드는 기능을 담당하는 메소드
destroy 메소드는 해제하는 메소드
filter01.jsp
이페이지에서 전송을 하게되면 filter01_process.jsp로 이동하게 된다
filter01_process.jsp
filter01.jsp에서 전송을 받아 입력된 값을 보여준다
web.xml
web.xml에 filter와 filter-mapping을 만들어준다
filter에는 filter-name과 filter-class을 만들어준다
filter-mapping에는 filter-name과 url-pattern을 만들어준다
결과
이름을 입력해주면 filter01_process.jsp에서 보여준다
InitParamFilter.java
InitParamFilter init 메소드에 filterConfig를 만들어준다
그다음 doFilter 메소드에서 filterConfig.getParameter로 값을 가져온다
filter02.jsp
아이디와 비밀번호를 작성해서 전송한다
filter02_process.jsp
화면에 입력된 id와 password를 보여준다
web.xml
web.xml에 filter와 filter-mapping 그리고 init을 사용했기 때문에 init-param을 만들어준다
filter에는 filter-name과 filter-class을 만들어준다
filter-mapping에는 filter-name과 url-pattern을 만들어준다
init-param은 id값과 password값을 받아와야 하기 때문에 두번 작성해서
param-name과 param-value를 만들어준다
결과