Hayden's Archive

[Servlet] Attribute : ServletRequest / HttpSession / ServletContext 본문

Study/Java & Kotlin

[Servlet] Attribute : ServletRequest / HttpSession / ServletContext

_hayden 2020. 6. 9. 21:32

Attribute
: 서버상에서 데이터(개체)를 보관하는 저장소. 
-보관할 때 Binding : setAttribute(" ", object) //키는 String으로 밸류는 객체로 들어감.
-찾아올 때 Look-up : getAttribute(" ") //키로 찾아옴.

 

Attribute 총 3가지가 있음. -> 용도에 따라 적절하게 사용해야 함.
: 모두 setAttribute(), getAttribute가 있음. 
: 동일한 메소드가 서로 다른 객체에 있을 때는 이름, 기능이 똑같더라도 뭔가 다른 점이 있음. 
: 데이터가 보관되는 scope가 다름. 데이터가 저장되는 유통기한이 다름.

- ① ServletRequest : WAS 가동하자마자 만들어짐. 서버 꺼지기 전까지 저장함. 모든 서블릿들이 공유할 수 있는 정보를 저장. 글로벌!!! 
- ② HttpSession : 요청하면 같이 만들어짐. 로그인 진행되는 동안 저장함. 로그아웃하면 날아감.
- ③ ServletContext : 요청하면 만들어짐. 응답하면 날아감. 응답하면 죽음. -> 응답하면 ServletRequest가 죽고 그 안에 저장한 객체도 사라지는데 서블릿에서 JSP로 화면 넘어가고 그 객체 불러오면 없으니까 NullPointerException 터짐