모니터 도메인 객체 속성은 청취자 변경
도메인 오브젝트 변경 이벤트 리스너 속성은 ServletContext에, HttpSession에, HttpServletRequest의 이벤트에 대한 변경 청취자 정보에서이 세 개체의 속성을 모니터링하는 데 사용됩니다.
세 리스너 인터페이스가 ServletContextAttributeListener, HttpSessionAttributeListener에 ServletRequestAttributeListener 및 세 인터페이스 증가 속성을 처리하기 위해 세 가지 방식으로 정의되는 객체는 세 개의 인터페이스에 이벤트 같은 이벤트를 제거하고 교체 모니터링 하여 동일한 이름의 해당하는 방법 만 가능 매개 변수의 다른 유형.
● attributeAdded 방법
모니터링되는 물체에 속성을 추가 할 때, 웹 컨테이너는 이벤트 리스너의 attributeAdded 방법 응답 호출이 방법은 이벤트 타입 파라미터를 수신하고, 수신기를 얻을 수있다 도메인 개체는이 매개 변수 특성을 증가하고 저장된 대상 도메인의 속성.
다음과 같이 각 도메인에 대한 완전한 구문 정의는 청취자 속성 :
공공 무효 attributeAdded (ServletContextAttributeEvent 이벤트)
공공 무효 attributeAdded (HttpSessionBindingEvent 이벤트)
공공 무효 attributeRemove (ServletRequestAttributeEvent 이벤트)
● attributeRemove 방법
당신은 속성이 객체를 수신하고 삭제하면 attributeRemoved 방법은 웹 컨테이너가 응답하는 이벤트 리스너를 호출합니다.
다음과 같이 각 도메인에 대한 완전한 구문 정의는 청취자 속성 :
공공 무효가 attributeRemoved (ServletContextAttributeEvent 이벤트)
공공 무효가 attributeRemoved (HttpSessionBindingEvent 이벤트)
공공 무효가 attributeRemoved (ServletRequestAttributeEvent 이벤트)
● attributeReplaced 방법
속성의 리스너 도메인 오브젝트를 교체 할 때 ●, 웹 컨테이너 호출 이벤트 리스너의 attributeReplaced 방법은 반응한다.
다음과 같이 각 도메인에 대한 완전한 구문 정의는 청취자 속성 :
공공 무효가 attributeReplaced (ServletContextAttributeEvent 이벤트)
공공 무효가 attributeReplaced (HttpSessionBindingEvent 이벤트)
공공 무효가 attributeReplaced (ServletRequestAttributeEvent 이벤트)
ServletContextAttributeListener 리스너 예 :
● ServletContext에 도메인 객체 속성 값 변경을 듣고 준비 ServletContextAttributeListener 리스너 다음과 같이 :
패키지 com.xdl.listener;
수입 java.text.MessageFormat에;
수입 javax.servlet.ServletContextAttributeEvent;
수입 javax.servlet.ServletContextAttributeListener;
/ **
* MyServletContextAttributeListener 클래스 구현
* ServletContextAttributeListener 인터페이스
* 당신은 도메인 객체의 ServletContext의 특성 변화를들을 수
* /
공용 클래스 MyServletContextAttributeListener
구현 ServletContextAttributeListener {
@보수
공공 무효 attributeAdded (ServletContextAttributeEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"추가 ServletContext 내 도메인 객체 속성 : {0}, 속성 값은 다음과 같습니다 {1}",
event.getName () event.getValue ());
에서 System.out.println (STR);
}
@보수
공공 무효 attributeRemoved (ServletContextAttributeEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"제거하는 ServletContext 도메인 객체 속성 : {0}, 속성 값은 다음과 같습니다 {1}",
event.getName () event.getValue ());
에서 System.out.println (STR);
}
공공 무효 attributeReplaced (ServletContextAttributeEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"도메인 객체 속성을 대체하는 ServletContext : 값이 {0}"event.getName ());
에서 System.out.println (STR);
}
}
web.xml 파일 ● 등록 된 리스너
<? XML 버전 = "1.0"인코딩 = "UTF-8"?>
<웹 응용 프로그램의 xmlns : XSI = "http://www.w3.org/2001/XMLSchema-instance"
의 xmlns = "http://xmlns.jcp.org/xml/ns/javaee"
XSI :의 schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
버전 = "3.1">
<수신기>
<설명> MyServletContextAttributeListener 监听 器 </ DESCRIPTION>
<리스너 클래스>
com.xdl.listener.MyServletContextAttributeListener
</ 리스너 클래스>
</ 청취자>
</ 웹 응용 프로그램>
● 쓰기 ServletContextAttributeListenerTest.jsp 테스트 페이지
<% @ 페이지 언어 = "자바"의 contentType = "text / html과; 문자셋 = UTF-8"
pageEncoding = "UTF-8"%>
<! DOCTYPE html로>
<HTML>
<head>
<메타 캐릭터 = "UTF-8">
<제목> 밴드 브라더스의 IT 교육 </ 제목>
</ head>
<body>
<%
// 응용 프로그램 도메인 객체에 속성을 추가
application.setAttribute ( "이름", "서른 학생들을 그릴");
응용 프로그램 도메인 객체에 name 속성의 값을 교체 //
application.setAttribute ( "이름", "스무 학생들을 그릴");
속성의 이름으로 응용 프로그램 도메인 개체를 제거 //
application.removeAttribute ( "이름");
%>
</ body>
</ HTML>
오픈 Tomcat 서버,도 12에 나타낸 결과.
콘솔,도 12 MyServletContextAttributeListener 출력 정보
실행의 결과에서 볼 수있는, ServletContextListener 리스너는 ServletContext를 도메인 객체 (응용 프로그램) 속성 값의 변화의 성공에 수신합니다.
ServletRequestAttributeListener 및 HttpSessionAttributeListenenr 청취자 예 :
● 준비 청취자는, HttpSession에와 HttpServletRequest의 도메인 객체 속성 값 변경을 듣고 다음과 같이 :
패키지 com.xdl.listener;
수입 java.text.MessageFormat에;
수입 javax.servlet.ServletRequestAttributeEvent;
수입 javax.servlet.ServletRequestAttributeListener;
수입 javax.servlet.http.HttpSessionAttributeListener;
수입 javax.servlet.http.HttpSessionBindingEvent;
/ **
* MyRequestAndSessionAttributeListener 클래스 구현
* HttpSessionAttributeListener에 和 ServletRequestAttributeListener 接口
* 당신은 변화의 HttpSession과 ServletRequest의 도메인 객체 속성들을 수
* /
공용 클래스 MyRequestAndSessionAttributeListener
구현 HttpSessionAttributeListener에, ServletRequestAttributeListener {
@보수
공공 무효 attributeAdded (ServletRequestAttributeEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"는 ServletRequest의 도메인 객체에 추가 된 속성 : {0}, 속성 값은 다음과 같습니다 {1}",
event.getName () event.getValue ());
에서 System.out.println (STR);
}
@보수
공공 무효 attributeRemoved (ServletRequestAttributeEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"제거 ServletRequest의 도메인 객체 속성 : {0}, 속성 값은 다음과 같습니다 {1}",
event.getName () event.getValue ());
에서 System.out.println (STR);
}
@보수
공공 무효 attributeReplaced (ServletRequestAttributeEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"도메인 객체 속성을 대체의 ServletRequest : 값이 {0}"event.getName ());
에서 System.out.println (STR);
}
@보수
공공 무효 attributeAdded (HttpSessionBindingEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"추가되었습니다 HttpSession이 도메인 객체 속성 : {0}, 속성 값은 다음과 같습니다 {1}",
event.getName () event.getValue ());
에서 System.out.println (STR);
}
@보수
공공 무효가 attributeRemoved (HttpSessionBindingEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"제거하려면 HttpSession에 도메인 객체 속성 : {0}, 속성 값은 다음과 같습니다 {1}",
event.getName () event.getValue ());
에서 System.out.println (STR);
}
@보수
공공 무효가 attributeReplaced (HttpSessionBindingEvent 이벤트) {
문자열 str을 = MessageFormat.format (
"HttpSession에 대체 도메인 개체 속성 : {0}입니다", event.getName ());
에서 System.out.println (STR);
}
}
web.xml 파일 ● 등록 된 리스너
<? XML 버전 = "1.0"인코딩 = "UTF-8"?>
<웹 응용 프로그램의 xmlns : XSI = "http://www.w3.org/2001/XMLSchema-instance"
의 xmlns = "http://xmlns.jcp.org/xml/ns/javaee"
XSI :의 schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
버전 = "3.1">
<수신기>
<설명> MyRequestAndSessionAttributeListener 监听 器 </ DESCRIPTION>
<리스너 클래스>
com.xdl.listener.MyRequestAndSessionAttribute 리스너
</ 리스너 클래스>
</ 청취자>
</ 웹 응용 프로그램>
● 쓰기 RequestAndSessionAttributeListenerTest.jsp 테스트 페이지
<% @ 페이지 언어 = "자바"의 contentType = "text / html과; 문자셋 = UTF-8"
pageEncoding = "UTF-8"%>
<! DOCTYPE html로>
<HTML>
<head>
<메타 캐릭터 = "UTF-8">
<제목> 밴드 브라더스의 IT 교육 </ 제목>
</ head>
<body>
<%
// 세션에서 도메인 객체에 속성을 추가
session.setAttribute ( "이름", "서른 학생들을 그릴");
// name 속성 도메인 세션 객체의 값을 바꾸기
session.setAttribute ( "이름", "스무 학생들을 그릴");
세션 개체 도메인 이름 속성을 제거 //
session.removeAttribute ( "이름");
// 도메인 개체를 요청 속성을 추가
request.setAttribute ( "이름", "서른 학생들을 그릴");
객체 요청 필드의 이름 속성의 값을 대체 //
request.setAttribute ( "이름", "스무 학생들을 그릴");
요청 도메인 개체 이름 특성을 제거 //
request.removeAttribute ( "이름");
%>
</ body>
</ HTML>
오픈 Tomcat 서버,도 13에 나타낸 결과.
콘솔,도 13 MyRequestAndSessionAttributeListener 출력 정보
실행, HttpSessionAttributeListeren 청취자와 ServletRequestAttribute Listeren 리스너의 결과에서 볼 수있는 것은 도메인 객체의 HttpSession의 속성 값이 변경 및 HttpServletRequest의를 도메인 객체의 성공에 수신합니다.