Whiteship's Note


UrlRewriterFilter 옵션

Java : 2010.02.07 20:12


http://tuckey.org/urlrewrite/manual/2.6/

UrlRewriterFilter 설정 파일을 다시 읽어 들일지 확인하는 주기 설정.
0은 계속해서 확인하고, 빈 값 또는 이 속성을 설정하지 않으면 다시 읽어 들일지 확인하지 않음.

    <init-param>
    <param-name>confReloadCheckInterval</param-name>
    <param-value>60</param-value>
    </init-param>

로그 수준을 설정한다.
사용할 수 있는 값: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, log4j, commons, sysout:{level} (ie, sysout:DEBUG)
기본값은 INFO

    <init-param>
    <param-name>logLevel</param-name>
    <param-value>DEBUG</param-value>
    </init-param>

status 페이지(UrlRewriter 설정 페이지 /rewrite-status)를 사용하지 않게 설정할 수 있다.
사용할 수 있는 값: true, false
기본값: true

    <init-param>
    <param-name>statusEnabled</param-name>
    <param-value>true</param-value>
    </init-param>


애플리케이션에서 필요한 경로와 중복되지 않도록 status 페이지 요청을 다른 경로로 변경할 수 있다.
반드시 /로 시작해야 한다.

    <init-param>
            <param-name>statusPath</param-name>
            <param-value>/status</param-value>
    </init-param>


top

Write a comment.


UrlRewriterFilter 설치하기

Java : 2010.02.07 17:20


http://tuckey.org/urlrewrite/manual/2.6/

1. 다운로드 또는 메이븐

        <dependency>
            <groupId>org.tuckey</groupId>
            <artifactId>urlrewritefilter</artifactId>
            <version>3.1.0</version>
        </dependency>

2. web.xml에 필터 맵핑 추가하기

    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3. WEB-INF 폴더에 urlrewrite.xml 파일 만들기

4. 애플리케이션 재시작하고 http://127.0.0.1:8080/rewrite-status 확인하기
top

Write a comment.


"서블릿 매핑 규칙"과 "필터 순서 정하기 규칙"

Java : 2010.02.07 16:36


둘 다 web.xml과 관련이 있는 것인데 '서블릿 매핑 규칙'은 /* 와 /foo 로 서블릿 매핑이 되어 있을 때 만약 http://springsprout.org/foo 라는 요청이 왔을 때 /*로 매핑되어 있는 서블릿으로 갈 것이냐... /foo로 매핑되어있는 서블릿으로 갈것이냐와 관련이 있는 규칙입니다. web.xml에 설정되어 있는 순서에 따라 달라질까요? 글쎄요..ㅋ

'필터 순서 정하기 규칙'은 위와는 다릅니다. 서블릿 매핑은 결국 어떤 것 하나를 선택하는 문제지만 이건 여러 개가 선택되어도 문제가 없기 때문이죠. 대신 그들 사이의 순서가... 중요할 수도 있을텐데 그 순서가 어떻게 정해지는지 이해해야될 것 같습니다. (스프링처럼 Ordered 인터페이스를 적용해 줄 것이지 복잡하게 이게 뭐람 @_@)

서블릿 매핑 규칙(헤드 퍼스트 서블릿과 JSP 영문판 2판 619 페이지)

1. 먼저 요청한 URL과 정확히 일치하는 매핑을 찾습니다. 그게 없다면 디렉토리가 일치하는 매핑을 찾습니다. 그게 없다면 확장자가 일치하는 매핑을 찾습니다.

2. 만약 요청이 여러 개의 디렉토리 매핑 <url-patterm> 과 일치하다면, 그 중에서 가장 긴 매핑을 선택합니다. 예를 들어 /foo/bar/myStuff.do 요청이 왔을 때 /foo/bar/* 매핑이 /foo/* 매핑을 이기게 됩니다. 가장 구체적인 것이 위너가 됩니다.

필터 순서 정하기 규칙(헤드 퍼스트 서블릿과 JSP 영문판 2판 710 페이지)

1) 해당 URL 패턴에 대응하는 모든 필터는 DD(보통 web.xml)에 정의되어 있는 순서대로 체인에 놓는다. 즉 필터 선언 중 <url-pattern>을 사용하여 해당 순서대로 필터를 놓는다.

2) 위 과정이 끝난 뒤 <servlet-name>에 대응하는 것들을 DD에 정의되어 있는 순서대로 그 뒤에 이어서 놓는다.

해당 페이지에 퀴즈도 있으니 풀어보시면... 재미납니다.ㅋ
top

  1. 양완수 2010.02.11 01:04 PERM. MOD/DEL REPLY

    항상 좋은 글입니다. 간과하고 그러러니 하고 넘기던 상황인데 이 글을 통해 잘 정리 했습니다.

    /foo/barmyStuff.do 요청이 왔을 때 /foo/bar/* 매핑이 /foo/* 매핑을 이기게 됩니다.
    =>/foo/bar/myStuff.do 요청이 왔을 때 /foo/bar/* 매핑이 /foo/* 매핑을 이기게 됩니다.

    기선 2010.02.11 07:23 PERM MOD/DEL

    감사합니다.

    오타 수정할께요~

Write a comment.


UrlRewriterFilter 소개

Java : 2010.02.07 16:00


http://tuckey.org/urlrewrite/

아파치 mod_rewrite와 같은 기능을 레진, 오리온, 톰캣 같은 J2EE 호환 웹 애플리케이션 서버에서 사용할 수 있도록 해주는 자바 웹 필터이다.

URL 재작성은 아파치 웹 서버에서 매우 흔히 사용하지만 자바 웹 애플리케이션 서버에서는 이용할 수 없었다.  이것을 사용하여 할 수 있는 주요 작업들은 다음과 같다.

- URL 간편화 / URL 추상화: URL을 간단하게 구성할 수 있고 애플리케이션의 기반 프레임워크 기술을 가릴 수 있다.
- 브라우저 감지: HTTP 헤더를 기반으로 URL을 재작성 할 수 있다.
- 날짜 기반 재작성: 날짜/시간을 기반으로 다른 URL로 포워딩 또는 리다이렉트 할 수 있다.
- 이동된 컨텐츠: 컨텐츠 이동을 편리하게 할 수 있다.
- 짧고/친화적인 URL(예, blah.com/latest 를 blah.com/download/ver1.2.46.2/setup.exe로 리다이렉트 시킬 수 있다.)
- 서블릿 매핑 엔진(Method Invocation 참조)

WEB-INF 디렉토리에 있는 urlrewrite.xml 이라는 xml 파일 한 개를 사용하여 설정한다.

대부분의 매개변수는 Perl5 스타일 정규 표현식 또는 와일드카드 표현식을 사용할 수 있다. 이 점이 매우 유용하다.




top

Write a comment.


플렉스 컴폰넌트와 샘플 코드

Adobe : 2010.02.07 15:34


http://www.adobe.com/devnet/flex/tourdeflex/web/#docIndex=0;illustIndex=0;sampleId=100


오호.. 액션 스크립트를 MXML에 <mx:script> 를 사용하여 포함시킬 수도 있군요. 저기서 예제 코드들을 참조하면 될 것 같습니다.

JQuery 사이트에 있는 예제 코드들도 유용하게 참조해서 썼는데.. 플렉스도 비슷한 페이지가 있네요.
top

Write a comment.