반응형

getServletContext()메서드를 이용해 ServletContext 객체에 접근한 다음 ArrayList에 이름과 나이를 저장한 후 다시 ServletContext 객체에 setAttribute() 메서드를 이용해 바인딩합니다.

getServletContext()메서드를 이용해 ServletContext 객체에 접근합니다. 그리고 getAttribute() 메서드를 이용해 다른 서블릿에서 바인딩한 ArrayList를 가져와 회원 정보를 출력합니다.

http://localhost:8080/pro08/cget

http://localhost:8080/pro08/cset

확인합니다.

이처럼 ServletContext에 바인딩된 데이터는 모든 서블릿(사용자)이 접근할 수 있습니다. 따라서 웹 어플리케이션에서 모든 사용자가 공통으로 사용하는 데이터는 ServletContext에 바인딩해 놓고 사용하면 편리합니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

redirect binding이 안되는 것을 알아보았습니다.

이번에는 dispatch를 이용한 binding을 해보겠습니다.

 

이번에는 화면에 정상적인 주소가 출력됩니다.

첫 번째 서블릿에서 두 번째 서블릿으로 전달되는 request가 브라우저를 거치지 않고 바로 전달되었습니다.

따라서 첫 번째 request에 바인딩된 데이터가 그대로 전달된 것입니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

웹 프로그램 실행 시 자원을 서블릿 관련 객체에 저장하는 방법으로 주로 HttpServletRequest, HttpSession, ServletContext  객체에서 사용되며 저장된 자원(데이터)은 프로그램 실행 시 서블릿이나 JSP에서 공유하여 사용합니다.

 

서블릿 관련 객체에서 바인딩 관련 기능을 제공하는 메서드

 - setAttribute(String name, Object obj) 자원을 각 객체에 바인딩합니다.

 - getAttribute(String name) 각 객체에 바인딩 된 자원(데이터)을 name으로 가져옵니다.

 - removeAttribute(String name) 각 객체에 바인딩된 자원(데이터)을 name으로 제거합니다.

 

실행 결과를 보면 정상적으로는 '서울시 성북구'가 출력되어야 하는데 null이 출력됩니다. 왜 그럴까요?  

 

포워딩 과정 1단계인 웹 브라우저에서 요청할 때 서블릿에서 전달되는 첫 번째 request는 웹브라우저를 통해 재요청되는 3단계의 두번째 request와 다른 요청입니다.

  즉, redirect방식으로는 서블릿에서 바인딩한 데이터를 다른 서블릿으로 전송할 수 없다는 것입니다.

 

 

반응형
블로그 이미지

꽃꽂이하는개발자

,