<%! 표시가 핵심 (태그제거하기 함수를 예로 들었습니다.)
<%!
/**
* @(#)RemoveTagTest.java 2003/05/19
*
* To remove tags.
* 태그 제거하기
*
* @resource http://www.javaclue.org/pub/java/htmltool/removetag/
* @date 2003/05/19
* @author Pilho Kim (phkim AT cluecom DOT co DOT kr)
*/
public static String removeTag(String s) {
final int NORMAL_STATE = 0;
final int TAG_STATE = 1;
final int START_TAG_STATE = 2;
final int END_TAG_STATE = 3;
final int SINGLE_QUOT_STATE = 4;
final int DOUBLE_QUOT_STATE = 5;
int state = NORMAL_STATE;
int oldState = NORMAL_STATE;
char[] chars = s.toCharArray();
StringBuffer sb = new StringBuffer();
char a;
for (int i = 0; i < chars.length; i++) {
a = chars[i];
switch (state) {
case NORMAL_STATE:
if (a == '<')
state = TAG_STATE;
else
sb.append(a);
break;
case TAG_STATE:
if (a == '>')
state = NORMAL_STATE;
else if (a == '\"') {
oldState = state;
state = DOUBLE_QUOT_STATE;
}
else if (a == '\'') {
oldState = state;
state = SINGLE_QUOT_STATE;
}
else if (a == '/')
state = END_TAG_STATE;
else if (a != ' ' && a != '\t' && a != '\n' && a != '\r' && a != '\f')
state = START_TAG_STATE;
break;
case START_TAG_STATE:
case END_TAG_STATE:
if (a == '>')
state = NORMAL_STATE;
else if (a == '\"') {
oldState = state;
state = DOUBLE_QUOT_STATE;
}
else if (a == '\'') {
oldState = state;
state = SINGLE_QUOT_STATE;
}
else if (a == '\"')
state = DOUBLE_QUOT_STATE;
else if (a == '\'')
state = SINGLE_QUOT_STATE;
break;
case DOUBLE_QUOT_STATE:
if (a == '\"')
state = oldState;
break;
case SINGLE_QUOT_STATE:
if (a == '\'')
state = oldState;
break;
}
}
return sb.toString();
}
//System.out.println(removeTag(str));
%>
날짜와 관련된 연산 (0) | 2010.12.15 |
---|---|
페이지 이동시 사용할 수 있는 3가지 방법 (0) | 2010.11.25 |
JSP 메일 발송 테스트 (0) | 2010.10.13 |
이클립스에서 JSP 사용하기 (0) | 2010.10.01 |
톰캣구조 및 컨테이너 확인 (0) | 2010.09.11 |
댓글 영역