본문 바로가기
개발참고

[JSP&Servlet] 서블릿오류처리,쿠키,세션트레킹,리스너,요청재지정

by 라인 :D 2020. 5. 19.

[JSP&Servlet] 서블릿오류처리,쿠키,세션트레킹,리스너,요청재지정


> 서블릿에서의 오류처리 01.try-catch

try {

int arr[] = new int[3];

arr[3] = 23;    // 배열오류 new ArrayIndexOutOfBoundsException

int a = 123/0; // new ArithmeticException()

String s = new String("java");

s.length();

s=null;

s.length(); //오류발생 = new NullPointException()

}

 catch (NullPointException e1) { 널포인트입셉션이 나왔을때

 처리할 내용 ///  }

 catch (ArithemeticException e2) {  처리할 내용 /// }

 catch (ArrayIndexOutOfBoundsException e3) { 처리할 내용 ///  }

 catch (Exception e ) { 처리할 내용 /// }

 finally {

// 자원 해제

}

}




> 서블릿에서의 오류처리 02.web.xml

오류페이지 처리

<error-page>

<error-code>405</error-code>

<location> /servlet/ErrorHandelServlet</location>

</error-page>

> 필터

필터란 ?

서블릿이 수행되기 전에 그리고 서블릿이 수행된 후에 추가로 수행되는 객체 이다

필터 객체 자체는 서블릿이 아니며 서블릿의 도우미 프로그램이라고 할수 있다.

필터 기능을 활용하면 요청이 서블릿에게 전달되기 전에 그리고 서블릿의 수행 결과가 응답되어 클라이언트로 전송되기 전에 추가 작업을 처리할 수 있다.

 

·        서블릿이 호출되기 전에 서블릿 요청을 가로채는 기능

·        서블릿이 호출되기 전에 요청내용을 점검하는 기능

·        요청 헤더의 수정과 조정 기능

·        응답 헤더의 수정과 조정 기능

·        서블릿이 호출된 후에 서블릿 응답을 가로 채는 기능

 

여러 서블릿에 하나의 필터 등록 가능

하나의 서블릿에 여러 개의 필터 등록 가능

 

1.     필터 구현

o   implements Filter 상속해야 한다

o   Init()    필터 객체 생성시 한번 : 초기화

o   doFilter()    매핑한 페이지 요청시마다 : 필터 내용 구현

o   Destory()   필터 객체 삭제시 한번 : 자원해제

===> callback 매서드  : 서버에 의해서 자동으로 호출되는 매서드

 

2.     필터 등록

  <!-- 필터 등록 -->

<filter>

<filter-name>hanConvert</filter-name>    논리적필터이름

         <filter-class>HanConvertFilter</filter-class>   실제클래스명

</filter>

3.   필터 매핑

1.     doFilter() 실행시키고 싶다면 브라우저에서 매핑한 페이지 요청

2.     실행확인 WAS_HOME/logs/localhost    파일에서 확인

  <!-- 필터매핑 -->

<filter-mapping>

          <filter-name>hanConvert</filter-name> 위에등록한 필터이름

          <url-pattern>/*</url-pattern>  어디에다 필터를 적용할지 app네임까진 생략

</filter-mapping>

> 상태정보유지(State Information)

: 웹클라이언트가 웹서버에게 정보를 요청하면 서버에서 처리한 결과를 보관해 놓고 이후에도 그정보를 사용할 수 있는데 이 정보들을 상태 정보 라고 한다.

> 세션트래킹

httpSession 객체는 서버에 생성되고 클라이언트는 세션ID 가 쿠키 기술로 저장되어 각 클라이언트에 대하여 생성되는 HttpSession 객체를 클라이언트마다 개별적으로 유지 및 관리하게 되는 것을 말한다

 

저장 : setAttribute(name.value)

 

ServletContext

·        Web app 단위로 생성

·        서버 시작 시 생성

·        서버 중지 시 삭제

HttpSession   ex) 로그인/로그아웃(로그인정보유지)  /장바구니 기능

·        Client 단위로 생성

·        Client 최초 접속 시 생성

·        Client 접속 종료 시 삭제

HttpServletRequest  가장많이 사용

·        요청단위로 생성

·        Client가 페이지 요청 시 생성

·        Client로 응답을 했을 시 삭제

> Cookie

쿠키 : 웹서버가 클라이언트에 저장하는 정보

쿠키를 설정할때는 name = value 형태로 저장 text만 저장 가능

<쿠키의 저장 경로>

C:\Users\student\AppData\Roaming\Microsoft\Windows\Cookies

 

> Cookie HttpSession 비교

 

Cookie

HttpSession

생성

클라이언트단위

클라이언트단위

저장

Client 저장

Server 저장

속성

Text

objcet

Size

사이즈제한

사이즈제한없음