URL - 특정 리소스가 위치하는 주소를 나타냄.

카테고리 없음|2013. 10. 18. 11:15

 - URL : 컴퓨터 네트워크에서 자신이 원하는 정보 자원을 찾기 위해서는 해당 정보 자원의 위치와 종류를 정확히 파악할 필요가 있는데, 이를 나타내는 일련의 규칙을 URL(Uniform Resource Locator: 자원 위치 지정자)이라고 한다.


 - 구조

http://blogattach.naver.net/blogfile/sql/exam-mysql.sql


* http:// : 프로토콜.

blogattach.naver.net/ : 해당 자원이 위치하는 컴퓨터. IP나 도메인 주소 형태로 존재한다.

blogfile/sql/ : 자원이 있는 디렉토리.

exam-mysql.sql : 파일의 이름. jsp나 html이 오면 페이지가 열린다.


댓글()

html 태그 목록 -펌-

웹 & 안드로이드/HTML5|2013. 10. 18. 11:06

출처 - http://blog.naver.com/ioiioizzz/189161093



Attribute (name) is obsolete. Its use is discouraged in HTML5 documents

Attribute : 속성

obsolete : 더 이상 쓸모없는

discouraged : 낙담한, 술에취한

그 속성은 더 이상 쓸모가 없고 그것을 사용하는것은 HTML5에서는 별로라네요

HTML5에서 제외된 속성들을 아래 태그목록에서 별도로 표시해놓겠습니다.

 

 


색(color)는 다음과 같이 지정 "red", "green", "blue", '#ff0000(16진수)



<a 속성> anchor, 링크

   href - 문서경로(url, #name, mailto:메일주소?"제목"

   name - 책갈피 ( HTML5 X )

   target - 열릴대상(_blank, _parent, _self, _top)


<address> 주소나 연락처

 

<b> font 속성이 bold

 

<blockquote> 문단을 하나로

 

<body 속성>  </body>

   background - 배경(백그라운드)이미지 파일명

   bgcolor - 배경색

   text - 글자색

   link - 링크색

   vlink -방문했던 링크색

   alink - 링크를 클릭했을때의 색

 

<br> break, 줄바끔


<center> 중앙정렬 (HTML5 X )

 

<dl> description list, 순번이 없는 목록, <dt>,<dd>태그와 같이 사용

 

<em> emphasized 강조하다, 이텔릭체(italicized)


<embed 속성> embedded plug-in, 끼워넣다, 미디어연결

   src - 파일경로

   autostart - 자동재생(true,false)

   hidden - 화면에 감춤(true,false)

   width - 넓이

   height - 높이

   loop - 반복회수, 반복여부(true, false)  

 

<font 속성> 폰트지정

    face - 글꼴 "굴림체"

    color - 글꼴색상

    size-글꼴크기(1~7)


<frameset 속성> 페이지를 프레임으로 나눔

    rows - 페이지를 상하로 나눔(픽셀, %)

    cols - 페이지를 좌우로 나눔(픽셀, %)

    border - 테두리

    bordercolor - 테두리색상

    frameborder - 테두리여부(yes,no)

 

<frame 속성> frameset에 대한 지정

    name - 프레임명(target)

    src - 파일경로

    noresize - 프레임고정

    scrolling - 스크롤바(yes,no,auto)

 



 


<h1> ~ <h6> heading, 헤드라인

 

<hr 속성> horizontal rule, 수평선

    align(left,right,center) - 정렬

    color - 색상

    size - 굵기(픽셀)

    width - 길이(필셀.%)

    noshade - 그림자없음


<i> 이텔릭체(italic)


<iframe 속성> inline frame, 다른 웹페이지를 포함 (HTML5 X)

    name - 프레임명(target)

    src - 파일경로

    scrolling - 스크롤바(yes,no,auto)

    align(left,right,center) - 정렬    

    width - 넓이

    height - 높이

    frameborder - 테두리 (HTML5 X)

    bordercolor - 테두리색상 


<img 속성> image, 이미지

    src - 이미지경로

    alt - 설명

    align(left,right,top,middle,bottom) - 정렬

    border - 테두리를 숫자로

    height - 높이

    width - 넓이

    hspace - 좌우여백

    vspace - 상하여백


  

  

<marquee 속성> 스크롤

    behavior(scroll,slide,altermate) - 형태

    direction(left,right,up,down) - 방향

    scrolldelay - 지연속도(1/1000초)

    scrollmount - 픽셀수

    bgcolor - 배경색

    height - 높이

    width - 넓이

    loop - 반복횟수(기본값 infinite) 

 

<ol 속성> ordered list, 순번이 있는 목록, <li>태그와 같이 사용 (HTML5 X)

   type(a,i,1) - 목록앞에 붙는 표식

   start - 시작번호

 

<p 속성> paragraph. 단구분

        align(left, right, center) - 정렬

 

<pre> preformatted, 내용을 그대로 보여줌

 

<s> 취소선 (HTML5 x)

 

<strong> 굵은글씨체

 

<sup><sub> 위첨자(superscript),아래첨자(subscipt)

    

 

<u> 밑줄문자 (HTML5 X)

 

<ul 속성> unordered list, 순번이 없는 목록, <li>태그와 같이 사용

        type(disc, circle, square)

 

<xmp> 문단내용중 태그를 그대로 보여줌



   

----------

  

<form 속성> 폼안에 있는 데이타를 전송

    method - get,post 방식지정

    name - 폼이름

    action - 이동할 위치

    enctype - 대용량파일의 속성(multipart, form-data)


<input type=타입> 폼에서 사용

        button - 버튼

        name - 이름

        value - 값

   - checkbox - 체크박스

        name - 이름

        value - 값

        checked - 선택된상태 

   - file - 파일첨부

        name - 이름

        size - 길이

        readonly - 읽기전용  

   - hidden - 숨김

        name - 이름

        value - 값

   - password - 비밀번호 입력

        name - 이름

        size - 길이

        maxlength - 최대글자수

   - radio - 라디오버튼

        name - 이름이 같으면 같은 그룹

        value - 값

        checked - 선택된상태 

   - reset - 초기값으로 재설정

        name - 이름

        value - 값

   - submit- formd의 action 위치로 전송

        name - 이름

        value - 값

   - text - 텍스트입력

        name - 이름

        size - 길이

        value - 값

        maxlength - 최대글자수

        readonly - 읽기전용  

   


<select 속성> 폼에서 사용, option 태그하고 같이 사용, 목록에서 선택

     name - 이름

     size - 길이

     multiple - 복수선택가능


<option 속성> 폼에서 사용. select 태그의 세부 목록

     value - 값

     selected - 선택된 상태


<textarea 속성> 폼에서 사용. 메모장

     name - 이름

     cols - 넓이

     rows - 높이

     readonly - 읽기전용


--------------


<table 속성>

   align(left,right,center) - 정렬

   bgcolor - 배경색

   background - 배경이미지

   border - 테두리 두께

   bordercolor - 테두리색상

   cellpaddin - 셀 안쪽 여백  

   cellspacing - 셀과 셀사이의 여백

   width - 테이블넓이

   height - 테이블높이

   frame(above,below,border,box,rhs,ths,hsides,vsides,void) 표의 바깥쪽 테두리

   rules(all,cols,rows,group,none) 표의 안쪽 테두리


   <caption> 표의 제목

   <col> 모든 row에 대한 col의 속성

   <colgroup> 여러 col을 하나의 그룹으로

   <thead> 머리글

   <tfoot> 바닥글

   <tbody> 본문


<tr 속성> 테이블의 row

   align(left,right,center) - 정렬

   bgcolor - 배경색

   valign(top,middle,bottom) - 세로 정렬방식

   height - 높이

   rowspan - 병합 


<th 속성>,<td 속성> 테이블의 column

   align(left,right,center) - 정렬  

   valign(top,middle,bottom) 세로 정렬방식

   background - 배경이미지

   bgcolor - 배경색

   colspan - 병합

   nowrap - 줄바꿈안되게

   width - 넓이


    



댓글()

버튼을 누르면 키보드가 숨겨지는 예제.

웹 & 안드로이드/Android|2013. 10. 18. 09:29

- 토큰 : 여러개의 데이터를 구분 짓기위한 기호. ','(쉼표), '-', '_' 등등이 될 수 있다.



- 키보드를 사라지게 하는 코드.

1
2
3
4
5
6
//InputMethodManager에 키보드와 관련된 시스템서비스를 불러온다.
InputMethodManager im = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
//소프트 키보드를 숨김.
im.hideSoftInputFromWindow(
                        getCurrentFocus().getWindowToken(),     
                        InputMethodManager.HIDE_NOT_ALWAYS);


댓글()

웹 뷰 (Web View)

웹 & 안드로이드/Android|2013. 10. 18. 09:15

웹 뷰 : 안드로이드 앱 상에서 웹 페이지를 볼 수 있도록 하는 뷰.


웹 클라이언트 : 웹 뷰에게 웹 페이지를 공급해주는 것. 웹 뷰는 웹 클라이언트로부터 페이지를 공급받아 뷰 화면에 보여준다.


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends Activity {
    EditText et;
    Button b;
    WebView wv;
    InputMethodManager imm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b = (Button) findViewById(R.id.button1);
        et = (EditText) findViewById(R.id.editText1);
        wv = (WebView) findViewById(R.id.webView1);
        
        imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
        
        wv.setWebViewClient(new MyWebViewclient());
        WebSettings ws = wv.getSettings();
        ws.setJavaScriptEnabled(true);
        ws.setBuiltInZoomControls(true);
        
        wv.loadUrl("http://www.naver.com/");
        
        b.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                wv.loadUrl(et.getText().toString());
                imm.hideSoftInputFromWindow(
                        getCurrentFocus().getWindowToken(),     
                        InputMethodManager.HIDE_NOT_ALWAYS);
                
            }
        });
        
    }
        
    class MyWebViewclient extends WebViewClient{
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return super.shouldOverrideUrlLoading(view, url);
        }
    }
}
 


댓글()

Transaction(트랜젝션) - 어떠한 과정을 한 묶음으로 처리하는 것.



은행 현금인출기(ATM)에서 돈을 인출하는 과정을 생각해 봅시다.

현금인출을 하겠다고 기계에게 알려준뒤 현금카드를 넣어서 본인임을 인증받고,
인출할 금액을 선택하면 ATM 기는 돈을 내어줍니다.

이러한 거래에 있어서 지켜져야 할 중요한 것이 있습니다.
기계의 오동작 등으로 인하여 전산상으로는 돈을 인출한 것으로 입력이 되었는데 돈은 안나온다거나,
돈은 나왔는데 일련의 에러나 문제로 인하여서 돈을 인출한 것이 전산상으로 입력이 안되면
상당히 심각한 문제가 발생하겠죠.

때문에 전산상으로도 입력이 정상적으로 잘 되고, 돈도 인출이 정상적으로 잘 됨을 확인하고 나서야,
인출하는 하나의 과정이 정상적으로 처리되었음을 확인할 수 있습니다.
여기서 돈을 인출하는 일련의 과정이 하나의 묶음으로 처리되어야 함을 이해하실 수 있을것입니다.
그리고 혹시 처리도중 중간에 무슨 문제가 발생한다면 진행되던 인출과정 전체를 취소하고
다시 처음부터 시작하도록 해야 될 것입니다.

이것을 트랜잭션이라고 합니다.
transaction 의 사전적의미와도 상통합니다만, 거래함에 있어서 거래하는 양측이 다 원하는
결과물을 얻어야만 정상적으로 처리되는 것이고 그렇지 않다라면 거래자체가 무산되어 원점으로
되돌려져(roll back) 버리는 것이죠.
전산적으로나 데이터베이스에 있어서도 이처럼 하나의 묶음으로 처리가 이루어져야 하는 모든것에
트랜젝션이란 개념이 사용됩니다.

롤백(roll back) 이란 것은 트랜잭션으로 인한 하나의 묶음처리가 시작되기 이전의 상태로
되돌려지는 것을 말합니다.

커밋(commit) 이란 것은 정상적으로 처리되어서 확정(실행을 위해서 엔터키를 치는 것처럼) 한다는
것이구요. 커밋하면 트랜잭션의 처리과정이 모두 반영되며 하나의 트랜잭션 과정이 끝나게 됩니다.

트랜잭션, 롤백... 이러한 단어들은 모든 처리가 정상적으로만 이루어진다고 한다면 필요없는
것이겠죠. 그러나 항상 예외나 에러는 발생하는 것이며, 이러한 것이 발생할 때에 적절한 처리를
위해서 존재하는 것입니다.




출처 - http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=104&docId=70097173&qb=7Yq4656c7J6t7IWY&enc=utf8&section=kin&rank=1&search_sort=0&spq=1&pid=RD9F5U5Y7uCssc2RMfVssssssud-458312&sid=Ul9mV3JvLCEAAALoE-k

'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

Spring  (0) 2013.10.18
Maven  (0) 2013.10.18
Dependency Injection, DI - 의존성 주입.  (0) 2013.10.16
Collection - List 배열, Set 셋  (0) 2013.10.15
쓰레드  (0) 2013.10.14

댓글()

Dependency Injection, DI - 의존성 주입.

http://cafe.naver.com/jjdev/247

1. 의존성 주입


 - 의존성 주입(Dependency Injection, DI) : 어느 A객체를 필요로 하는 B객체는 A객체에 의존성을 가지고 있다. 필요로 하는 객체를 소스코드로 직접 객체 생성을 구현하지 않고, 다른 방법으로 객체를 주입 시켜주는 것. 마틴파울러는 세 가지의 의존성 주입패턴을 제시하였다.


* 생성자 주입 : 필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해 의존성을 주입한다.

* Setter를 통한 주입 : 의존성을 입력받는 세터(Setter) 메소드를 만들고 이를 통해 의존성을 주입한다.

* 인터페이스를 통한 주입 : 의존성을 주입하는 함수를 포함한 인터페이스를 작성하고 이 인터페이스를 구현하도록 함으로써 시에 이를 통하여 의존성을 주입한다.



1. 인터페이스 구현.


1
2
3
4
5
6
7
8
9
10
11
//인터페이스.
public interface Dao {
    public void getList();
}
//인터페이스 Dao를 구현한 OracleDao.
public class OracleDao implements Dao{
    @Override
    public void getList(){
        System.out.println("OracleDao.getList() - Oracle DB에 접근합니다.");
    }
}


 1
2
3
4
5
6
7
8
public class OracleService{
    public void getList(){
        System.out.println("OracleService.getList() - OracleDao.GetList() 를 호출합니다.");
        Dao dao = new OracleDao();
          dao.getList();
        System.out.println("OracleService.getList() - Dao에서 데이터를 받아 Controller에게 넘져줍니다.");
    }
}


- dao는 OracleDao객체가 되었다. 만약 OracleDao의 클래스명칭이 변경 되었을때 하나만 변경하면 된다.


2. Setter.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class ListController {
    public void doGet(){
        System.out.println("Controller - OracleService를 호출합니다.");
          OracleService service = new OracleService();
          service.serDao(new OracleDao()); //setter를 통해 서비스에 Dao를 주입 시켜주었다.
        service.getList();
        System.out.println("Controller - Service에서 데이터를 받아 View에 넘겨줍니다.");
    }
}
    
public class OracleService{
   Dao dao;
 
   public void setDao(Dao dao){
   this.dao = dao;
   }
 
    public void getList(){
        System.out.println("OracleService.getList() - OracleDao.GetList() 를 호출합니다.");
          dao.getList();
        System.out.println("OracleService.getList() - Dao에서 데이터를 받아 Controller에게 넘져줍니다.");
    }
}

 


- ListController에서 Service를 생성할때 Dao를 주입 시켜주었다.

Service에는 Dao를 생성하지 않아도 직접 생성한 것과 같은 결과가 나온다.

즉, Service와 Dao를 동시에 구현을 할때 Dao가 전부 구현할 때 가지 Service는 기다리지 않아도(먼저 구현이 끝나도), 혹은 Dao가 변경되더라도 따로 Service를 수정 할 필요가 없다는 것이다.


3.생성자를 이용.


-Setter와 동일. service를 생성할때 dao를 주입 시키면 된다.


'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

Maven  (0) 2013.10.18
Transaction(트랜젝션) - 어떠한 과정을 한 묶음으로 처리하는 것.  (0) 2013.10.17
Collection - List 배열, Set 셋  (0) 2013.10.15
쓰레드  (0) 2013.10.14
디자인 패턴  (0) 2013.10.14

댓글()

Collection - List 배열, Set 셋

List : 데이터가 순차적으로 들어온다. 안의 값은 중복이 가능하다.


Set : 순서가 없다. 안의 값은 중복이 불가능 하다.

트리 형태로 존재. 검색할때 빠르다.

제일 먼저 입력된 값은 루트. 중앙.

두번째


입력하는 순서는 상관없으나, 자체적으로 입력된 정보를 저장할때 트리형식으로 입력하기 때문에 전체를 검색하지않고도 값을 찾을 수 있다.


주로 데이터베이스, 인공지능 등에 쓰인다.





, Map 맵

Map : 키, 값 형태로 입력. 키안에는 오브젝트 형으로 올 수 있다.

프로포티지 - 키 값이 둘다 String형태로 존재.


키, 값에 또 다른 맵이 들어올 수 도 있다.


댓글()

쓰레드

1.쓰레드.


- 스택 : 호출된 메소드가 일을 하는 곳. 쓰레드라고도 한다.

스택은 메소드가 일을 하는 곳이다. 순차적으로 메소드를 실행 후, 메소드의 일이 끝나면 스택에서 지워버린다.


- 단일 쓰레드(스택)로는 여러개의 메소드를 동시에 처리할 수 없다. 이를 동시에 실행 가능하도록 하는것이 멀티 쓰레드이다.


- 동기화 :  처음 메소드가 접근하면 접근되는 메소드, 변수를 락을 건다. 락 중에 다음 메소드가 접근하면 처리를 하지 못하고 대기상태에 있게 된다.


쓰레드(스택)을 여러개 만들고, 동시에 메소드를 처리한다.

하지만 동시에 실행된 메소드들이 하나의 데이터를 처리 할때 문제가 생긴다. 이를 위한 기술이 동기화다.


 a지점에서 출금 요청한 것이 처리되기 전에 b지점에서 출금 요청하면, 출금이 2번 일어나게 된다. 심각한 문제다.

그래서 동기화라는 것이 있다.


a지점의 요청을 처리하기 전에 b가 요청을 했지만 a의 요청 처리가 끝날때 까지 대기 상태로 있다가, 처리가 끝나자 이미 남은 1000원은 출금 되어 b지점에서 출금이 안된다.


하지만 동기화로 인해 문제가 생기는 경우가 있다.



- 데드락 : 무한대기상태에 빠지는 것.




- 쓰레드 생성.


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
32
public class test{
    public static void main(String[] a){
        MyThreadOne one = new MyThreadOne();
        one.start();//첫번째 쓰레드 생성.
        
        Thread two = new Thread(new MyThreadTwo());
        two.start();//두번째 쓰레드 생성.
        
        Thread three = new Thread(){
            @Override
            public void run() {
               //세번째 쓰레드가 해야 할 일.
            }
        }
        
        three.start();//세번째 쓰레드 생성.
    }
}
 
class MyThreadOne extends Thread{
    @Override
    public void run() {
       //새로 생성된 첫번째 쓰레드가 해야 할 일.
    }
}
 
class MyThreadTwo implements Runnable{
    @Override
    public void run() {
        //새로 생성된 두번째 쓰레드가 해야 할 일.
    }
}


1. 첫번째는 쓰레드 클래스를 상속받아 그대로 새로운 쓰레드를 만든다.


2. 두번째는 Runnable인터페이스를 구현하여 해야 할 일을 정한 후, 

쓰레드 객체를 생성할 때 새로운 쓰레드에 해야 할 일을 같이 넣는 방법.


3. 세번째는 객체를 생성할 때 익명클래스를 통해 해야할 일을 정한다.






2. 안드로이드의 멀티쓰레드.


- 메인 메소드가 있는 쓰레드를 메인 쓰레드라고 한다.


- 안드로이드에서 메인쓰레드에 생성된 View들은 쓰레드간 공유가 불가능 하다.

이를 위해 핸들러가 존재하는데 뷰는 핸들러에서 요청이 가능하기 때문에 타 쓰레드에서 핸들러에 접근하면 된다.


- 핸들러도 하나의 쓰레드이다. 


- 안드로이드 쓰레드 예제

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
public class MainActivity extends Activity {
    TextView t1;
    TextView t2;
    int c1;
    int c2;
    Button b1;
    MyHandler handler;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        t1 = (TextView) findViewById(R.id.textView1);
        t2 = (TextView) findViewById(R.id.textView2);
        b1 = (Button) findViewById(R.id.button1);
        handler = new MyHandler();
        MyThread thread1 = new MyThread();
        thread1.setDaemon(true);
        thread1.start();
        
        b1.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                c1++;
                t1.setText(""+c1);
            }
        });
    } 
    public class MyThread extends Thread{
        @Override
        public void run() {
            boolean flag = true;
            while(flag){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                c2++;
            //    Message msg = new Message();
            //    msg.arg1 = 0;
            //    handler.handleMessage(msg);//메세지로 보낼 객체를 추가할때 사용.
                
                handler.sendEmptyMessage(0);//위와 같은 코드이나 메세지의 내용이 없고 신호만 보낼때 사용.
            }
        }
    }
    
    public class MyHandler extends Handler{
        @Override
        public void handleMessage(Message msg) {
            switch(msg.what){
            case 0 :
                t2.setText(""+c2);
                break;
            }
        }
    }
}
 


댓글()

디자인 패턴

http://blog.naver.com/sidoheba?Redirect=Log&logNo=110169917658



http://ko.wikipedia.org/wiki/%EB%B6%84%EB%A5%98:%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4

'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

Collection - List 배열, Set 셋  (0) 2013.10.15
쓰레드  (0) 2013.10.14
IntegerArrayConverter - String배열을 int배열로 변환  (0) 2013.10.06
내부클래스  (0) 2013.10.04
다형성 - 업캐스팅, 다운캐스팅  (0) 2013.10.02

댓글()

javascript에서 StringBuffer 사용하기.

웹 & 안드로이드/HTML5|2013. 10. 13. 18:33
<script>
var StringBuffer = function() {
    this.buffer = new Array();
};
StringBuffer.prototype.append = function(str) {
    this.buffer[this.buffer.length] = str;
};
StringBuffer.prototype.toString = function() {
    return this.buffer.join("");
};
</script>

<script>
var tag = new StringBuffer();
tag.append('ABC');
tag.append('DFG');
var text = tag.toString();
</script>

댓글()