SAXBuilder builder 				= new SAXBuilder();
try{
	Document doc	 			= builder.build("rss url 경로");
	Element root 				= doc.getRootElement();
	Element channelEle			= root.getChild("channel");
	List addressList			= channelEle.getChildren("item");
	Iterator it 				= addressList.iterator();
	while (it.hasNext() == true){    
		 Element emt = (Element)it.next();
		 
		 String xmlIdx			= "0";
		 String title 			= setReplaceNull(emt.getChild("title").getText());
		 String link 			= setReplaceNull(emt.getChild("link").getText());
		 String description 		= setReplaceNull(emt.getChild("description").getText());
		 String author 			= setReplaceNull(emt.getChild("author").getText());
		 String pubDate 		= setReplaceNull(emt.getChild("pubDate").getText());
		 String openChk 		= "Y";
		 
		 HashMap hm = new HashMap();
		 hm.put("title", title);
		 hm.put("link", link);
		 hm.put("description", description);
		 hm.put("author", author);
		 hm.put("pubDate", pubDate);
		 hm.put("openChk", openChk);
		 hm.put("xmlIdx", xmlIdx);
		 dataList.add(hm);
	}
}catch(JDOMException e){
	e.printStackTrace();
}


반응형
Posted by 질주하는구
,

간혹 java smtp메일 발송시 한글이 깨지는 경우 제목 과 내용의 인코딩을 변경해서

해결 할 수 있습니다.

 

message.setSubject(subject);

이렇게 되어 있는 부분을 아래와 같이 변경 합니다.

인코딩 타입의 경우 메일 상황에 맞춰서 처리 해주면 됩니다.


message.setSubject(MimeUtility.encodeText(subject, "EUC-KR", "B"));

message.setSubject(MimeUtility.encodeText(subject, "UTF-8", "B"));

message.setContent(content, "text/html; charset=UTF-8");

message.setContent(content, "text/html; charset=EUC-KR");

반응형

'JAVA' 카테고리의 다른 글

URLConnection 을 이용해서 url결과를 가지고 오는 메소드  (0) 2015.04.14
RSS XML 정보를 가지고 오는 소스  (0) 2015.04.14
replaceAll 사용시 특수문자  (0) 2015.03.24
Pattern.matches  (0) 2015.03.24
정규식 간단 예제  (0) 2015.03.24
Posted by 질주하는구
,

repalceAll 사용시 특수문자의 경우 치환을 위해서 작성하는 방식이 다른 경우가 존재 한다

- []을 사용해야 인식 하는 특수 문자

* = [*]

+ = [+]

$ = [&]

| = [|]

? = [?]


- \\를 붙여줘야 인식 하는 특수 문자

( = \\(

) = \\)

{ = \\{

} = \\}

[ = \\[

] = \\]


- " 을 String안에 사용하기 위해서 \ 한번 붙여 준다

" = \"


- \ 을 String에서 사용하기 위해서는

\ = \\


- \ 을 replaceAll  하기 위해서는

\ = \\\\


\ 의 치환을 위해서 replaceAll에서 \\\\개를 사용해야 하는

이유는 간단하다 \\은 \ 하나를 의미 한다

이때 replaceAll에 \\를 하게 되면 - \\를 붙여줘야 인식 하는 특수 문자

이 부분이 동작 하게 된다.

그렇게 때문에 \\ \\ 이렇게 해서 역슬래시4개를 사용해서 2개의 역슬래시로

인식 하게 하는 것이다.

반응형

'JAVA' 카테고리의 다른 글

RSS XML 정보를 가지고 오는 소스  (0) 2015.04.14
java메일 제목 깨지는 현상  (0) 2015.03.30
Pattern.matches  (0) 2015.03.24
정규식 간단 예제  (0) 2015.03.24
자바 정규식 간단 설명  (0) 2015.03.24
Posted by 질주하는구
,

Pattern.matches

JAVA 2015. 3. 24. 16:53

자바에서 정규식을 이용해서 String데이터를 확인 할 수 있다.


java.util.regex 패키지의 Match, Pattern 클래스를 이용해서 처리 하게 된다.

boolean isChk = Pattern.matches("^[a-zA-Z0-9]*$", str);


정규표현식은 간단히 아래의 문법을 따르게 된다.


^ : 문자열의 시작을 나타냄. 

$ : 문자열의 종료를 나타냄. 

. : 임의의 한 문자를 나타냄. (문자의 종류는 가리지 않는다)

| : or를 나타냄. 


? : 앞 문자가 없거나 하나있음을 나타냄. 

+ : 앞 문자가 하나 이상임을 나타냄. 

* : 앞 문자가 없을 수도 무한정 많을 수도 있음을 나타냄. 


만약, .* 으로 정규식이 시작한다면 시작하는 문자열과 같은 문자열이 뒤에 없거나 많을 수도 있는 경우에만 일치를 시킨다. 즉, abc 일 경우 시작문자인 a를 기준으로 a가 없을경우와 a가 무한정 많은 경우에도 true를 반환하기 때문에 abc의 경우는 true를 반환한다. 


[] : 문자 클래스를 지정할 때 사용한다. 문자의 집합이나 범위를 나타내면 두 문자 사이는 '-' 기호로 범위를 나타낸다. []내에서 ^ 가 선행하여 나타나면 not 를 나타낸다. 


{} : 선행문자가 나타나는 횟수 또는 범위를 나타낸다. 

a{3} 인 경우 a가 3번 반복된 경우를 말하며, a{3,}이면 a가 3번 이상 반복인 경우를 말한다. 또한 a{3,5}인 경우 a가 3번 이상 5번 이하 반복된 경우를 나타낸다. 



\w : 알파벳이나 숫자

\W : 알파벳이나 숫자를 제외한 문자

\d : 숫자 [0-9]와 동일

\D : 숫자를 제외한 모든 문자


이를 응용하면 복잡한 내용도 체크가 가능하다

간단한 검증으로는

^[0-9]*$  :  숫자만

^[a-zA-Z]*$  :  영문자만

^[가-�R]*$  :  한글만

^[a-zA-Z0-9]*$  :  영어/숫자만


반응형

'JAVA' 카테고리의 다른 글

java메일 제목 깨지는 현상  (0) 2015.03.30
replaceAll 사용시 특수문자  (0) 2015.03.24
정규식 간단 예제  (0) 2015.03.24
자바 정규식 간단 설명  (0) 2015.03.24
script 태그 replaceAll  (0) 2015.03.24
Posted by 질주하는구
,

정규식 간단 예제

JAVA 2015. 3. 24. 16:50

정규식 사용시 참고할 만한 간단한 예제 입니다.

1. html태그 삭제

str = str.replaceAll("&[a-z]+;", " ");

str = str.replaceAll("(<([a-z!/]+)[^>]*>)|([\\t\\x0B\\f]+)|(([\\r\\n][\\r\\n])+)|(-->)", "");


2. email주소 찾는 패턴

- ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$  

- ^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$

- ^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@ [A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$


3. 파일명중 이미지 파일을 찾는 패턴

- (?i)^[\\d\\D]*\\.(jpg|jpeg|bmp|gif|png)$


4. ip주소를 찾는 패턴

- ^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.

([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$

- ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})


5. html 태그중 링크를 찾아내는 패턴

- (?i)<a([^>]+)>(.+?)</a>\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+))


6. 휴대폰

- ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$ 


7. 일반전화

- ^\d{2,3} - \d{3,4} - \d{4}$


8. 주민번호

- \d{6} \- [1-4]\d{6}

반응형

'JAVA' 카테고리의 다른 글

replaceAll 사용시 특수문자  (0) 2015.03.24
Pattern.matches  (0) 2015.03.24
자바 정규식 간단 설명  (0) 2015.03.24
script 태그 replaceAll  (0) 2015.03.24
javadoc생성시 인코딩 오류 발생  (0) 2015.03.11
Posted by 질주하는구
,

replaceAll등을 사용할때 자바 정규식을 이용해서 치환하게 되면

좀더 짦은 소스로 많은 내용을 치환 할 수 있습니다.

아래 내용은 간단하게 자바 정규식을 정리한 내용 입니다.


.

하나의 문자를 의미 합니다.

ex> ab. => abc 혹은 abd 등을 모두 의미 합니다.

String str = "";

str = str.replaceAll("ab.", "");

str의 값에 따라서 출력되는 데이터는

abc => ""

abd => ""

abddd => "dd"


?

해당 패턴의 앞에 문자가(1개)있거나 없거나 를 의미 합니다.

ex> (?)c => abc 혹은 bc 등을 모두 의미 합니다.

String str = "";

str = str.replaceAll("(?)c", "");

str의 값에 따라서 출력되는 데이터는

abc => "ab"

bc => "b"

c => ""


*

하나 이상의 문자를 의미하게 됩니다.

ex> ab* => aaa 혹은 ad 등을 모두 의미 합니다.

String str = "";

str = str.replaceAll("ab*", "");

str의 값에 따라서 출력되는 데이터는

abc => "c"

ab => ""

abcdeded => "cdeded"


^

문자열의 시작을 의미합니다.

ex> ^a => a로 시작되는 문자를 모두 의미 합니다.

String str = "";

str = str.replaceAll("^a", "");

acccccc => "cccccc"

ccccacccc => "ccccacccc"

ccccca => "ccccca"


+

앞의 문자가 하나이상의 반복을 의미합니다.

ex> ab+ => abbbb 를 의미 하게 됩니다.

String str = "";

str = str.replaceAll("ab*", "");

str의 값에 따라서 출력되는 데이터는

abbbbbbbb => ""

abbbbcccc => "cccc"

abccbbbb => "ccbbbb"


[^]
괄호안의 형식을 제외한다는 의미입니다.
ex> [^a]bc => a를 제외한 bc, bcd 를 의미 하게 됩니다.

$
문자열의 끝을 의미합니다.
ex> ab& => b로 끝나는 문자를 의미 하게 됩니다.

[ ]
괄호안의 형식이 일치하는 경우를 나타냅니다.
ex> [ab] => a, b, ab 를 의미 하게 됩니다.
String str = "";
str = str.replaceAll("[ab]", "");
str의 값에 따라서 출력되는 데이터는
aaaaaaaa => ""
bbbbbb => ""
abababab => ""
cccabccc => "cccccc"
aaabbbabab => ""

( )
()안의 내용을 하나의 묶음으로 사용합니다.
ex> (ab) => ab 를 의미 합니다.
String str = "";
str = str.replaceAll("(ab)", "");
str의 값에 따라서 출력되는 데이터는
aaaaaaa => "aaaaaaa"
bbbbbb => "bbbbbb"
abababab => ""
cccabccc => "cccccc"
aaabbbabab => "aabb"

{ }
안의 숫자에 따른 반복개수를 의미합니다.
ex> ab{2} => abab 를 의미 합니다.

|
or연산자와 동일합니다.
ex> a|b|c 는 a,b,c,abc 를 의미 합니다.


반응형

'JAVA' 카테고리의 다른 글

Pattern.matches  (0) 2015.03.24
정규식 간단 예제  (0) 2015.03.24
script 태그 replaceAll  (0) 2015.03.24
javadoc생성시 인코딩 오류 발생  (0) 2015.03.11
youtube api연동 샘플 소스  (0) 2015.03.09
Posted by 질주하는구
,

script 태그 replaceAll

JAVA 2015. 3. 24. 15:44

String xssStr = "</script dddddd>";

xssStr = xssStr.replaceAll("(?i)<(/?script[^>]*)>", "");

System.out.println("xssStr: "+xssStr);

반응형

'JAVA' 카테고리의 다른 글

정규식 간단 예제  (0) 2015.03.24
자바 정규식 간단 설명  (0) 2015.03.24
javadoc생성시 인코딩 오류 발생  (0) 2015.03.11
youtube api연동 샘플 소스  (0) 2015.03.09
자바 xss필터  (0) 2015.03.09
Posted by 질주하는구
,

javadoc 생성시 인코딩 오류가 발생되는 경우

VM options에 -encoding UTF-8 입력 하면 된다.

반응형

'JAVA' 카테고리의 다른 글

자바 정규식 간단 설명  (0) 2015.03.24
script 태그 replaceAll  (0) 2015.03.24
youtube api연동 샘플 소스  (0) 2015.03.09
자바 xss필터  (0) 2015.03.09
자바 날짜 함수 계산  (0) 2015.03.09
Posted by 질주하는구
,

youtube api를 이용해서 계정에 데이터를 업로드 하고 

사용자 화면에 출력하는 프로그램 샘플 입니다.

(2013년 버전)


youtube api.zip


반응형

'JAVA' 카테고리의 다른 글

script 태그 replaceAll  (0) 2015.03.24
javadoc생성시 인코딩 오류 발생  (0) 2015.03.11
자바 xss필터  (0) 2015.03.09
자바 날짜 함수 계산  (0) 2015.03.09
자바 정규식으로 html태그 제거  (0) 2015.03.09
Posted by 질주하는구
,

자바 xss필터

JAVA 2015. 3. 9. 14:37

getParameter에서 넘어오는 데이터를 xss필터를 설정해서 처리 하는 경우에 사용하는

설정 및 소스 파일 입니다.


paramter filter.zip


반응형

'JAVA' 카테고리의 다른 글

javadoc생성시 인코딩 오류 발생  (0) 2015.03.11
youtube api연동 샘플 소스  (0) 2015.03.09
자바 날짜 함수 계산  (0) 2015.03.09
자바 정규식으로 html태그 제거  (0) 2015.03.09
서버 아이피 알아 오기  (0) 2015.03.05
Posted by 질주하는구
,