Posted
Filed under Htm&Javascript
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
바디에 다음과같이 추가 한다.
2010/06/18 01:57 2010/06/18 01:57
Posted
Filed under JSP, JAVA

원본 : http://bioportal.weizmann.ac.il/course/prog2/tutorial/java/javaOO/annotations.html

JDK 5.0
릴리즈에는 어노테이션(annotation)이라 불리는 메타데이터 기능이 도입되었다. 어노테이션은 코드 조각의 작성자 명이나 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램의 일부가 아닌 프로그램에 관한 데이터를 제공해 준다. 어노테이션은 코드가 어떻게 수행되는 것에는 아무런 영향을 주지 않는다.

어노테이션은 @어노테이션 형태를 사용하고 클래스, 필드, 메소드 등과 같은 프로그램의 선언부에 적용할 있다. 어노테이션은 가장 처음으로 그리고 종종(관례상) 그 줄에 나타나며 임의의 인수를 포함할 있다:

        @Author("MyName")

        class myClass() { }

혹은

        @SuppressWarnings("unchecked")

        void MyMethod() { }


여러분만의
어노테이션을 정의하는 것은 여기에 기술되지 않을 고급기법에 속하지만, 모든 자바 프로그래머들이 알아야 하는 3개의 내장 어노테이션이 있다: @Deprecated, @Override, 그리고 @SuppressWarnings 그것이다. 다음 예제들은 메소드에 적용된 모든 가지 타입의 어노테이션을 보여준다:

import java.util.List;

 

class Food {}

class Hay extends Food {}

class Animal {

    Food getPreferredFood() {

        return null;

    }

    /**

     * @deprecated document why the method was deprecated

     */

    @Deprecated

    static void deprecatedMethod() { }

}

class Horse extends Animal {

    Horse() {

        return;

    }

    @Override

    Hay getPreferredFood() {

        return new Hay();

    }

    @SuppressWarnings("deprecation")

    void useDeprecatedMethod() {

        Animal.deprecateMethod(); //deprecation warning - suppressed

    }

}


@Deprecated

@Deprecated 어노테이션은 표시된 메소드가 이상 사용되지 말아야 함을 가리킨다. 컴파일러는 프로그램이 비추천(deprecated) 메소드나 클래스 혹은 변수를 사용할 때마다 경고를 발생시킨다. 요소가 비추천되면 그것은 앞의 예제에 나타나 있는 것처럼 해당되는 @deprecated 태그를 사용하여 문서화 되어야 한다. 태그는 소문자 ‘d’ 시작하며 어노테이션은 대문자 ‘D’ 시작함을 주의하라. 일반적으로 여러분은 비추천 메소드의 사용을 피해야 하며 그것 대신 무엇을 사용해야 하는지를 확인해야 한다.


@Override

@Override 어노테이션은 요소가 상위 클래스에서 선언된 요소를 오버라이드 것임을 컴파일러에게 알려준다. 앞의 예제에서는 오버라이드 어노테이션이 Horse 클래스의 getPreferredFood 메소드 Animal 클래스에 있는 동일한 메소드를 오버라이드하고 있음을 가리키는 사용되었다. @Override 표시된 메소드가 상위 클래스에 있는 메소드를 오버라이드하는 실패할 경우 컴파일러는 에러를 발생시킨다.


메소드를
오버라이드 어노테이션을 사용하도록 요구되는 것은 아니기 때문에 특히 메소드가 오버라이드된 메소드의 리턴 타입의 하위 타입을 리턴할 명시적으로 그것을 드러내도록 요구하는 것이 유용할 있다. 이러한 관례는 공변 리턴 타입(covariant return type)이라 불리는데, 이전의 Food 인스턴스를 리턴하는 Animal.getPreferredFood 예제에서 사용되었다. Horse.getPreferredFood (Horse Animal 하위클래스) Hay 인스턴스를 리턴한다. 자세한 정보를 위해서는 Overriding and Hiding Methods 참조하라.


@SuppressWarnings

@SuppressWarnings 어노테이션은 컴파일러가 다르게 발생될 특정 경고를 억제하도록 해준다. 이전의 예제에서 useDeprecatedMethod Animal 비추천 메소드를 호출한다. 보통 컴파일러는 경고를 발생시킬테지만, 경우에는 그것이 억제된다.

모든 컴파일러 경고는 종류에 속한다. 자바 언어 명세(Java Language Specification) 비추천(deprecation)” 비확인(unchecked)” 가지 종류를 나열한다. “비확인경고는 제네릭이 나오기 전에 작성된 레거시 코드와 인터페이싱할 경우에 발생할 있다. 하나 이상의 경고 종류를 억제하려면 다음의 문법을 사용하라.

@SuppressWarnings({"unchecked", "deprecation"})

지원되는 경고 종류들의 목록을 보려면 컴파일러 문서를 확인하라.


어노테이션을
고급스럽게 사용하는 것에는 자바 프로그램을 읽어 그것의 어노테이션을 처리할 있는 프로그램을 작성하는 것이 포함되어 있다. 작업을 돕기 위해, JDK 5.0 릴리즈에는 apt 불리는 어노테이션 처리도구(annotation processing tool) 포함되어 있다. 다음의 JDK 릴리즈(코드네임 머스탱)에는 apt 기능이 자바 컴파일러의 표준 요소가 것이다. 자세한 정보를 보려면 Getting Started with the Annotation Processing Tool 참조하라. 머스탱의 진척사항에 관한 자세한 정보를 원한다면 Language Model API JSR 269: Pluggable Annotation Processing API 참고하라.

2010/06/14 17:58 2010/06/14 17:58
Posted
Filed under Htm&Javascript
function replaceAll(str,orgStr,repStr)
{
    return str.split(orgStr).join(repStr);
}
2010/06/13 23:30 2010/06/13 23:30
Posted
Filed under C#
모든 페이지가 로딩 한 시점을 잡아 내기 위해서 다음과 같이 처리 한다.
프레임에 프레임이 들어 있는 페이지 같으 경우 다음과 같이 처리 하지 않는다면, 브라우저가 로딩 되어지는 정확한 시점을 찾아 낼 수 없다.

페이지 스크립팅 할 때 유용하게 이용할 수 있을거 같다.

if (browser.ReadyState == WebBrowserReadyState.Complete{
                //TODO 내용 구현
}
2010/06/09 20:45 2010/06/09 20:45
Posted
Filed under 분류없음
[원분] = http://www.youiwe.co.kr/support/asp_jungbo_view.asp?lmn=3&seqno=4

1) d:\test.mdf파일만 있는 경우.


sp_attach_single_file_db 'test','d:\test.mdf'
실행합니다.


2) d:\test.mdf, d:\test.ldf 가 있는 경우
sp_attach_db 'test','d:\test.mdf','d:\test.ldf'
실행합니다.


  1)보다는 2)이 확실히 복귀됩니다.
  자신의 컴퓨터에서 sql-server을 이용하여 복귀한 후 원하는 사이트로 'import and export data'을 하면 됩니다.
DBA
2010/06/06 13:18 2010/06/06 13:18
Posted
Filed under asp,asp.net
<%
	filename = "화일명"
	response.buffer=true
	response.contenttype="application/vnd.ms-excel" 
	Response.AddHeader "Content-Disposition","attachment;filename=" & filename
%>
2010/06/05 12:57 2010/06/05 12:57
Posted
Filed under Action Script
[원문] - http://www.flash8coders.com/zbxe/?mid=as30&document_srl=86410

BatchCode 를 3.0으로 포팅하는데 생각처럼 만만치가 않네요.
여기저기 물어보고 겁나게 삽질했습니다.
코드는 다소 바뀌었지만, 다행이 사용법은 2.0버젼이랑 동일하게 유지할 수 있었네요.
예제도 거의 같아요.





실행코드는 첨부파일이고 인터페이스 파일은 없습니다. 달랑 하나입니다.

이 데모의 소스는 다음과 같습니다. 2.0버젼이랑 거의 달라진게 없습니다.

package
{
        import com.greensock.easing.Bounce;
        import com.greensock.TweenLite;

        import flash.net.URLRequest;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextField;

        import clickage.common.util.BatchCode;
        import clickage.common.util.ImageTransform;

        import flash.events.Event;
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import fl.controls.Button;

        /** comment  :
        * For example
        *
        * <pre>
        *
        *
        *
        * </pre>
        *
        * @author Cheol-Jin Eom
        * @date 2010. 5. 19.
        * @see
        *
        * ************************************** */


        public class ViewManager
        {
                private var main:Main;
                private var sptMain:Sprite;
                private var sptImageContainer:Sprite;
                private var sptFieldContainer:Sprite;
                private var loader:Loader;
                private var URI_IMAGE:String = "http://www.flash8coders.com/images/img3.jpg";


                public function ViewManager(main:Main)
                {
                        this.main = main;
                }

                public function start():void
                {
                        buildViews();
                }

                private function buildViews():void
                {
                        var btn:Button = main.getChildByName("btn") as Button;
                        btn.addEventListener(MouseEvent.CLICK, clickHandler);

                        sptMain = new Sprite();
                        main.addChild(sptMain);
                        sptImageContainer = new Sprite();
                        sptMain.addChild(sptImageContainer);
                        sptFieldContainer = new Sprite();
                        sptMain.addChild(sptFieldContainer);

                        loader = new Loader();
                        sptImageContainer.addChild(loader);

                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handler_loaded_image);
                }

                private function clickHandler(event:MouseEvent):void
                {
                        // 초기화
                        loader.unload();
                        loader.x = 0;
                        if (sptFieldContainer.numChildren != 0) {
                                sptFieldContainer.removeChildAt(0);
                        }

                        // 배치실행 시작
                        excuteLinearProcess();
                }
                private function excuteLinearProcess():void
                {
                        var batch:BatchCode = BatchCode.getInstance();
                        batch.clearBatch(); // 안해도 되는데 걍 클리어해줬음, 시작할때가 아니라 마지막에 해도 괜찮을 듯
                        batch.onExcuteListener = function () {
                                batch.next();
                        };

                        batch.addBatch(this, this.loadImage, [URI_IMAGE]); // 1. 이미지를 로드하고, 이미지 로드가 완료되면
                        batch.addBatch(this, this.resizeOriginalRatio, [400, 400]); //2. 이미지의 사이즈를 조정하고
                        batch.addBatch(this, this.moveTo, [200]); // 3. 오른쪽으로 이동하는 트윈을, 트윈이 끝나면
                        batch.addBatch(this, this.addTitle, ["이미지 이동 완료"]); // 4. 완료가 됐다는 메시지를 찍어본다.
                        batch.addBatch(this, this.moveTextClip, [0, 10]); // 5. 이렇게 찍힌 텍스트클립을 좌상단으로 이동해본다.
                        batch.excuteBatch();
                }
                public function loadImage(uri:String):void
                {
                        loader.load(new URLRequest(uri));
                }

                private function handler_loaded_image(event:Event):void
                {
                        BatchCode.getInstance().onExcuteListener();
                }
                public function resizeOriginalRatio(boundWidth:Number, boundHeight:Number):void
                {
                        ImageTransform.transformToOriginalRatio(boundWidth, boundHeight, loader);
                        BatchCode.getInstance().onExcuteListener();
                }
                public function moveTo(pos:Number):void
                {
                        TweenLite.to(loader, 1, {x:pos, ease:Bounce.easeOut, onComplete:handler_complete_move});
                }
                private function handler_complete_move():void
                {
                        BatchCode.getInstance().onExcuteListener();
                }
                private function addTitle(msg:String):void
                {
                        var field:TextField = new TextField();
                        field.name = "field";
                        field.text = msg;
                        field.x = 0;
                        field.y = 0;
                        field.autoSize = TextFieldAutoSize.LEFT;
                        field.text = msg;
                        sptFieldContainer.addChild(field);
                        sptFieldContainer.x = 300;
                        sptFieldContainer.y = 350;

                        BatchCode.getInstance().onExcuteListener();

                }
                private function moveTextClip(x:Number, y:Number):void
                {
                        TweenLite.to(sptFieldContainer, 1, {x:x, y:y, ease:Bounce.easeOut});
                        BatchCode.getInstance().onExcuteListener();
                }

        }
}
2010/06/04 09:15 2010/06/04 09:15
Posted
Filed under Action Script

ActionScript 3.0에서 onReleaseOutside를 대체할 만한 이벤트가 없습니다.
그래서 MOUSE_DOWN 이벤트가 발생할 때, stage에 MOUSE_UP 이벤트를 추가했다가,
MOUSE_UP 이벤트 핸들러에서 다시 MOUSE_UP를 제거시키는 방법을 사용해야 하네요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public function Test(){
        // Add MOUSE_DOWN event to mc
        mc.addEventListener(MouseEvent.MOUSE_DOWN, rotateDragStart);
}
 
private function rotateDragStart(evt:MouseEvent):void{
        // Start drag
 
        // Add ENTER_FRAME event to mc
        mc.addEventListener(Event.ENTER_FRAME, rotateDragging);
        // Add MOUSE_UP event to stage
        stage.addEventListener(MouseEvent.MOUSE_UP, rotateDragStop);
}
private function rotateDragStop(evt:MouseEvent):void{
        // Stop drag
 
        // Remove ENTER_FRAME event from mc
        mc.removeEventListener(Event.ENTER_FRAME, rotateDragging);
        // Remove MOUSE_UP event from stage
        stage.removeEventListener(MouseEvent.MOUSE_UP, rotateDragStop);
}
private function rotateDragging(evt:Event):void{
        // Excute while dragging
}

thanks to derision, kidari70 and plandas from flash8coders.com

2010/05/30 20:53 2010/05/30 20:53
Posted
Filed under ORACLE
[원문] : http://javaora.tistory.com/114
setTimeout 함수는 일반적으로 지정된 시간이후 주어진 함수를 실행한는 타이머와 같은 역할을 한다. 인터넷상에서 검색해 보면 수많은 사용방법이 나온다. 일반적인 사용방법은 아래와 같다.

function test(){
    alert("테스트입니다.");
}

setTimeout("test", 1000);

 그럼 1초후 "테스트입니다." 라는 alert 창이 뜰것이다. 그럼 함수에 인자(Parameter)를 넘길때는 어떻게 하는가?

 아래와 같이 사용하면 된다.

function test(msg){
    alert(msg);
}

setTimeout("test('테스트입니다.')", 1000);

var vMsg = "또 다른 테스트입니다.";
setTimeout("test('+ vMsg +')", 3000);

 그럼 정확히 1초후 "테스트입니다." 라는 alert 창과 함께 "또 다른 테스트입니다." 라는 alert 창이 3초후에 뜰것이다. 여기까지는 setTimeout 의 사용법으로 많이 포스팅 되고 있다. 그렇다면 Object 형 인자를 넘기려면 어떻게 해야 할까?

 의외로 간단하다.

function test(obj){
    alert(obj.value);
}
function fnClick(obj){
    setTimeout(function(){
                          test(obj);
                     }, 1000);
}
<input type="button" value="Hello" onclick="fnClick(this);">

 조금 억지스러워 보일 예제이다. 좋은 예제가 생각안나 그냥 설명하겠다. 소스만 보시고도 감 잡으셨겠지만 Hello 란 버튼을 누르면 1초후 버튼의 값인 "Hello"를 alert 창으로 띄워준다.

 두번째 예제를 보고 Object 형 변수를 어떻게 넘길지 고민하시는 분들께 도움이 되었으면 한다.
2010/05/28 23:53 2010/05/28 23:53
Posted
Filed under ORACLE
[원문]http://tylee82.tistory.com/71


1. 덤프 뜨기(Export)
-기본
명령어프롬프트 > exp 아이디/비번@서비스명(SID)

-옵션(파일명 지정 또는 테이블 지정)
명령어프롬프트 > exp 아이디/비번@서비스명(SID)  tables=테이블명1,테이블명2...
file=파일명.dmp

2. 덤프파일 임포트 하기
-기본
명령어프롬프트 > imp 아이디/비번 file=파일명.dmp

-옵션 테이블지정
명령어프롬프트 > imp 아이디/비번 file=파일명.dmp tables=테이블명1,테이블명2...

덤프 넣을때 - import
D:\tmp>imp 아이디/비번
(일부 테이블만)
D:\tmp>imp 아이디/비번 file=파일명
tables=테이블명

/예)

exp test/testpw OWNER=test FILE=test.dmp LOG=test.log

exp test/testpw@test FILE=test.dmp LOG=test.log

imp test/testpw FROMUSER=test TOUSER=test FILE=test.dmp LOG = test.log

2010/05/27 14:02 2010/05/27 14:02