티스토리 뷰
UrlRewirteFilter 2.6 매뉴얼
설치 |
1. 다운로드 받은 파일을 컨텍스트 디렉토리에 풀면 WEB-INF 디렉토리에 urlrewirte.xml이 들어있다.
2. WEB-INF/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. 컨텍스트를 재실행한다.
필터 파라미터 |
기본 사항외에 기타 리로딩 설정에 관련된 추가 사항들이 있다. 자가 설명을 참조하길 바란다.
WEB-INF/urlrewrite.xml 설정 |
설정사항은 WEB-INF폴더에 존재하는 간단한 XML파일을 통하여 이루어진다. 이 XML파일은 urlrewrite.xml이라고 명명한다. 예제를 참조하여 기재하며, 기본 설정을 다음과 같다.
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> <urlrewrite> <rule> <from>^/some/olddir/(.*)$</from> <to type="redirect">/very/newdir/$1</to> </rule> </urlrewrite> |
urlrewirte.xml 파일은 'urlrewrite'로 불리는 루트 요소를 포함하여야 하고 최소 하나의 ‘룰’요소를 포함하여야 한다.
하나의 ‘룰’은 ‘from'과 ’to'를 포함하고, ‘condition'요소나 and/or 같은 ’set‘요소를 가질 수 있다.
'룰‘은 입력 요청에 처리시, 모든 ’condition' 요소를 만나게 되며, 'from'은 요청 URL과 ‘to'로 ’from' 패턴에 적용되어 생성되는 최종 URL에 적용된다. 그렇게해서 룰은 'set'으로 매칭되어 실행된다.
초기 적용시 주의사항
· 룰에 ‘&'를 입력하기 원하면 '&'를 XML에 입력하여야 한다.
· 가장 간단하게 실행시키기 위해서 모든 from에 ^과 끝으로 $를 사용한다.
Tip) 일반적으로 문자열의 시작으로 ^를 기입하며 $를 끝으로 기입한다.
/my/url/path를 요청하는 것이 <from>^url/$</from>과 맞지 않지만 <from>/url/</from>과는 맞는다
· <outbound-rule>사용시 코드 안에 모든 URL들은 인코딩 되어야 한다는 것을 기억하라.
· 정규식들은 조합되며 그 때 . 자바용 정규 표현 구문을 참조하여라
참조 : http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
간단하게 ‘룰’ 필터를 실행 시키면 다음과 같은 슈도 코드처럼 된다.
Pattern.compile(<from> element); pattern.matcher(each request url); matcher.replaceAll(<to> element); if ( <condition> elements match && pattern matched ) { execute <run> elements (if any) perform <to> element (if any) } |
<rule> 요소 |
룰에 기초한다.
Attribute |
Possible Value |
Explanation |
enabled (optional) |
true (default) |
Enable this rule. |
|
false |
Disable this rule. |
예제로 /world/usa/nyc를 요청시에 /world.jsp?country=usa&city=nyc로 변환 되어 포워딩 된다.
<rule enabled="true"> <from>^/world/([a-z]+)/([a-z]+)$</from> <to>/world.jsp?country=$1&city=$2</to> </rule> |
<outbound-rule> 요소 |
일반적인 ‘룰’과 매우 비슷하게 보이지만 response.encodeURL()를 통과하여 url이 재 작성된다.
Attribute |
Possible Value |
Explanation |
enabled (optional) |
true (default) |
Enable this rule. |
false |
Disable this rule. | |
encodefirst (optional) |
true |
Run encodeURL() before running this outbound rule. |
false (default) |
Run encodeURL() after running this outbound rule. |
예제.
<outbound-rule> <from>^/world.jsp?country=([a-z]+)&city=([a-z]+)$</from> <to>/world/$1/$2</to> </outbound-rule> |
코드로 JSP 예제를 사용.
<a href="">nyc</a> 가
<a href="/world/usa/nyc">nyc</a> 로 출력됨.
JSTL을 사용해도 잘 동작함.
<from> 요소 |
<to> 요소 |
- Total
- Today
- Yesterday
- 윈도우 인증
- MSSQL
- DB링크
- 크롬
- 정규식
- 문자열
- width
- onblur
- 리사이즈
- 프로시저
- 아이프레임
- Setup
- 프로시져
- 스크립트
- 이벤트 상속
- 연차
- height
- 오라클
- ajax
- 디비링크
- 팝업
- NSIS
- scrollHeight
- 배열 변환
- 제약조건
- unique
- SQL
- 에누리
- 이벤트
- 셋업
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |