'Develop > Java' 카테고리의 다른 글
| Java RSA 간단한 비대칭키 암호 서명 검증 테스트 (0) | 2019.08.14 |
|---|---|
| tomcat7 구동 스크립트 업데이트 버전 (0) | 2018.03.11 |
| 자주 사용하는 이클립스(eclipse) 단축키 (0) | 2018.03.07 |
| [JS] 입력창에 특정키, 숫자만 입력받기(실시간) (0) | 2018.03.06 |
| [CSS] link a tag 색깔, 밑줄 제거 (0) | 2018.03.06 |
| Java RSA 간단한 비대칭키 암호 서명 검증 테스트 (0) | 2019.08.14 |
|---|---|
| tomcat7 구동 스크립트 업데이트 버전 (0) | 2018.03.11 |
| 자주 사용하는 이클립스(eclipse) 단축키 (0) | 2018.03.07 |
| [JS] 입력창에 특정키, 숫자만 입력받기(실시간) (0) | 2018.03.06 |
| [CSS] link a tag 색깔, 밑줄 제거 (0) | 2018.03.06 |
+정규식으로 스트링의 일부를 찾아 추출한다.
#include <iostream>
#include <string>
#include <regex>
using namespace std ;
string html="<a class=\"i-e\" href=\"DATA IM INTERESTED IN\">\n\
<a class=\"chrome\" href=\"nono chrome\">\n\
<a class=\"i-e\" href=\"ie like1\">\n\
<a class=\"chrome\" href=\"nono chrome\">\n\
<a class=\"i-e\" href=\"ie like2\">\n\
<a class=\"chrome\" href=\"nono chrome\">\n\
<a class=\"chrome\" href=\"nono chrome\">\n\
<a class=\"i-e\" style=\"font-size:10pt;\" href=\"ie like3\">\n\
<a class=\"chrome\" href=\"nono chrome\">\n\
<a class=\"chrome\" href=\"nono chrome\">\n\
<a class=\"i-e\" href=\"ie like4\"> <a class=\"i-e\" href=\"ie like5\">\n\
";
int main() {
smatch m, m2 ;
regex e ( "class=\"i-e\"([^<>]+)>" ) ; // get: href="ie like"
regex e2 ( "href=\"(.+)\"" ) ; // get ie like
bool r, r2 ;
string content ;
int start=0 ;
cout << "input html : " << html << endl ;
do {
content = html.substr(start) ;
// cout << "content:"<<content<<endl;
r=regex_search(content, m, e) ;
if ( r ) {
// cout << "search: " << r << endl ;
// cout << "str: " << m.position() << " "<< m.str() << endl ;
cout << "match : " << m[1] << endl ;
r2 = regex_search((string)m[1], m2, e2) ;
if ( r2 ) {
cout << " URL : " <<m2[1]<<endl ;
}
}
start+=m.str().length()+m.position();
} while( r );
return 0 ;
}
input html : <a class="i-e" href="DATA IM INTERESTED IN">
<a class="chrome" href="nono chrome">
<a class="i-e" href="ie like1">
<a class="chrome" href="nono chrome">
<a class="i-e" href="ie like2">
<a class="chrome" href="nono chrome">
<a class="chrome" href="nono chrome">
<a class="i-e" style="font-size:10pt;" href="ie like3">
<a class="chrome" href="nono chrome">
<a class="chrome" href="nono chrome">
<a class="i-e" href="ie like4"> <a class="i-e" href="ie like5">
match : href="DATA IM INTERESTED IN"
URL : DATA IM INTERESTED IN
match : href="ie like1"
URL : ie like1
match : href="ie like2"
URL : ie like2
match : style="font-size:10pt;" href="ie like3"
URL : ie like3
match : href="ie like4"
URL : ie like4
match : href="ie like5"
URL : ie like5
| Vector 3 (0) | 2018.05.23 |
|---|---|
| Vector 2 (1) | 2018.05.18 |
| Vector 1 (0) | 2018.05.16 |
| gdb로 디버깅하기 (0) | 2018.03.06 |
| mutex 동기화 예제 (1) | 2018.03.06 |
자주 사용하는 이클립스(eclipse) 단축키
개발툴에서는 단축키 사용이 필수인데, 여러가지를 쓰다보면 가끔 기억이 나지 않을 때가 종종 있습니다. 주로 많이 쓰는 이클립스 단축키들을 정리해봤습니다.
+ 일반적인 기능 단축키
| tomcat7 구동 스크립트 업데이트 버전 (0) | 2018.03.11 |
|---|---|
| tomcat을 root말고 다른 계정으로 운영하기 (1) | 2018.03.10 |
| [JS] 입력창에 특정키, 숫자만 입력받기(실시간) (0) | 2018.03.06 |
| [CSS] link a tag 색깔, 밑줄 제거 (0) | 2018.03.06 |
| [JS] iframe 페이지 직접 접속 막기 (0) | 2018.03.06 |
입력창에 실시간으로 숫자키만 입력 받도록 하고, 출력하는 기능예제입니다.
보통은 onsubmit 이나 onchange에서 처리해도 되지만, 키 타이핑시 마다 즉시 체크하도록 하여 아예 입력이 안 되도록 합니다.
검사 루틴만 변경하면 원하는 key typing만 받도록 처리할 수 있습니다.
<input id="myinput" onkeypress="javascript:return myFunction(event);" onkeyup="myFunction2();">
</input>
only numbers...
<p id="demo"></p>
<script>
function myFunction(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
function myFunction2() {
var x = document.getElementById("myinput").value;
document.getElementById("demo").innerHTML = "You selected: " + x;
}
</script>
| tomcat을 root말고 다른 계정으로 운영하기 (1) | 2018.03.10 |
|---|---|
| 자주 사용하는 이클립스(eclipse) 단축키 (0) | 2018.03.07 |
| [CSS] link a tag 색깔, 밑줄 제거 (0) | 2018.03.06 |
| [JS] iframe 페이지 직접 접속 막기 (0) | 2018.03.06 |
| [JS] 입력값 실시간 검증 (0) | 2018.03.06 |
링크 태그인 a를 보면 기본적으로 밑줄이 있고, 방문했던 링크는 색깔도 변한다.
보기에 안 좋을 수 있다.
css를 추가하여 간단하게 깔끔하게 원하는대로 변경할 수 있다.
예)
a:link { color:#0000ff; text-decoration: none;}
a:visited { color:#0000ff; text-decoration: none;}
a:hover { color:#cc0000; text-decoration: none;}
a:active { color:#ff0000; text-decoration: none;}
| 자주 사용하는 이클립스(eclipse) 단축키 (0) | 2018.03.07 |
|---|---|
| [JS] 입력창에 특정키, 숫자만 입력받기(실시간) (0) | 2018.03.06 |
| [JS] iframe 페이지 직접 접속 막기 (0) | 2018.03.06 |
| [JS] 입력값 실시간 검증 (0) | 2018.03.06 |
| [JS] 폼 입력값 검증 (1) | 2018.03.06 |
frame을 나누어 메뉴페이지와 내용 페이지들을 분리하여 구성하고 있는데, 외부에서 직접 내용 페이지 URL로 접근할때 메뉴 페이지나 상단 타이틀 페이지 등 다른 페이지들이 출력되지 않는 문제가 있다.
frame 내부 페이지 직접 접근시 최상위 페이지로 이동하게 만드는 기능.
서브페이지 코드에 이동할 최상위 페이지를 지정해 둔다. 메뉴 선택을 바로 들어갈 수 있도록 파라미터로 이동 메뉴를 준다.
<script>
// 프레임 페이지 직접 접근 차단. 메인 페이지로 이동
self.onload = function init() {
if ( self==top ) {
self.location = "/?menu=hash" ;
}
}
</script>
| [JS] 입력창에 특정키, 숫자만 입력받기(실시간) (0) | 2018.03.06 |
|---|---|
| [CSS] link a tag 색깔, 밑줄 제거 (0) | 2018.03.06 |
| [JS] 입력값 실시간 검증 (0) | 2018.03.06 |
| [JS] 폼 입력값 검증 (1) | 2018.03.06 |
| 여러가지 이클립스 에러 해결 (1) | 2018.03.06 |
gdb 사용하기(디버깅)
C/CPP로 작성한 프로그램을 실시간 디버깅할 때 사용한다.
또는 에러 발생으로 core dump가 떨어지면 그 상태의 메모리 정보를 로딩하여 디버깅도 할 수 있다.
- gdb 실행
gdb [core]나 [실행 파일]
gdb a.out core
gdb a.out 1234 (attach to pid)
r [parameter]
- 파라미터
r [parameters]
l (file:function or line#) ; 소스
- break
break [function name]
break function1
- 다음 코드로 계속 진행
c ; continue
n ; next (step over)
s ; step (step into)
- bt ; back trace
call 스택 보기. 어느 함수에서 죽었는지 확인 가능. 디버깅 정보가 포함되어 있으면 코드 라인까지 나온다.
-q ; quit
1. 먼저 컴파일시 -g 옵션을 주어, 디버그 정보가 남도록 한다.
gdb [program]
2. 소스보기
l (list) ; 파일:함수명, 함수명, 라인번호
set listsize 20 (20줄씩 나오게한다.)
l main
l 25
l file.c:func:
3. 실행
r (run) [arg1] [arg2] ...
k (kill) ; 프로그램 종료
s (step) ; trace into.
n (next) ; next line. (function skip...)
c (continue)
u (until) ; 현재 루프를 빠져나감
finish ; 현재 함수를 수행하고 빠져나감
return ; 현재 함수를 수행하지 않고 빠져나감.
return (x) ; 리턴함.
4. BP (break point)
b 19
b main
b file.c:10
b -2
b 10 if tmp==0 ; tmp가 0일때 10라인에 bp 설정
cl hello ; BP 삭제
cl 10
cl file.c:20
d ; BP 모두 해제
info breakpoints ; BP 목록
줄여서 i b (TAB키 사용 가능)
enable 2
disable 2
5. w (watch)
watch i ; i값이 변경될때마다 알려줌. bp
info locals ; 지역변수 보기
info variables ; 전역 변수 리스트
p (printf) ; 개별 변수 보기
p *p ; 포인터 값 보기
p $eax ; 레지스터 값
display i ; 변수값을 항상 display
undisplay i;
6. 스택
bt (backtrace) ; 스택 출력
info f (frame)
info args
info locals
bt
frame 3
up ; 상위 스택 프레임으로 이동
down ; 하위 스택 프로임으로 이동
+ 쓰레드 정보
info threads
-디버깅 쓰레드 전환
t 쓰레드인덱스번호
| Vector 3 (0) | 2018.05.23 |
|---|---|
| Vector 2 (1) | 2018.05.18 |
| Vector 1 (0) | 2018.05.16 |
| 정규식으로 스트링 일부 추출하기 (1) | 2018.03.10 |
| mutex 동기화 예제 (1) | 2018.03.06 |
#include <mutex>
#include <thread>
std::mutex mtx ;
void ThreadFunc(int nID, int &nVal) {
mtx.lock() ;
동기화 블록
mtx.unlock() ;
}
int main() {
int nVal=0 ;
std::thread th1(ThreadFunc, 0, std::ref(nVal)) ;
std::thread th2(ThreadFunc, 1, std::ref(nVal)) ;
th1.join() ;
th2.join() ;
return 0 ;
}
void ThreadA(void *arg) {
pthread_mutex_lock(&mutexa) ;
to do
pthread_mutex_unlock(&mutexa) ;
}
pthread_t threada ;
int thra ;
int status ;
thra = pthread_create( &threada, NULL, ThreadA, (void*)NULL) ;
pthread_join(threada, (void**) &status) ;
| Vector 3 (0) | 2018.05.23 |
|---|---|
| Vector 2 (1) | 2018.05.18 |
| Vector 1 (0) | 2018.05.16 |
| 정규식으로 스트링 일부 추출하기 (1) | 2018.03.10 |
| gdb로 디버깅하기 (0) | 2018.03.06 |
자바스크립트에서 입력필드값을 타이핑시마다 검증하는 방법이다.
예) textarea의 최대 글자수 체크하여 넘지 못하도록 하기.
이것은 간단하게 속성으로 설정할 수 도 있지만, 여기서는 예제로 해 본 것이다.
검사 부분을 원하는 입력값 형식체크로 변경하여 사용할 수 있다.
<html>
<head>
<script language="javascript">
function checkLength(obj) {
var maxlen = 10;
if(obj.value.length > maxlen) {
obj.value = obj.value.substring(0,maxlen);
}
}
</script>
</head>
<body>
<form name="form">
<textarea name="content" cols="20" rows="5" onKeyUp="checkLength(this);"></textarea>
<textarea name="content2" maxlength="10"></textarea>
</form>
<body>
</html>
| [CSS] link a tag 색깔, 밑줄 제거 (0) | 2018.03.06 |
|---|---|
| [JS] iframe 페이지 직접 접속 막기 (0) | 2018.03.06 |
| [JS] 폼 입력값 검증 (1) | 2018.03.06 |
| 여러가지 이클립스 에러 해결 (1) | 2018.03.06 |
| tomcat 부팅시 자동 구동 스크립트 (0) | 2018.03.06 |
자바스크립트에서 폼 데이터를 전송시에 입력값 검증을 하는 방법이다.
보통 폼 데이터를 submit(전송, 확인 버튼)을 할 때, 검증을 수행하게 한다.
<form action="aaa.html" method="POST" onsubmit="return formChk();">
<input id='aname' type="text" name="aname">
위와 같이 form에 onsubmit 이벤트에 검사 할 함수를 추가한다.
return은 onsubmit의 리턴값으로 formChk()의 반환값을 그대로 사용하게 한다.
리턴값이 false이면 submit을 취소하게 된다.
<script>
function formChk() {
// to do : 입력값 검증
if ( $('#aname').val()=='' ) {
alert("input data!") ;
return false ;
}
return true;
}
위와 같이 입력값을 id로 찾을때는 jquery를 사용하여 변수에 접근하면 편리하다.
순수 js를 사용하려면 name으로 element를 찾아 접근하면 된다.
document.forms[0].aname.value
또는
document.getElementByName("aname").value
입력값 검증에서 입력값을 다시 받도록 할 때는 보통 포커스를 입력필드로 이동시킨다.
변수명이 길어지므로 간단하게 함수로 파라미터를 받아 처리하기도 한다.
function formCheck(frm) {
if ( frm.aname.value=="") {
alert("이름을 입력해주세요.") ;
frm.aname.focus() ;
return false ;
}
return true ;
}
<form name="myform" onsubmit="return formCheck(this);">
이렇게 사용한다.
+폼체크에서 많이 체크하는 루틴
var fVal = frm.aname.value;
수(integer) 범위 체크
if ( parseInt(fVal) < 8 || parseInt(fVal)>10 )
빈값 체크
if ( fVal=="" )
| [JS] iframe 페이지 직접 접속 막기 (0) | 2018.03.06 |
|---|---|
| [JS] 입력값 실시간 검증 (0) | 2018.03.06 |
| 여러가지 이클립스 에러 해결 (1) | 2018.03.06 |
| tomcat 부팅시 자동 구동 스크립트 (0) | 2018.03.06 |
| tomcat 프로세스 모니터링. 죽으면 다시 시작 (0) | 2018.03.06 |