가끔은 세션에 어떤 값이 바인딩 되거나 해제될 때 어떤일을 하고 싶을 때가 있을 것이다. 예를들면 중복로그인 체크등...
- javax.servlet.http.HttpSessionBindingListener Interface
몇몇객체가 세션에 바인딩 되거나, 해제될때 어떤 행위등을 하고자 할때 사용
valueBound(HttpSessionBindingEvent event) Method
리스너가 세션에 바인딩 될때 호출됨
리스너가 세션에 바인딩 될때 호출됨
valueUnbound(HttpSessionBindingEvent event) Method
리스너가 세션으로 부터 해제시 호출된다
리스너가 세션으로 부터 해제시 호출된다
- javax.servlet.http.HttpSessionBindingEvent Class
getName Method를 이용해 바인딩된 객체에서의 이름에 접근할수 있도록 해줌
public String HttpSessionBindingEvent.getName()
바인딩된 객체에서의 이름에 접근할수 있도록 해줌
바인딩된 객체에서의 이름에 접근할수 있도록 해줌
public String HttpSessionBindingEvent.getSession()
리스너가 바인딩된 HttpSession 객체에 접근
리스너가 바인딩된 HttpSession 객체에 접근
아래 예제를 보자.
import java.io.*;
import javax.servlet.*;import javax.servlet.http.*;
public class SessionBinding extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
import javax.servlet.*;import javax.servlet.http.*;
public class SessionBinding extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html; charset=euc-kr"); PrintWriter out = res.getWriter();
//현재 세션 객체를 얻음
HttpSession session = req.getSession(true);
session.putValue("Your Name", new BindListener(getServletContext(),out));
//session.putValue("name", "오엔제이오라클자바커뮤니티");
session.removeValue("Your Name");
}
HttpSession session = req.getSession(true);
session.putValue("Your Name", new BindListener(getServletContext(),out));
//session.putValue("name", "오엔제이오라클자바커뮤니티");
session.removeValue("Your Name");
}
class BindListener implements HttpSessionBindingListener {
ServletContext context;
PrintWriter out = null;
public BindListener(ServletContext context, PrintWriter out) {
this.context = context;
this.out = out;
}
//valueBound를
구현,c:\javawebser2.0\logs\javawebserver\webpageservice\event_log file에
로그기록
public void valueBound(HttpSessionBindingEvent event) {
context.log("BOUND as " + event.getName() + " to " + event.getSession().getId());
out.println("BOUND as " + event.getName() + " to " + event.getSession().getId() + "<br>");
}
//valueUnbound를 구현,c:\javawebser2.0\logs\javawebserver\webpageservice\event_log file에 로그기록
public void valueUnbound(HttpSessionBindingEvent event) {
context.log("UNBOUND as " + event.getName() + " from " + event.getSession().getId());
out.println("UNBOUND as " + event.getName() + " from " + event.getSession().getId()+ "<br>");
}
}
}
public void valueBound(HttpSessionBindingEvent event) {
context.log("BOUND as " + event.getName() + " to " + event.getSession().getId());
out.println("BOUND as " + event.getName() + " to " + event.getSession().getId() + "<br>");
}
//valueUnbound를 구현,c:\javawebser2.0\logs\javawebserver\webpageservice\event_log file에 로그기록
public void valueUnbound(HttpSessionBindingEvent event) {
context.log("UNBOUND as " + event.getName() + " from " + event.getSession().getId());
out.println("UNBOUND as " + event.getName() + " from " + event.getSession().getId()+ "<br>");
}
}
}
[개강임박강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/13]SQL초보에서실전전문가까지
[11/13]안드로이드개발자과정
[11/18]Spring3.X, MyBatis, Hibernate실무과정
[11/18]iPhone 하이브리드 앱 개발 실무과정
[평일야간]
[11/08]C#,ASP.NET마스터
[11/08]Spring3.X, MyBatis, Hibernate실무과정
[11/12]iPhone 하이브리드 앱 개발 실무과정
[11/14]JAVA&WEB프레임워크실무과정
[주말]
[11/09]C#,ASP.NET마스터
[11/09]JAVA&WEB프레임워크실무과정
[11/09]Spring3.X, MyBatis, Hibernate실무과정
[11/09]웹퍼블리싱 마스터
[11/16]PL/SQL,오라클힌트,SQL튜닝,사례연구
[11/16]ASP.NET4.0 MVC 프로그래밍
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/13]SQL초보에서실전전문가까지
[11/13]안드로이드개발자과정
[11/18]Spring3.X, MyBatis, Hibernate실무과정
[11/18]iPhone 하이브리드 앱 개발 실무과정
[평일야간]
[11/08]C#,ASP.NET마스터
[11/08]Spring3.X, MyBatis, Hibernate실무과정
[11/12]iPhone 하이브리드 앱 개발 실무과정
[11/14]JAVA&WEB프레임워크실무과정
[주말]
[11/09]C#,ASP.NET마스터
[11/09]JAVA&WEB프레임워크실무과정
[11/09]Spring3.X, MyBatis, Hibernate실무과정
[11/09]웹퍼블리싱 마스터
[11/16]PL/SQL,오라클힌트,SQL튜닝,사례연구
[11/16]ASP.NET4.0 MVC 프로그래밍
댓글 없음:
댓글 쓰기