이 블로그 검색

2011년 1월 30일 일요일

Calendar TimeZone 설정하기

TimeZone tz = TimeZone.getTimeZone("GMT+09:00");
                Calendar oCalendar = Calendar.getInstance(tz);  // 현재 날짜/시간 등의 각종 정보 얻기
                System.out.println("현재 년: " +  oCalendar.get(Calendar.YEAR));
                String year =Integer.toString(oCalendar.get(Calendar.YEAR));
                   System.out.println("현재 월: " + (oCalendar.get(Calendar.MONTH) + 1));
                   String month = Integer.toString(oCalendar.get(Calendar.MONTH) + 1);
                   System.out.println("현재 일: " +  oCalendar.get(Calendar.DAY_OF_MONTH));
                   String day=Integer.toString(oCalendar.get(Calendar.DAY_OF_MONTH));
                   System.out.println("현재 시: " +  oCalendar.get(Calendar.HOUR_OF_DAY)); // 24시간제

2011년 1월 27일 목요일

임의 정렬

8i(or higher) 이후에 참 편리한 기능이 많이 추가되었는데

그 가운데 하나가 ORDER BY 절에서 함수를 사용할 수 있다는 것입니다.

SELECT *
FROM tab
ORDER BY DECODE(book,'Y','1','B','2','U','3','A','4')

이렇게 적어주시면 book 컬럼의 Y 값이 정렬될 때는 1 로 치환되어 가장 앞에 오게 됩니다.

DECODE 함수로 적어주기에 복잡한 규칙이라면,
CASE 구문을 사용하셔도 됩니다.

여러 SQL에서 공통으로 사용한다면 사용자정의 함수를 생성하여 활용할 것을 추천해 드립니다.

정렬하는 규칙이 변경되거나 그 양이 매우 많다면
정렬 기준만을 담은 테이블을 만들고 조인하여 사용하는 것이 
인덱스 활용면에서 더 좋을 것입니다.

2011년 1월 21일 금요일

노래

lonely night
천년의 사랑

참장공2


[기공 전문가 이명복의 생활기공 건강법 ②]
‘변강쇠’ 되려면 음양교합·음극양생 연마하라!
정력 강화하는 방중기공
협의의 방중술은 성(性) 테크닉만을 가리키지만, 원래 도가(道家)의 방중술은 그에 그치지 않고 인생과 인간관계를 연구하고 조절하는 심오한 수련법을 말한다.
이 수련법에 연원한 기공은 일차적으로 성에너지의 조절·강화를 통해 생명력의 고양을 도모한다.
특히 협의의 방중술은 ‘방중기공’이라 불리는 기공의 한 분야. 방중기공의 비방을 알아본다. 
정력가 초석 닦는 기공 비방
내마보식 참장공 자세


미국의 한 할아버지는 비아그라 보급 이후 마음껏 성을 즐기려 할머니를 버리고 무단가출을 했다고 한다. 그의 앞길이 어떠할진 짐작이 갈 것이다.
절륜한 정력가는 많은 남성들의 희망. 그러나 초정력가가 되려면 먼저 기초체력이 튼튼해야 한다. 체력이 부실한 사람이 무리하게 성을 탐닉하면 몸에 이상이 오거나 극단적인 경우 돌연사하는 경우마저 있다. 오래도록 성을 즐기려는 사람은 먼저 기공으로 건강한 심신을 가꿔야 한다. 하루 30분만 투자해도 한 달이면 초정력가의 초석을 닦을 수 있다.
●틈틈이 참장공을 하라
기공을 하면 근골, 오장육부, 심폐기능 등이 강화돼 체력과 정력이 몰라보게 좋아진다. 간단하면서도 효과적인 수련으로 참장공(站휍功: 선 자세로 하는 기 수련)이 좋다. 특히 좋은 참장공은 신장과 간을 강화하는 내마보식(內馬步式)이다(자세한 구분동작은 ‘신동아’ 2003년 1월호 참조). 매일 아침저녁으로 5분씩만 해보자.
대사(大事)를 앞두고 참장공을 하면 놀라운 위력을 발휘할 수 있다. 보통 대사를 치르기 전 목욕재계를 하는데, 이때 참장공을 1∼2분만 해보라. 엄청난 기력이 솟구친다. 대사를 치른 후에도 샤워를 하며 참장공을 해야 한다. 섹스는 매우 강도 높은 운동으로 몸에 해로운 활성산소가 발생하기 때문에 이를 해소하기 위해 정리운동을 꼭 해야 한다. 그런데 이는 1분간의 참장공만으로 충분하다. 다음날까지 거뜬함을 느낄 것이다.
음양교합의 구분동작


음극양생의 구분동작


●허리 강화하는 동공을 하라
실전에서 위력을 발휘하기 위해선 강한 허리가 필수다. 허리를 튼튼하게 하고, 동시에 신장을 강화하는 수련을 해보자.
먼저 음양교합(陰陽交合)이라는 동공(動功). 두 발을 편안하게 벌리고 무릎을 살짝 굽힌 채로 서서, 두 팔을 앞으로 들어 올린다. 그리고 서서히 두 손을 왼쪽으로 돌리며 허리도 함께 왼쪽으로 틀어준다. 다시 두 손을 반대방향(오른쪽)으로 돌리며, 허리도 함께 오른쪽으로 틀어준다. 이를 10∼20회 실시한다.
다음엔 음극양생(陰極陽生)이라는 동공을 한다. 두 발을 벌리고 서서, 손바닥을 허리 양옆(신장 부위)에 댄다. 그리고 서서히 허리를 앞으로 숙인다. 그 다음엔 고개를 숙인다. 허리를 펼 땐 먼저 고개를 뒤로 젖히고 나서 서서히 편다. 역시 10∼20회 반복한다.
●발목운동을 하라
초정력가는 강한 하체 힘이 필요하다. 특히 강한 발목은 절륜한 정력의 표상이다. 정력은 튼튼한 신장과 방광에서 나온다(신장·방광은 부부간의 장기다). 그런데 발목 안쪽은 신경(腎經)이, 바깥쪽은 방광경(膀胱經)이 지배하고 있으므로 튼튼한 발목은 곧 강한 신장과 방광을 의미한다.
발목을 강화하는 간단한 동공도 좋다. 제자리에 서서 두 발을 편안하게 벌린다. 그리고 무릎을 약간 굽힌 상태로 두 발의 뒤꿈치를 들었다 내리기를 반복한다. 이때 손은 자유롭게 한다. 자세가 불안하면 손잡이를 잡아도 좋다. 하루에 200회 이상 해보자. 걸을 때도 가급적 뒤꿈치를 들고 발끝으로 걷는 훈련을 하도록 한다.
●강정도인술(强精導引術)을 하라
정력을 강화하는 전통의 도인술(導引術)을 해보자. 며칠만 연마해도 뛰어난 효과가 있다. 자리에 앉아 두 손을 무릎에 올려놓고 허리를 자연스레 편다. 그리고 코로 숨을 길게 들이마시면서 동시에 허공의 기(氣)를 함께 마신다는 의념(상상)을 갖는다. 들이마신 기는 단전(丹田)으로 보내며, 동시에 하복부(단전)를 수축하여 안으로 집어넣는다.
숨을 토할 때는 수축했던 단전을 앞으로 밀며 하복부를 팽창시킨다. 동시에 단전의 기를 전음부(前陰部: 성기)로 밀어넣는다고 생각한다. 이때 손으로 회음(會陰: 성기와 항문 사이)을 눌러서 기가 전음부에 머물도록 한다(혹은 수건을 받쳐놓아도 좋다). 이런 방법으로 호흡을 24회 이상 실시한다.   (계속)

2011년 1월 20일 목요일

replace

replace 는 스트링대 스트링으로 replace 할 수 있었고
replaceAll는 정규표현을 사용하여 바꿀 수 있었습니다.

2011년 1월 18일 화요일

비밀번호 유효성 체크

if(/[a-zA-Z]/.test(ObjUserPassWord)){//문자가 있는지 확인
      
        if(/[0-9]/.test(ObjUserPassWord)){//숫자가 있는지 확인
         //if(/[!,@,#,$,%,^,&,*,?,_,~]/.test(ObjUserPassWord)){//특수문자가 있는지 확인
             //alert('특수문자는 사용할 수 없습니다.');
             //return false;
            //}else{
             return true;
            //}
        }else{
            alert('비밀번호는 6~12자 영문과숫자가 조합되어야합니다.');
            return false;
        }

    }else{
        alert('비밀번호는 6~12자 영문과숫자가 조합되어야합니다.');
        return false;
      
    }

2011년 1월 17일 월요일

비밀번호 강도체크

http://simplythebest.net/scripts/ajax/ajax_password_strength.html

부모창 reload

팝업창에서 아래 코드를 실행후에 다시 아래 코드를 실행하면 부모창이 reload되지 않는다.
왜냐하면 현재(자식창)창을 reload해서 부모창이 없어져버렸기 때문이다.

opener.parent.location.reload();
window.location.reload();

xml처리




result=xmlhttp.responseXML.documentElement.getElementsByTagName("code");
if(result[0].firstChild.nodeValue=='success'){
     alert("삭제하였습니다.");
     document.getElementById("progressOwnArea").style.visibility="hidden";
     document.sForm.action = "/adm/memberMgr/memberList.jsp";
document.sForm.submit();
     return;
}else if(result[0].firstChild.nodeValue=='fail'){
     alert("오류가 발생하였습니다.");
     document.getElementById("progressOwnArea").style.visibility="hidden";
     document.sForm.action = "/adm/memberMgr/memberList.jsp";
document.sForm.submit();
return;
}else{
     alert("오류가 발생하였습니다.");
     document.getElementById("progressOwnArea").style.visibility="hidden";
     document.sForm.action = "/adm/memberMgr/memberList.jsp";
document.sForm.submit();
        return;
}

ajax 결과 처리

  • xml=xhReq.responseXML;
         xml값을 받아와서 처리
  • text=xhReq.responseTEXT;
         text(html텍스트)값을 받아와서 처리

jsp에서 xml생성

  • jsp에서 xml생성 : 
         제일 윗줄을  <%@ page contentType="text/xml; charset=EUC-KR"%>로 변경해야 되는 경우도 있다.
           (이유는 모름)
    <?xml version="1.0" encoding="euc-kr" ?>
    <%@ page contentType="text/xml; charset=euc-kr" %>
    <%@ page import = "java.sql.Connection" %>
    <%@ page import = "java.sql.Statement" %>
    <%@ page import = "java.sql.ResultSet" %>
    <%@ page import = "java.sql.SQLException" %>
    <%@ page import = "util.Util" %>
    <%@ page import = "util.DB" %>
    <%
     Connection conn = null;
     Statement stmt = null;
     ResultSet rs = null;
     try {
      conn = DB.getConnection();
      stmt = conn.createStatement();
      rs = stmt.executeQuery("select * from COMMENT order by ID");
    %>
    <result>
     <code>success</code>
     <data><![CDATA[
     [
    <%
      if (rs.next()) {
       do {
        if (rs.getRow() > 1) { %>
      ,
    <%
        }
    %>
      {
       id: <%= rs.getInt("ID") %>,
       name: '<%= rs.getString("NAME") %>',
       content: '<%= rs.getString("CONTENT") %>',
       mclass: '<%= rs.getInt("mClass") %>'
      }
    <%
       } while(rs.next());
      }
    %>
     ]
     ]]></data>
    </result>
    <% } catch(Throwable e) {
      out.clearBuffer();
     %>
    <result>
     <code>error</code>
     <message><![CDATA[<%= e.getMessage() %>]]></message>
    </result>
    <% } finally {
      if (rs != null) try { rs.close(); } catch(SQLException ex) {}
      if (stmt != null) try { stmt.close(); } catch(SQLException ex) {}
      if (conn != null) try { conn.close(); } catch(SQLException ex) {}
     }
    %>
    [출처] JSP + Ajax XML|작성자 시골사람

    ajax jsp단

    returnVal="ok";
    out.print(returnVal);

    주의 : jsp에서 서블릿으로 변환시 주석이나 엔터키가 모두  out.write("\r\n"); 등으로
    변환되므로 결과 파일은 공백과 엔터키가 많이 생성됨.
    다른 방식으로 return해야 할 것 같은데...

    2011년 1월 16일 일요일

    인코딩

    • 웹브라우져에게 인코딩 정보 전달
    response.setContentType("text/html; charset=euc-kr");
    내용물의 형식을 알려주는것
    text의 html 이고, charset 은 euc-kr 이라고 웹 브라우저에게 알려주는 구문이다.

           - 이걸 해 놓지 않으면 브라우져가 알아서 문서를 인코딩함

    • get방식에서 받아온 정보 인코딩 하기
    기본적으로 웹 환경은 문자를 무조건 iso-8859-1 이라는 케릭셋으로 인코딩해서 전송한다.
    getParameter로 받아온 값을  재처리를 해주어야한다.
    iso-8859-1 -> euc-kr
    첫번째로 String name 으로 받은 iso-8859-1 로 전송된 넘어온 파라메터 값을
    byte 단위로 쪼갠다.
    byte[] b = name.getBytes("iso-8859-1");
    쪼개어 배열 b 에 저장된 데이터를 euc-kr 로 재조합하여 변수 name 에 넣는다.
    name = new String(b, "euc-kr");

    • post방식으로 넘어온 정보 인코딩 하기
    get 방식은 iso-8859-1 로 들어온것을 byte 단위로 쪼개었다가 다시 재조합하는 과정을 거치는데 반해
    post 방식에서는 request.setCharacterEncoding("euc-kr"); 한줄로 간단하게 처리가 됨을 알 수 있다.
    더불어 파라메터 값이 하나가 아니고 여러개일때 get방식에서는 파라메터 하나하나를
    각각 처리 해주어야하지만 post 방식에서는 저 한줄만으로 모두 처리가 되므로 아주 편리하다.


    • 웹브라우져에 보낼 데이터 인코딩 하기
    response.setCharacterEncoding("euc-kr");


    ajax 한글처리

    • 요청 페이지

    //쿼리스트링 생성
    var queryString="";
    var frm=document.forms[0];



    var numberElements=frm.elements.length-1;
    for(var i=0;i<numberElements;i++){
    if(i<numberElements-1){
    queryString+=frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
    }else{
    queryString+=frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
    }
    }


    xmlhttp.open("POST","/adm/memberMgr/member_modi_save.jsp",true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
    xmlhttp.send(queryString);



    • 처리페이지
     request.setCharacterEncoding("euc-kr");


    • 설명
    1. post로 전송한다고 가정하면  쿼리 스트링에서 encodeURIComponent()로 utf-8로 인코딩
    2. setRequestHeader()에서 charset을 utf-8로 설정
    3. 처리페이지에서 request.setCharacterEncoding("euc-kr")로 설정
         참고로, 제우스6, 제우스설정에 euc-kr로 된 상태로 테스트하였음

    ajax post 요청

     document.getElementById("progressOwnArea").style.visibility="visible";


    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }


    xmlhttp.onreadystatechange=function()
    {


      if (xmlhttp.readyState==4 && xmlhttp.status!=200)//오류
     {
       alert("오류가 발생하였습니다.");
       document.getElementById("progressOwnArea").style.visibility="hidden";
       return;
      }


     if (xmlhttp.readyState==4 && xmlhttp.status==200)//수정 성공
     {
       //alert("수정하였습니다.");
       document.getElementById("progressOwnArea").style.visibility="hidden";
        window.parent.location.reload();
        window.location.reload();
       return;
               }
    }



    //쿼리스트링 생성
    var queryString="";
    var frm=document.forms[0];



    var numberElements=frm.elements.length-1;
    for(var i=0;i<numberElements;i++){
    if(i<numberElements-1){
    queryString+=frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
    }else{
    queryString+=frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
    }
    }



    xmlhttp.open("POST","/adm/memberMgr/member_modi_save.jsp",true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
    xmlhttp.send(queryString);

    a:hover

    1. <ul>  
    2.     <li><a href="#">1</a></li>  
    3.     <li><a href="#">2</a></li>  
    4.     <li><a href="#">3</a></li>  
    5.     <li><a href="#">4</a></li>  
    6.     <li><a href="#">5</a></li>  
    7.     <li><a href="#">6</a></li>  
    8.     <li><a href="#">7</a></li>  
    9.     <li><a href="#">8</a></li>  
    10.     <li><a href="#">9</a></li>  
    11.     <li><a href="#">10</a></li>  
    12. </ul>  




    1. ul {  
    2.     list-style:none;  
    3.     float:left;  
    4.     display:inline;  
    5. }  
    6. ul li {  
    7.     float:left;  
    8. }  
    9. ul li a {  
    10.     float:left;  
    11.     padding:4px;  
    12.     margin-right:3px;  
    13.     width:15px;  
    14.     color:#000;  
    15.     font:bold 12px tahoma;  
    16.     border:1px solid #eee;  
    17.     text-align:center;  
    18.     text-decoration:none;  
    19. }  
    20. ul li a:hover, ul li a:focus {  
    21.     color:#fff;  
    22.     border:1px solid #f40;  
    23.     background-color:#f40;  
    24. }  




    위내용을 정리해보면,
    1. 목록을 우선 float 시켜서 가로로 배열하고,
    2. 각 li 들의 a 값을 이용해서 width 값을 고정시키고,
    3. a 에 비활성화 상태의 스타일을 정의하고,
    4. a의 hover 선택자에서 활성화 상태의 스타일을 정의

    a태그 밑줄없애기

    HTML의 a태그로 만들어진 링크에는, 기본적으로 항상 밑줄(Underline)이 붙습니다.

    요즘에는 링크에서 밑줄을 지우는 것이 일반적입니다. 링크에서 밑줄을 삭제하려면

    style="text-decoration:none"

    이라는 스타일을 지정하면 됩니다. 또는 클래스를 만들어 지정해 주어도 됩니다.


    그런데 text-decoration:none 을 지정해도, 아주 복잡한 웹페이지의 경우에는 링크가 없어지지 않는 경우가 있습니다. CSS 속성들이 서로 뒤엉켜 있기 때문입니다. 이때는

    !important

    이라는 (느낌표+important) 구문을 추가하여 강제로 지정해야 합니다. 다음 예제와 같습니다:







    /* 링크에서 밑줄 없애기 */
    a.no-uline { text-decoration:none }

    /* 마우스 지나갈 때만 삭제 + 강제로 없애기 */
    a.noul:hover { text-decoration:none !important }

    2011년 1월 13일 목요일

    hidden visiable

    • visibility는 대상을 보이게 또는 보이지 않게 한다.
             display:none가 해당 개체 면적을 차지하지 않는것과 달리 면적을 차지한 상태로 단지
             화면에 보이거나 보이지 않는다.

          .notWaiting{
             visibility:hidden;
    }


           .waiting{
              visibility:visible;
    }


    • display

           style="display:none"
           document.getElementById("memName").style.display="";//보이게
           document.getElementById("memName").style.display="none";//보이지 않게

    2011년 1월 8일 토요일

    gwt 쉽게 프로그래밍 하기

    세부 내용은 나중에 구현하고 설계를 먼저하기(함수들까지만 구현)
    presenter를 먼저 구현하고 view에서 세부 내용 구현하기

    2011년 1월 4일 화요일

    a태그에 이미지 테두리 없애기

    style="border: none;"

    <a href="/adm/admIndex.jsp"><img style="border: none;" src="/images/adm/logo.gif" alt="로고" width="240" height="57"></a>