kr.co.hit.live.web.resources
Class XMLFilterListResources

java.lang.Object
  extended by kr.co.hit.live.web.resources.XMLFilterListResources

public class XMLFilterListResources
extends Object

XMLFilterListResources는 Live Framework에서 주어진 패턴의 URL만 filtering 하는 기능을 제공하며 또한 XML로 만들어진 filtering list를 저장하고 관리하는 기능을 제공한다.

구성 화일의 내용과 형식은 다음의 DTD에 맞게 작성한다.


     <?xml version="1.0" encoding="UTF-8"?>

     <!ELEMENT live-filter-list ( url-pattern-entry* ) >
     <!ELEMENT url-pattern-entry ( url-pattern* ) >
     <!ATTLIST url-pattern-entry name CDATA #REQUIRED>
     <!ELEMENT url-pattern (#PCDATA) >

 

다음은 위의 DTD에 따라 작성된 샘플 구성화일이다. 아래에서 <url-pattern> 에 query string도 정의되어 있다면 request의 query string의 패턴도 match 되어야한다.


 <?xml version="1.0"?>

 <live-filter-list>
     <url-pattern-entry name="EXCLUDE">
         <url-pattern>/a?param=value*</url-pattern>
         <url-pattern>/b</url-pattern>
         <url-pattern>/*</url-pattern>
     </url-pattern-entry>

     <url-pattern-entry name="INCLUDE">
         <url-pattern>/a/*</url-pattern>
         <url-pattern>/b/f/6.jsp</url-pattern>
         <url-pattern>/b/d/7.jsp</url-pattern>
     </url-pattern-entry>
 </live-filter-list>

 

XMLFilterListResources 의 구성 화일명은 Configurator 의 구성화일에 live.servlet.filter.configuration 이라는 Property 명을 사용하여 지정한다. 구성 화일명이 지정되지 않으면 디폴트 화일명으로 live-filter-list.xml를 사용한다.

※ 다음은 url-pattern 에 대한 sample이다.
"Java™ Servlet Specification Version 2.3 CHAPTER SRV.11 Mapping Requests to Servlets 참조

 SRV.11.2.2 Example Mapping Set

 Consider the following set of mappings:

 Table SRV.11-1 Example Set of Maps
 -------------------------------------------------------
 path pattern            servlet
 -------------------------------------------------------
 /foo/bar/*              servlet1
 /baz/*                  servlet2
 /catalog                servlet3
 *.bop                   servlet4
 -------------------------------------------------------

 Table SRV.11-2 Incoming Paths applied to Example Maps
 -------------------------------------------------------
 incoming path           servlet handling request
 -------------------------------------------------------
 /foo/bar/index.html     servlet1
 /foo/bar/index.bop      servlet1
 /baz                    servlet2
 /baz/index.html         servlet2
 /catalog                servlet3
 /catalog/racecar.bop    servlet4
 /index.bop              servlet4
 -------------------------------------------------------
 

Since:
3.0
Version:
$Revision: 1.1 $ $Date: 2006/09/26 08:20:13 $
Author:
노준훈(현대정보기술)

Nested Class Summary
static class XMLFilterListResources.UrlPattern
          *.jsp?
 
Method Summary
static XMLFilterListResources getInstance()
           XMLFilterListResources의 단일 인스턴스를 리턴한다.
 File getResourceFile()
           
 boolean isMatch(String entryName, javax.servlet.http.HttpServletRequest request)
           Filter List에 적용 하고자 하는 <url-pattern-entry>의 name 속성 값을 이용하여 Match 여부를 확인 한다.
 void refresh()
          객체 재생성
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static XMLFilterListResources getInstance()

XMLFilterListResources의 단일 인스턴스를 리턴한다.

Returns:
XMLFilterListResources 오브젝트

refresh

public void refresh()
객체 재생성


getResourceFile

public File getResourceFile()

isMatch

public boolean isMatch(String entryName,
                       javax.servlet.http.HttpServletRequest request)

Filter List에 적용 하고자 하는 <url-pattern-entry>의 name 속성 값을 이용하여 Match 여부를 확인 한다.

Parameters:
entryName - <url-pattern-entry>의 name 속성 값.
request - 매칭을 테스트할 HttpServletRequest 객체
Returns:
Match 여부


Copyright © 2014. All Rights Reserved.