블로그 이미지
좋은느낌/원철
이것저것 필요한 것을 모아보렵니다.. 방문해 주셔서 감사합니다..

calendar

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

Notice

    2008. 9. 6. 13:41 Web

    출처 : http://blog.theple.com/grim/capture/all.html?uid=201
    overflow: ######;
    visible : 레이어 크기를 키워서 출력.
    hidden : 레이어 크기만큼 출력.
    auto : 내용에 따라 자동 스크롤.
    scroll : 스크롤바 생성.
    ex) overflow-x:값; overflow-y:값; overflow:값;

    position: ######;
    static : 기본값.
    relative : 하위에 div가 있을 경우엔 하위의 div를 absolute 배열.
    absolute : div에 top, right, bottom, left 값을 지정해서 원하는 위치에 고정.
    fixed : 스크롤에 상관없이 지정한 위치에 고정.
    inherit : 상위에서 지정한 값을 상속.


    visibility: ######;
    visible : 보임.
    hidden : 감춤.

    z-index: #; :: #값에 따라 우선순위 정의. (값이 높을 수록 위로)

    left: ##px;
    top: ##px;
    width: ###px;
    height: ###px;
    text-align: center;
    center , left, right ...
    background-color: #######;
    border-style: ######;
    solid , dotted .....

    border-color: ######;
    border-width: ##px;
    border: ###px;

    ex)
    posted by 좋은느낌/원철
    2008. 9. 2. 03:13 개발/Java
    [ 날짜 연산법 ]


    가. 이해 및 유틸

    - 시스템 시간에 대한 이해
    - 날짜 계산 종합 유틸리티

    나. 응용팁

    시스템의 밀리초 구하기.(국제표준시각(UTC, GMT) 1970/1/1/0/0/0 으로부터 경과한 시각)
    ------------------------------------------------------------------
    // 밀리초 단위(*1000은 1초), 음수이면 이전 시각
    long time = System.currentTimeMillis ( );
    System.out.println ( time.toString ( ) );
    ------------------------------------------------------------------

    현재 시각을 가져오기.
    ------------------------------------------------------------------
    Date today = new Date ();
    System.out.println ( today );

    결과 : Sat Jul 12 16:03:00 GMT+01:00 2000
    ------------------------------------------------------------------

    경과시간(초) 구하기
    ------------------------------------------------------------------
    long time1 = System.currentTimeMillis ();
    long time2 = System.currentTimeMillis ();
    system.out.println ( ( time2 - time1 ) / 1000.0 );
    ------------------------------------------------------------------

    Date를 Calendar로 맵핑시키기
    ------------------------------------------------------------------
    Date d = new Date ( );
    Calendar c = Calendar.getInstance ( );
    c.setTime ( d );
    ------------------------------------------------------------------

    날짜(년/월/일/시/분/초) 구하기
    ------------------------------------------------------------------
    import java.util.*;
    import java.text.*;

    SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy.MM.dd HH:mm:ss", Locale.KOREA );
    Date currentTime = new Date ( );
    String dTime = formatter.format ( currentTime );
    System.out.println ( dTime );
    ------------------------------------------------------------------

    날짜(년/월/일/시/분/초) 구하기2
    ------------------------------------------------------------------
    GregorianCalendar today = new GregorianCalendar ( );

    int year = today.get ( today.YEAR );
    int month = today.get ( today.MONTH ) + 1;
    int yoil = today.get ( today.DAY_OF_MONTH );

    GregorianCalendar gc = new GregorianCalendar ( );

    System.out.println ( gc.get ( Calendar.YEAR ) );
    System.out.println ( String.valueOf ( gc.get ( Calendar.MONTH ) + 1 ) );
    System.out.println ( gc.get ( Calendar.DATE ) );
    System.out.println ( gc.get ( DAY_OF_MONTH ) );
    ------------------------------------------------------------------

    날짜(년/월/일/시/분/초) 구하기3
    ------------------------------------------------------------------
    DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.KOREA);
    Calendar cal = Calendar.getInstance(Locale.KOREA);
    nal = df.format(cal.getTime());
    ------------------------------------------------------------------

    - 표준시간대를 지정하고 날짜를 가져오기.
    ------------------------------------------------------------------
    TimeZone jst = TimeZone.getTimeZone ("JST");
    Calendar cal = Calendar.getInstance ( jst ); // 주어진 시간대에 맞게 현재 시각으로 초기화된 GregorianCalender 객체를 반환.// 또는 Calendar now = Calendar.getInstance(Locale.KOREA);
    System.out.println ( cal.get ( Calendar.YEAR ) + "년 " + ( cal.get ( Calendar.MONTH ) + 1 ) + "월 " + cal.get ( Calendar.DATE ) + "일 " + cal.get ( Calendar.HOUR_OF_DAY ) + "시 " +cal.get ( Calendar.MINUTE ) + "분 " + cal.get ( Calendar.SECOND ) + "초 " );

    결과 : 2000년 8월 5일 16시 16분 47초
    ------------------------------------------------------------------

    영어로된 날짜를 숫자로 바꾸기
    ------------------------------------------------------------------
    Date myDate = new Date ( "Sun,5 Dec 1999 00:07:21" );
    System.out.println ( myDate.getYear ( ) + "-" + myDate.getMonth ( ) + "-" + myDate.getDay ( ) );
    ------------------------------------------------------------------

    "Sun, 5 Dec 1999 00:07:21"를 "1999-12-05"로 바꾸기
    ------------------------------------------------------------------
    SimpleDateFormat formatter_one = new SimpleDateFormat ( "EEE, dd MMM yyyy hh:mm:ss",Locale.ENGLISH );
    SimpleDateFormat formatter_two = new SimpleDateFormat ( "yyyy-MM-dd" );

    String inString = "Sun, 5 Dec 1999 00:07:21";

    ParsePosition pos = new ParsePosition ( 0 );
    Date frmTime = formatter_one.parse ( inString, pos );
    String outString = formatter_two.format ( frmTime );

    System.out.println ( outString );
    ------------------------------------------------------------------

    숫자 12자리를, 다시 날짜로 변환하기
    ------------------------------------------------------------------
    Date conFromDate = new Date();
    long ttl = conFromDate.parse ( "Dec 25, 1997 10:10:10" );
    System.out.println ( ttl ); //예 938291839221

    Date today = new Date ( ttl );
    DateFormat format = DateFormat.getDateInstance ( DateFormat.FULL,Locale.US );
    String formatted = format.format ( today );
    System.out.println ( formatted );
    ------------------------------------------------------------------

    특정일로부터 n일 만큼 이동한 날짜 구하기
    ------------------------------------------------------------------
    특정일의 시간을 long형으로 읽어온다음..
    날짜*24*60*60*1000 을 계산하여.
    long형에 더해줍니다.
    그리고 나서 Date클래스와 Calender클래스를 이용해서 날짜와 시간을 구하면 됩니다
    ------------------------------------------------------------------

    특정일에서 일정 기간후의 날짜 구하기2
    ------------------------------------------------------------------
    //iDay 에 입력하신 만큼 빼거나 더한 날짜를 반환 합니다.
    import java.util.*;

    public String getDate ( int iDay )
    {
    Calendar temp=Calendar.getInstance ( );
    StringBuffer sbDate=new StringBuffer ( );

    temp.add ( Calendar.DAY_OF_MONTH, iDay );

    int nYear = temp.get ( Calendar.YEAR );
    int nMonth = temp.get ( Calendar.MONTH ) + 1;
    int nDay = temp.get ( Calendar.DAY_OF_MONTH );

    sbDate.append ( nYear );
    if ( nMonth < 10 )
    sbDate.append ( "0" );
    sbDate.append ( nMonth );
    if ( nDay < 10 )
    sbDate.append ( "0" );
    sbDate.append ( nDay );

    return sbDate.toString ( );
    }
    ------------------------------------------------------------------

    현재날짜에서 2달전의 날짜를 구하기
    ------------------------------------------------------------------
    Calendar cal = Calendar.getInstance ( );//오늘 날짜를 기준으루..
    cal.add ( cal.MONTH, -2 ); //2개월 전....
    System.out.println ( cal.get ( cal.YEAR ) );
    System.out.println ( cal.get ( cal.MONTH ) + 1 );
    System.out.println ( cal.get ( cal.DATE ) );
    ------------------------------------------------------------------

    달에 마지막 날짜 구하기
    ------------------------------------------------------------------
    for ( int month = 1; month <= 12; month++ )
    {
    GregorianCalendar cld = new GregorianCalendar ( 2001, month - 1, 1 );
    System.out.println ( month + "/" + cld.getActualMaximum ( Calendar.DAY_OF_MONTH ) );
    }
    ------------------------------------------------------------------

    해당하는 달의 마지막 일 구하기
    ------------------------------------------------------------------
    GregorianCalendar today = new GregorianCalendar ( );
    int maxday = today.getActualMaximum ( ( today.DAY_OF_MONTH ) );
    System.out.println ( maxday );
    ------------------------------------------------------------------

    특정일을 입력받아 해당 월의 마지막 날짜를 구하는 간단한 예제.(달은 -1 해준다.)...윤달 30일 31일 알아오기.
    ------------------------------------------------------------------
    Calendar cal = Calendar.getInstance ( );
    cal.set ( Integer.parseInt ( args[0] ), Integer.parseInt ( args [1] ) - 1, Integer.parseInt ( args [2] ) );
    SimpleDateFormat dFormat = new SimpleDateFormat ( "yyyy-MM-dd" );
    System.out.println ( "입력 날짜 " + dFormat.format ( cal.getTime ( ) ) );
    System.out.println ( "해당 월의 마지막 일자 : " + cal.getActualMaximum ( Calendar.DATE ) );
    ------------------------------------------------------------------

    해당월의 실제 날짜수 구하기 ( 1999년 1월달의 실제 날짜수를 구하기 )
    ------------------------------------------------------------------
    Calendar calendar = Calendar.getInstance ( );
    calendar.set ( 1999, 0, 1 );
    int maxDays = calendar.getActualMaximum ( Calendar.DAY_OF_MONTH );
    ------------------------------------------------------------------

    어제 날짜 구하기
    ------------------------------------------------------------------
    오늘날짜를 초단위로 구해서 하루분을 빼주고 다시
    셋팅해주면 쉽게 구할수 있죠..
    setTime((기준일부터 오늘까지의 초를 구함) - 24*60*60)해주면 되겠죠..
    ------------------------------------------------------------------

    어제 날짜 구하기2
    ------------------------------------------------------------------
    import java.util.*;

    public static Date getYesterday ( Date today )
    {
    if ( today == null )
    throw new IllegalStateException ( "today is null" );
    Date yesterday = new Date ( );
    yesterday.setTime ( today.getTime ( ) - ( (long) 1000 * 60 * 60 * 24 ) );

    return yesterday;
    }
    ------------------------------------------------------------------

    내일 날짜 구하기
    ------------------------------------------------------------------
    Date today = new Date ( );
    Date tomorrow = new Date ( today.getTime ( ) + (long) ( 1000 * 60 * 60 * 24 ) );
    ------------------------------------------------------------------

    내일 날짜 구하기2
    ------------------------------------------------------------------
    Calendar today = Calendar.getInstance ( );
    today.add ( Calendar.DATE, 1 );
    Date tomorrow = today.getTime ( );
    ------------------------------------------------------------------

    오늘날짜에서 5일 이후 날짜를 구하기
    ------------------------------------------------------------------
    Calendar cCal = Calendar.getInstance();
    c.add(Calendar.DATE, 5);
    ------------------------------------------------------------------

    날짜에 해당하는 요일 구하기
    ------------------------------------------------------------------
    //DAY_OF_WEEK리턴값이 일요일(1), 월요일(2), 화요일(3) ~~ 토요일(7)을 반환합니다.
    //아래 소스는 JSP일부입니다.
    import java.util.*;

    Calendar cal= Calendar.getInstance ( );
    int day_of_week = cal.get ( Calendar.DAY_OF_WEEK );
    if ( day_of_week == 1 )
    m_week="일요일";
    else if ( day_of_week == 2 )
    m_week="월요일";
    else if ( day_of_week == 3 )
    m_week="화요일";
    else if ( day_of_week == 4 )
    m_week="수요일";
    else if ( day_of_week == 5 )
    m_week="목요일";
    else if ( day_of_week == 6 )
    m_week="금요일";
    else if ( day_of_week == 7 )
    m_week="토요일";

    오늘은 : 입니다.
    ------------------------------------------------------------------

    콤보박스로 선택된 날짜(예:20001023)를 통해 요일을 영문으로 가져오기
    ------------------------------------------------------------------
    //gc.get(gc.DAY_OF_WEEK); 하면 일요일=1, 월요일=2, ..., 토요일=7이 나오니까,
    //요일을 배열로 만들어서 뽑아내면 되겠죠.
    GregorianCalendar gc=new GregorianCalendar ( 2000, 10 - 1 , 23 );
    String [] dayOfWeek = { "", "Sun", "Mon", .... , "Sat" };
    String yo_il = dayOfWeek ( gc.get ( gc.DAY_OF_WEEK ) );
    ------------------------------------------------------------------

    두 날짜의 차이를 일수로 구하기
    ------------------------------------------------------------------
    각각의 날짜를 Date형으로 만들어서 getTime()하면
    long으로 값이 나오거든요(1970년 1월 1일 이후-맞던가?- 1/1000 초 단위로..)
    그러면 이값의 차를 구해서요. (1000*60*60*24)로 나누어 보면 되겠죠.
    ------------------------------------------------------------------

    두 날짜의 차이를 일수로 구하기2
    ------------------------------------------------------------------
    import java.io.*;
    import java.util.*;

    Date today = new Date ( );
    Calendar cal = Calendar.getInstance ( );
    cal.setTime ( today );// 오늘로 설정.

    Calendar cal2 = Calendar.getInstance ( );
    cal2.set ( 2000, 3, 12 ); // 기준일로 설정. month의 경우 해당월수-1을 해줍니다.

    int count = 0;
    while ( !cal2.after ( cal ) )
    {
    count++;
    cal2.add ( Calendar.DATE, 1 ); // 다음날로 바뀜

    System.out.println ( cal2.get ( Calendar.YEAR ) + "년 " + ( cal2.get ( Calendar.MONTH ) + 1 ) + "월 " + cal2.get ( Calendar.DATE ) + "일" );
    }

    System.out.println ( "기준일로부터 " + count + "일이 지났습니다." );
    ------------------------------------------------------------------

    두 날짜의 차이를 일수로 구하기3
    ------------------------------------------------------------------
    import java.io.*;
    import java.util.*;

    public class DateDiff
    {
    public static int GetDifferenceOfDate ( int nYear1, int nMonth1, int nDate1, int nYear2, int nMonth2, int nDate2 )
    {
    Calendar cal = Calendar.getInstance ( );
    int nTotalDate1 = 0, nTotalDate2 = 0, nDiffOfYear = 0, nDiffOfDay = 0;

    if ( nYear1 > nYear2 )
    {
    for ( int i = nYear2; i < nYear1; i++ )
    {
    cal.set ( i, 12, 0 );
    nDiffOfYear += cal.get ( Calendar.DAY_OF_YEAR );
    }
    nTotalDate1 += nDiffOfYear;
    }
    else if ( nYear1 < nYear2 )
    {
    for ( int i = nYear1; i < nYear2; i++ )
    {
    cal.set ( i, 12, 0 );
    nDiffOfYear += cal.get ( Calendar.DAY_OF_YEAR );
    }
    nTotalDate2 += nDiffOfYear;
    }

    cal.set ( nYear1, nMonth1-1, nDate1 );
    nDiffOfDay = cal.get ( Calendar.DAY_OF_YEAR );
    nTotalDate1 += nDiffOfDay;

    cal.set ( nYear2, nMonth2-1, nDate2 );
    nDiffOfDay = cal.get ( Calendar.DAY_OF_YEAR );
    nTotalDate2 += nDiffOfDay;

    return nTotalDate1-nTotalDate2;
    }

    public static void main ( String args[] )
    {
    System.out.println ( "" + GetDifferenceOfDate (2000, 6, 15, 1999, 8, 23 ) );
    }
    }
    ------------------------------------------------------------------

    파일에서 날짜정보를 가져오기
    ------------------------------------------------------------------
    File f = new File ( directory, file );

    Date date = new Date ( f.lastModified ( ) );
    Calendar cal = Calendar.getInstance ( );
    cal.setTime ( date );

    System.out.println("Year : " + cal.get(Calendar.YEAR));
    System.out.println("Month : " + (cal.get(Calendar.MONTH) + 1));
    System.out.println("Day : " + cal.get(Calendar.DAY_OF_MONTH));
    System.out.println("Hours : " + cal.get(Calendar.HOUR_OF_DAY));
    System.out.println("Minutes : " + cal.get(Calendar.MINUTE));
    System.out.println("Second : " + cal.get(Calendar.SECOND));
    ------------------------------------------------------------------

    날짜형식으로 2000-01-03으로 처음에 인식을 시킨후
    7일씩 증가해서 1년정도의 날짜를 출력해 주고 싶은데요.
    ------------------------------------------------------------------
    SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-mm-dd" );
    Calendar c = Calendar.getInstance ( );

    for ( int i = 0; i < 48; i++ )
    {
    c.clear ( );
    c.set ( 2000, 1, 3 - ( i * 7 ) );
    java.util.Date d = c.getTime ( );
    String thedate = sdf.format ( d );
    System.out.println ( thedate );
    }
    ------------------------------------------------------------------

    쓰레드에서 날짜 바꾸면 죽는 문제
    ------------------------------------------------------------------
    Main화면에 날짜와시간이Display되는 JPanel이 있습니다.
    date로 날짜와 시간을 변경하면 Main화면의 날짜와 시간이 Display되는 Panel에
    변경된 날짜가 Display되지 않고 Main화면이 종료되어 버립니다.

    문제소스:
    public void run ( )
    {
    while ( true )
    {
    try{
    timer.sleep ( 60000 );
    }
    catch ( InterruptedException ex ) { }

    lblTimeDate.setText ( fGetDateTime ( ) );
    repaint ( );
    }
    }

    public String fGetDateTime ( )
    {
    final int millisPerHour = 60 * 60 * 1000;
    String DATE_FORMAT = "yyyy / MM / dd HH:mm";
    SimpleDateFormat sdf = new SimpleDateFormat ( DATE_FORMAT );
    SimpleTimeZone timeZone = new SimpleTimeZone ( 9 * millisPerHour, "KST" );
    sdf.setTimeZone ( timeZone );

    long time = System.currentTimeMillis ( );
    Date date = new Date ( time );
    return sdf.format ( date );
    }

    해답:
    // 날짜와 요일 구한다. timezone 으로 날짜를 다시 셋팅하시면 됨니다.
    public String getDate ( )
    {
    Date now = new Date ( );
    SimpleDateFormat sdf4 = new SimpleDateFormat ( "yyyy/MM/dd HH:mm EE" );
    sdf4.setTimeZone ( TimeZone.getTimeZone ( "Asia/Seoul" ) );

    return sdf4.format ( now );
    }
    ------------------------------------------------------------------

    날짜와 시간이 유효한지 검사하려면...?
    ------------------------------------------------------------------
    import java.util.*;
    import java.text.*;

    public class DateCheck
    {
    boolean dateValidity = true;

    DateCheck ( String dt )
    {
    try
    {
    DateFormat df = DateFormat.getDateInstance ( DateFormat.SHORT );
    df.setLenient ( false );
    Date dt2 = df.parse ( dt );
    }
    catch ( ParseException e ) { this.dateValidity = false; }
    catch ( IllegalArgumentException e ) { this.dateValidity = false; }
    }

    public boolean datevalid ( )
    {
    return dateValidity;
    }

    public static void main ( String args [] )
    {
    DateCheck dc = new DateCheck ( "2001-02-28" );
    System.out.println ( " 유효한 날짜 : " + dc.datevalid ( ) );
    }
    }
    ------------------------------------------------------------------

    두 날짜 비교하기(아래보다 정확)
    ------------------------------------------------------------------
    그냥 날짜 두개를 long(밀리 세컨드)형으로 비교하시면 됩니다...

    이전의 데이타가 date형으로 되어 있다면, 이걸 long형으로 변환하고.
    현재 날짜(시간)은 System.currentTimeMillis()메소드로 읽어들이고,
    두수(long형)를 연산하여 그 결과 값으로 비교를 하시면 됩니다.

    만약 그 결과값이 몇시간 혹은 며칠차이가 있는지를 계산할려면,
    결과값을 Calender의 setTimeInMillis(long millis) 메소드를 이용해
    설정한다음 각각의 날짜나 시간을 읽어오시면 됩니다
    ------------------------------------------------------------------

    두 날짜 비교하기2
    ------------------------------------------------------------------
    //Calendar를 쓸 경우 데이타의 원본을 고치기 때문에 clone()을 사용하여
    //복사한 후에 그 복사본을 가지고 비교한다
    import java.util.*;
    import java.util.Calendar.*;
    import java.text.SimpleDateFormat;

    public class DayComparisonTest
    {
    public static void main(String args[])
    {
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat dateForm = new SimpleDateFormat("yyyy-MM-dd");

    Calendar aDate = Calendar.getInstance(); // 비교하고자 하는 임의의 날짜
    aDate.set(2001, 0, 1);

    Calendar bDate = Calendar.getInstance(); // 이것이 시스템의 날짜

    // 여기에 시,분,초를 0으로 세팅해야 before, after를 제대로 비교함
    aDate.set( Calendar.HOUR_OF_DAY, 0 );
    aDate.set( Calendar.MINUTE, 0 );
    aDate.set( Calendar.SECOND, 0 );
    aDate.set( Calendar.MILLISECOND, 0 );

    bDate.set( Calendar.HOUR_OF_DAY, 0 );
    bDate.set( Calendar.MINUTE, 0 );
    bDate.set( Calendar.SECOND, 0 );
    bDate.set( Calendar.MILLISECOND, 0 );


    if (aDate.after(bDate)) // aDate가 bDate보다 클 경우 출력
    System.out.println("시스템 날짜보다 뒤일 경우 aDate = " + dateForm.format(aDate.getTime()));
    else if (aDate.before(bDate)) // aDate가 bDate보다 작을 경우 출력
    System.out.println("시스템 날짜보다 앞일 경우 aDate = " + dateForm.format(aDate.getTime()));
    else // aDate = bDate인 경우
    System.out.println("같은 날이구만");
    }
    }
    posted by 좋은느낌/원철
    2008. 9. 2. 00:43 개발/JavaScript
    출처 : http://web20korea.com/205

    javascript :
    function FN_iframeAutoHeight(obj) {
     obj = typeof obj == 'string' ? document.getElementById(obj) : obj;
     obj.setExpression('height',iframename.document.body.scrollHeight);
    }
    html code :
    <IFRAME name="iframename" border=0 marginWidth=0 marginHeight=0 src="http://web20korea.com" frameBorder=0 width="100%" scrolling=no onload="FN_iframeAutoHeight(this)"></IFRAME>

    posted by 좋은느낌/원철
    2008. 8. 28. 11:32 개발/JavaScript

    * 출처 : http://flashcafe.org/bbs/board.php?bo_t ··· page%3D8

    자바스크립트
    에러날때 스크립트에 아래를 추가해보세요..

    에러가 잡힙니다.

    엑세스가 거부되었다는 에러도 잡히네요..^^

    /*******error 처리위한 스크립트 시작 ***************/
    window.onerror = ErrorSetting

    var e_msg="";
    var e_file="";
    var e_line="";


    function ErrorSetting(msg, file_loc, line_no) {
         e_msg=msg;
         e_file=file_loc;
         e_line=line_no;
         return true;
    }


    /*******error 처리위한 스크립트 끝 ***************/

    posted by 좋은느낌/원철
    2008. 8. 25. 17:48 Database

    select current_date from sysibm.sysdummy1;

    이렇게 해야 한단다...

    posted by 좋은느낌/원철
    2008. 8. 23. 18:52 개발/UNIX 계열
    posted by 좋은느낌/원철
    2008. 8. 23. 11:52 개발/JavaScript

    출처 : OKJSP
    원문 : http://www.okjsp.pe.kr/seq/103876

    <!--
    부모 페이지
    -->

    <script>
    function clickMove2(){
        window.open('',"sm",'width=1024,height=768,left=0,top=0,toolbar=no,location=no,menubar=no,status=no,directories=no,resizable=yes,scrollbars=yes');

     document.frames["tfrm"].listForm.target = "sm";

     document.frames["tfrm"].listForm.action = "detail_view.jsp";
        document.frames["tfrm"].listForm.submit();
    }
    </script>


    <iframe src='%s' name='tfrm' width='100%' height='400' frameborder='0'></iframe>

    <a href="javascript:clickMove2();">링크</a>


    <!--
    iFrame
    -->

    <form name='listForm' method='post'>
    <table>
    </table>
    </form>

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    난 팝업으로 띄우지 않고 그냥 삽입할 예정이다..
    잘 되어야 할 텐데..

    posted by 좋은느낌/원철
    2008. 8. 19. 11:50 시사/요즘 세상은

    출처 : [다음]http://bbs.sports.media.daum.net/gaia/do/beijing2008/general/read?articleId=8484&bbsId=B003
    ++++++++++++++++++++++++++++++++++++++
    국 육상 남자 세단뛰기의 간판 김덕현 선수가 어제

    열린 예선전에서 16미터88센티로 전체 출전선수39명 중

    18위를 기록, 12명이 겨루는 결선진출에는 실패했습니다.

    참고로 김덕현 선수의 본인 최고기록이자 한국기록은

    17미터07센티입니다.  

     

    상 여자 창던지기 김경애 선수오늘 오전10시

    예선전을 치릅니다. A/B조 합쳐 모두 54명이 출전하며,

    상위12명에게 결승전 티켓이 주어집니다. 김선수의

    개인 최고기록은 올해 대구에서 열린 전국육상선수권에서

    세운 58미터75센티로, 54명중 45위에 해당합니다.

    한국기록은 63미터32센티(이영선)



    상 여자 멀리뛰기 정순옥선수가 오늘 오전 10시40분

    예선전을 치릅니다. 총 42명이 출전하는 이 예선전에서

    12위 안에 들면 결선에 진출하게 됩니다. 정순옥 선수의

    개인 최고기록은 지난 '2006 대구 국제 육상대회에서 기록

    한 6미터68센티(한국기록)로 37위권입니다.

     

    상 남자 110m 허들 이정준 선수가 한국 육상 역사를

    새로 썼습니다^^. 어제 열린 예선1라운드 2조 8번레인에서

    레이스를 펼친 이정준 선수는 13초65의 기록으로 조5위를

    기록했지만, 다른 조 5위 이하 선수들과의 기록 비교로

    예선2라운드 티켓을 거머쥐었습니다. 한국 트랙종목

    역사상 최초 2회전 진출입니다.

    이정준 선수는 오늘 밤 9시53분 2조 2번레인에서

    또한번 기적에 도전합니다. 총 8명이 뛰게되는 이 경기서

    3위 안에 들면 다른 조 기록과 상관없이 준결승에 진출

    하게되며, 4위 이하는 다른3개조 4위 이하 선수들과의

    기록비교를 통해 가장 빠른 4명이 추가로 진출하게 됩니다.

    이정준 선수의 개인 최고기록이자 한국기록은  13초56

    으로 8명의 선수들 중 7위권입니다. 세계기록 보유자이자

    최고의 수퍼스타인 쿠바의 데이런 로블스(3번레인) 바로

    옆에서 뛰게되는데, 이건 정말 흔치않은 기회네요. 로블스의

    실력에 자극을 받아 내친김에 한국신기록을 작성해줬으면

    하는 바람입니다^^.

    ******************************************************

     

    이클 여자 포인트레이스 25km 이민혜 선수가 어제

    경기에서 선전했지만 막판 선두에게 추월당하면서 -40점의

    기록으로 22명중 19위를 기록했습니다.

    *이민혜 선수 미니홈페이지 바로가기(클릭)


    *****************************************************


    이빙 남자 3m 스프링보드 손성철 선수어제 열린

    예선전에서 종합포인트 363.35점으로 29위를 기록, 12명이

    겨루는 결선 진출에는 실패했습니다. 손성철 선수는 이번

    올림픽 다이빙에 출전한 단 한명의 한국인이며, 출전

    자체도 8년만의 일이었습니다.


    *****************************************************


    육상 여자 창던지기 국가대표 김경애 선수

    1988년 3월 5일생

    163cm, 체중 62 kg

    한국체대 재학중

    2008 전국육상선수권 우승



    육상 여자 멀리뛰기 국가대표 정순옥 선수

    1983년 4월 23일생

    168cm, 체중 54 kg

    안동시청 소속

    2006년 도하 아시안게임 육상 국가대표

    2006년 오사카 그랑프리대회 멀리뛰기 우승



    육상 남자 세단뛰기 국가대표 김덕현 선수

    1985년 12월 8일생

    180cm, 체중 68 kg

    광주시청 소속

    2006년 도하 아시안게임 육상 세단뛰기 동메달



    육상 남자 110m 허들 국가대표 이정준 선수

    1984년 3월 26일생

    184cm, 체중 78 kg

    한국체대 재학중

    2006년 도하 아시안게임 육상 국가대표

    2008년 동일본실업단 육상선수권 우승



    사이클 여자 국가대표 이민혜 선수

    1985년 10월 11일생

    173cm, 체중 63 kg

    서울시청 소속

    '08 세계 트랙 월드컵3차전 포인트 2위

    '07 아시아 선수권  3km 개인추발 금메달

    '06 도하아시안게임 3km 개인추발 금메달



    다이빙 남자 국가대표 손성철 선수

    1987년 2월 14일생

    한국체대 재학중


     

    메달을 따야만 영웅이 아닙니다. 2관왕 2연패를 했다고 영웅이 아닙

    니다. 청춘을 다바쳐 고된 운동의 보답으로 가슴에 태극마크를 달았다는

    그 자체만으로도 당신들은 이미 영웅입니다. 우리의 대표니까요.

    혹시 방송이 그대들을 외면하더라도, 우리는 마음속으로 응원하겠습니다.

    무한한 존경의 뜻을 보내며

    posted by 좋은느낌/원철
    2008. 8. 19. 08:43 시사/요즘 세상은

    당예서 선수의 이야기가 올라와 있어 스크랩 해봤습니다..

    출처 : [다음]http://bbs.sports.media.daum.net/gaia/do/beijing2008/general/read?articleId=8078&bbsId=B003
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     여기 6살부터 타구라켓을 잡은 선수가 있었다. 그녀가 그 라켓을 잡으면서 꿈꿨던 것은 올림픽에 대표로 나가 금메달을 획득하는 것이었다. 그런 꿈을 가지고 열심히 노력한 결과 그녀는 청소년대표로 세계대회에 나가 우승을 하였고 결국 국가대표로까지 발탁이 된다.


     그녀 이름은 당예서!!! 중국에서 귀화한 여자탁구선수이다. 어린시절 그렇게 세계대회에서 우승까지 하고 꿈에 그리던 중국대표팀에 들어간 그녀는 수많은 기라성 같은 선수들과 경쟁을 해야만 했다. 그녀는 자신있었을 것이다. 하지만 중국국가대표를 국가대표선발전이 아닌 감독이 지정한 3명이 뽑힌다는 사실(실력과는 무관하게)을 알고 크게 실망한다.


     스포츠에서 실력만이 전부는 아니었지만 그래도 한 국가의대표선수라면 최고 덕목중에 하나가 실력일지언데... 실력이 아닌 인맥이라니? 그러한 실망감에 그녀는 망연자실하고 있었고 그녀의 꿈이 하나 하나 부숴져 가는 것을 느낄무렵, 탁구로 맺어진 연으로 한국으로 시집 온 자오즈민 선수의 권유로 한국행을 결정한다. 단지 정정당당하게 국가대표가 되어 올림픽에 출전할 수 있을거라는 이유 하나만으로 말이다.


     한국에 들어온 그녀는 대한항공의 연습선수로 등록한다. 하지만 그녀는 막상 국적없는 미아신세였다. 20살의 어린 나이의 선수가 아무 인맥이나 친척 하나 없는 말도 안 통하는 타국에 와서 느꼈을 적적함이란 이루 말할 수 없었을 것이고 귀화요건 중 하나인 5년 이상 영주해야만 한다는 조건도 그녀를 힘들게 했으리라. 거기에 아직은 중국인이라는 국적으로 인하여 세계대회는 고사하고 국내(한국)의 여러 대회에도 출전조차 할 수 없는 신분이었다.  그렇다고 5년 이후에 국적을 획득하고 난 후 대표선수가 필히 될 수 있다는 장담도 할 수 없는 상황에서 단지 연습선수(연습파트너)로 대회까지 출전할 수 없어 너무나도 괴로고 힘들어 많이도 울었고 중국으로 다시 돌아갈 생각도 수 없이 많이 했었다고 조선일보와의 인터뷰에서도 밝힌 적이 있다.


     체육인... 그것도 올림픽을 꿈에 품을 정도의 기량을 갖춘 선수가 받았을 고통과 부담감과 조바심은... 일반인은 상상하기 힘든 그것이었을 것이다. 더욱이 정정당당한 방법으로 올림픽대표선수로 메달을 획득하고 싶었던 이유만으로 온 한국. 권유 받았을 당시와는 너무나도 다른 상황에서 오는 당황스러움 등은 보통의 일반인이거나 그저 그런 선수였다면 당장 보따리 싸서 돌아갔을 것이다. 당예서 선수는 아직도 한국말이 어눌하다. 한국에 들어온지 8년이나 됐는데도 아직 말이 어눌하다는 것은 언어를 배우기 위한 그 시간마저도 탁구에 전념했다는 증거이기도 하다. 실제적으로 그녀는 대화소통도 불편하고 단지 연습선수(연습파트너)라는 신분 속에서도... 그 어떤 대회에도 참가할 수 없다는 상황 속에서도 실력저하로 인해 자신의 목표가 상실되는 것을 잃지 않기 위해 탁구에 매진하였다. 2006년 현재 중국에 있는 남편과 결혼을 하고 겨우 1개월의 시간만 같이 지내고 다시 한국에 들어와 라켓을 잡았다는 것만으로도 그녀의 탁구에 대한 열정은 어느정도인지 가늠할 수 있으리라.


     2007년 10월. 한국에 들어온지 8년 만(99년 자오즈민의 권유로 입국)에 결국 그녀는 귀화시험에서 합격 대한민국의 국적을 취득하게 된다. 드디어 그녀는 8년간의 국적없는 미아신세로서 어떤 대회도 참가할 수 없었던 연습선수의 굴레를 벗고 비상할 준비를 마치게 된 것이다.


     하지만 당예서 선수의 발목을 잡는 또 하나의 변수가 있었으니 바로 탁구협회의 내부문제와 갈등이었다.  2008올림픽 대표팀 선발하기 이전에 당시 한국 대표팀 감독이었던 현정화 유남규씨가 선수 선발 등에서 협회 회장 자신이 참관한 대회에서 선수들 움직임 보고 한국을 대표하는 선수로 결정하는 것 등과 협회 운영상의 전횡을 비판하면서 탁구대표팀에서 이탈했던 사건이 있었다. 이후 탁구협회 회장은 사임을 했고 현정화 유남규씨는 감독직을 사임하고 코치로 대표팀으로 돌아왔고, 이 사건 이후에 탁구협회는 계파가 나뉘어졌다고 한다. 2008년에 있었던 종합선수권을 우승하고 세계선수권대표선발전에서도 10전전승으로 1위했음에도 그 선수보다 다른 선수를 밀었다는 사실에 당시 네티즌들도 의아스럽게 생각했다. 이런 계파간에 서로 힘겨루기 등을 내부적으로 하는 중에 대표 선발 경기를 따로 가져서 7전 전승하였고 이은미 선수는 부상등의 명목으로 불참해서 당예서 선수가 선발되었다. 그리고 결국 그녀는 2008년 올림픽 아시아 선수 선발 국제 대회에 나가서 세계랭킹조차 없는 그녀가(엄청난 실력에도 불구 하고 8년간 그 어떤 대회도 나가지 못했기에 생긴 웃지못할 현실) 예상을 뒤엎고 세계 여자탁구 선수들에 있어 최고 선수 중에 한 사람인 왕란(당시 세계랭킹 3위로 기억된다)을 꺽는 파란을 일으킨다. 그리고 그녀는 그렇게 탁구라켓을 처음 잡았었던 6살부터 꿈꿔 온 올림픽 개인전 출전권을 따내게 되었다.


     현재 우리나라의 탁구는 위에서 말했듯이 중대한 위기에 처해있다. 유남규, 현정화(현  국가대표 코치) 선수 이후에 그 맥을 잇는 스타급선수가 나오지 않고 있고(그나마 유승민 하나 정도?) 점점 체육인 중에서도 탁구를 하는 선수가 줄어들고 있기 때문이다. 더욱이 탁구계 내부에서도 분열이 있어 당시 감독이었던 유남규, 현정화씨가 감독직을 사퇴하는 사태까지 가고 선수들의 불안감과 더불어 제대로 된 연습조차 할 수 없는 지경에까지 가게 됐다. 결국 어느정도 선에서 봉합이 되고 코치로 대표팀에 복귀하였지만 코앞에 다가온 올림픽을 턱없이 부족한 시간으로 인해 다른나라와는 비교할 수 없는 저조한 연습량으로 올림픽을 맞이했고 덕분에 국내외 많은 전문가들은 한국이 탁구에서 노메달을 기록할 것이라고 말했었다.


     하지만 그녀와 한국여자탁구는 결국 해냈다. 단체전에서 결국 동메달을 따내고야 말았다. 그녀의 단체전 원래의 목적은 은메달이었으나 준결승에서 만난 싱가포르(실질상 중국-싱가포르의 선수들은 귀화한 중국선수였다. 그런데도 불구하고 중국현지서 당예서 선수에게만 쏟아진 차가운 눈빛과 비난과 험한 소리는 그들의 험한이 어디까지 도달했는지 알만한 사건이다)에 분패하고 이를 악물고 다시 일어 선 값진 노력의 산물이라고 본다. 많은 국내탁구계의 현실... 8년간의 북받치는 고통속의 생활... 조국에게서 쏟아지는 비난과 조롱... 그 모든 역경을 딛고 결국 이루어낸 꿈이다. 메달이 확정되는 순간 그녀는 흐르는 눈물과 더불어 그간의 일들이 주마등처럼 지나갔을 것이다.


     이제 탁구 개인전이 남았다. 비록 단체전에서는 동메달에 그쳤으나 개인전에서는 자신이 가진 모든 능력의 120% 이상을 발휘하여 탁구라켓을 잡으리라 다짐할 당예서 선수. 자신의 어렸을 적 꿈과 위기에 처한 한국탁구계에 빛이 되리라 마음 먹을 당예서 선수. 실제적으로 현정화 선수 이후 세대교체가 이루어지지 않아 침체기에 있었던 탁구계에 당예서 선수의 합류는 그나마 추락할 위기의 탁구계에 한줄기 희망의 끈이 됐다(비단 메달을 노릴 수 있는 선수의 출현만이 아니라 그녀로 인해 동반적으로 상승하는 다른 선수의 실력향상에서도 지대한 영향이 크다).


     비단 한국 탁구계만을 위해서... 대한민국의 메달을 위해서만이 아니라... 6살부터 키웠을 한 선수의 순수한 꿈과 그 꿈을 이루기 위해 걸어온 험난 발자취만으로도 그녀는 충분히 응원받을 자격이 있고 그 꿈을 성취할 수 있는 권리가 있다고 감히 말하겠다.


    꼭 개인전에서 후회가 남지 않을 플레이를 펼치시길 빕니다. 다른 잡념은 버리시고 그 어린 시절부터 꿈꿨던 목표만을 생각하시길 바랍니다. 그러면 금빛환한 달덩어리는 당신의 품에 안겨 있을것입니다.


    당예서 선수의 선전을 마음속 깊은 곳으로부터

    진심으로 기원합니다.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    posted by 좋은느낌/원철
    2008. 7. 1. 20:24 개발/JSP/Servlet
    쿠키 유틸리티 클래스 CookieUtil 만들기

    쿠키는 웹 어플리케이션에서 클라이언트의 정보를 임시로 저장하기 위해 많이 사용된다. 또한, 클라이언트의 상태를 유지할 때 사용되는 세션을 구현하기 위해 쿠키를 사용하기도 한다. 쿠키는 약방의 감초와 같은 존재로서, 쿠키를 사용함으로써 좀더 쉽고 간결한 방법으로 웹 어플리케이션을 구현할 수 있게 되는 경우가 많다.

    쿠키가 사용되는 부분은 많은데, 서블릿 API의 쿠키 지원 클래스는 2.4 버전이 나올 때 까지 여전히 빈약하다. 서블릿 API의 javax.servlet.http.HttpServletRequest 인터페이스가 제공하는 쿠키 관련 메소드는 아래에 표시한 한개뿐이다.

       public Cookie[] getCookies()
    
    

    HttpServletRequest 인터페이스가 쿠키 관련된 메소드를 빈약하게 제공하기 때문에(진짜 심하게 빈약함이 느껴진다!!), JSP나 서블릿 등에서 쿠키를 사용할 때에는 쿠키를 다루기 위한 보조 클래스를 작성해서 작업하는 것이 좋다. 본 글에서는 편리하게 쿠키를 처리할 수 있도록 해 주는 CookieBox 라는 클래스를 작성해볼 것이다.

    CookieBox 클래스의 소스 코드

    말보다는 소스 코드를 직접 보면서 설명하는 것이 이해가 빠를 것 같으므로, CookieBox 클래스의 소스 코드부터 살펴보도록 하자.

        package jsp.util;
        
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.Cookie;
        import java.util.Map;
        import java.net.URLEncoder; 
        import java.net.URLDecoder; 
        import java.io.IOException; 
        
        public class CookieUtil {
            
            private Map cookieMap = new java.util.HashMap();
            
            public CookieUtil (HttpServletRequest request) {
                Cookie[] cookies = request.getCookies();
                if (cookies != null) {
                    for (int i = 0 ; i < cookies.length ; i++) {
                        cookieMap.put(cookies[i].getName(), cookies[i]);
                    }
                }
            }
            
            public static Cookie createCookie(String name, String value)
            throws IOException {
                return new Cookie(name, URLEncoder.encode(value, "euc-kr"));
            }
        
            public static Cookie createCookie(
                    String name, String value, String path, int maxAge) 
            throws IOException {
                Cookie cookie = new Cookie(name, 
                                        URLEncoder.encode(value, "euc-kr"));
                cookie.setPath(path);
                cookie.setMaxAge(maxAge);
                return cookie;
            }
            
            public static Cookie createCookie(
                    String name, String value,  
                    String domain, String path, int maxAge) 
            throws IOException {
                Cookie cookie = new Cookie(name, 
                          URLEncoder.encode(value, "euc-kr"));
                cookie.setDomain(domain);
                cookie.setPath(path);
                cookie.setMaxAge(maxAge);
                return cookie;
            }
            
            public Cookie getCookie(String name) {
                return (Cookie)cookieMap.get(name); 
            }
            
            public String getValue(String name) throws IOException {
                Cookie cookie = (Cookie)cookieMap.get(name);
                if (cookie == null) return null;
                return URLDecoder.decode(cookie.getValue(), "euc-kr");
            }
            
            public boolean exists(String name) {
                return cookieMap.get(name) != null;
            }
        }
    
    

    CookieBox 클래스는 다음과 같이 두 가지 종류의 메소드를 제공한다.

    • Cookie 객체를 생성할 때 사용할 수 있는 static 메소드인 createCookie()
    • HttpServletRequest의 Cookie 객체 및 쿠키값을 읽어올 수 있는 메소드

    CookieUtil 클래스를 이용한 쿠키값 읽기

    먼저, CookieUtil 클래스를 사용하면 손쉽게 쿠키를 사용할 수 있다. CookieUtil 는 다음과 같은 형태로 사용할 수 있다.

        
        // CookieUtil 클래스의 생성자는 request로부터 쿠키 정보를 추출
        CookieUtil cookie = new CookieUtil(request);
        
        Cookie idCookie = cookie.getCookie("id"); // 쿠키가 존재하지 않으면 null 리턴
        
        // 지정한 이름의 쿠키가 존재하는지의 여부
        if (cookieBox.exists("name")) {
            ...
        }
        
        // 지정한 이름의 쿠키가 존재하지 않으면 값으로 null 리턴
        String value = cookie.getValue("ROLE");
    
    

    일단 CookieBox 객체를 생성한 이후에는 세 개의 메소드(getCookie(), exists(), getValue())를 사용해서 손쉽게 Cookie 객체 및 쿠키값을 사용할 수 있게 된다. 별도의 유틸리티 클래스를 사용하지 않고 쿠키를 사용할 때는 다음과 같은 방식을 사용하게 되는데, 아래 코드와 비교하면 얼마나 위 코드가 간단한 형태인지를 알 수 있을 것이다.

        Cookie[] cookies = request.getCookies();
        Cookie idCookie = null;
        
        if (cookies != null) {
            for (int i = 0 ; i < cookies.length ; i++) {
                if (cookies[i].getName().compareTo("id") == 0) {
                    idCookie = cookies[i];
                }
            }
        }
        
    

    CookieUtil 클래스를 이용한 Cookie 생성

    javax.servlet.http.Cookie 클래스가 제공하는 생성자는 다음과 같이 한개 뿐이기 때문에,

        Cookie(java.lang.String name, java.lang.String value)
    
    

    쿠키에 대한 도메인, 경로, 유효시간 등을 설정하기 위해서는 다음과 같은 코드를 사용해야 한다.

        Cookie cookie = new Cookie(name, URLEncoder.encode(value, "euc-kr"));
        cookie.setDomain(domain);
        cookie.setPath(path);
        cookie.setMaxAge(maxAge);
    
    

    CookieBox 클래스는 static 메소드인 createCookie() 메소드를 통해서 적은 코딩량으로 손쉽게 Cookie 객체를 생성할 수 있도록 지원한다. 예를 들어, CookieBox.createCookie() 메소드를 사용하면 위 코드를 다음과 같이 한줄로 변경할 수 있다.

        Cookie cookie = CookieUtil.createCookie(name, value, domain, path, maxAge);
    
    

    CookieUtil.createCookie() 메소드가 세 가지 형태로 존재하기 때문에, 그때 그때 알맞은 메소드를 사용해서 Cookie 객체를 생성할 수 있을 것이다.

    프로바이더 최범균 ( madvirus@madvirus.net ) :
    JSP Professional, JSP 실전 Know-how, Jakarta Project 등의 책을 집필하였으며, 자바캔의 운영자로도 활동하고 있다. 현재 CVNet e-biz 팀에서 근무하고 있다.
    posted by 좋은느낌/원철