형제 JavaWeb 튜토리얼 리스너 3의 IT 밴드

모니터 도메인 객체 속성은 청취자 변경

도메인 오브젝트 변경 이벤트 리스너 속성은 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에 나타낸 결과.

c8588c3829cb4252ba6f26dbe63718e2.png

콘솔,도 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에 나타낸 결과.

97fba8589c064481a5bb9b4d8597b1b4.png

콘솔,도 13 MyRequestAndSessionAttributeListener 출력 정보

 

실행, HttpSessionAttributeListeren 청취자와 ServletRequestAttribute Listeren 리스너의 결과에서 볼 수있는 것은 도메인 객체의 HttpSession의 속성 값이 변경 및 HttpServletRequest의를 도메인 객체의 성공에 수신합니다.

추천

출처www.cnblogs.com/itxdl/p/10961946.html