finerss's world!

서블릿은 서버에서 실행되는 프로그램이다.
그리고, 서블릿의 모태는 CGI라고 할수 있다.

기존의 HTML은 정적인 페이지만을 서비스 할수 있었지만,
CGI는 요청페이지내에 서버용 프로그램을 삽입하여,
서버에서 처리한 결과를 서비스 할수 있다.


CGI는 사용자의 요청이 있을때마다 프로세스를 하나씩
생성한다. 이로인한 단점은 서버의 부하인데
이러한 단점을 극복한 한단계 업그레이드된 버전이
바로 servlet과 jsp이다.

servlet과 jsp는 인-프로세스방식을 사용하는데,
이는 메모리에 라이브러리를 로드시킨뒤 한번 로드된 라이브러리
(프로세스 라고도 함)를 여러 요청에 이용할수 있는 방식이다.
(서버에 부하가 작아짐)
또 하나의 차이점은 servlet과 jsp는 자바의 모든 성질을 그대로
가지고 있기 때문에 스레드 처리도 가능하다는 것이다.

 즉 GI가 클라이언트 프로세스로 처리하는데 반해 서블릿은 클라이언트를 쓰레드로 처리한다. 그래서 많은 클라이언트의 요구를 효과적으로 처리할 수 있다. 서블릿 객체는 쓰레드가 여러 개 돌아가면서 처리하기 때문에 서블릿 메소드들은 반드시 멀티쓰레드에 대한 고려를 해야한다.





웹 서버는 정적인 페이지 서비스만 제공한다.
정적인페이지란 디렉토리에 있는파일 그대로를 말하는데 서버는 단지 클라이언트가 요청한 파일을 찾아서 그대로 클라이언트에게 넘겨줄 뿐이다. 즉 모든 클라이언트가 동일한 결과를 본다는 뜻이다.

웹서버 혼자서 할 수 없는 두가지
1. 동적인 컨텐츠 생성
 앞에서 말했듯이 웹 서버는 단지 정적인 페이지만을 제공할 뿐이다. 그러나 도우미(Helper)애플리케이션이 웹 서버와 협력해서
동적이고, 실시간으로 작성한 페이지를 제공할 수 있다. 예로 이미지 디렉토리에서 임의로 그림을 하나 골라 제공하는 페이지 같은 것을 말한다

2. 서버상에 데이터 저장하기
 
사용자가 폼에 데이터를 입력하고 전송 버튼을 눌렀을경우 웹서버는 혼자 파일이나 데이터베이스에 데이터를 저장할수 없다.
이 경우 웹 서버는 자신을 도와줄 애플리케이션에게 SOS요청을 하는데 웹서버는 파라미터를 애플리케이션에 넘겨주고 응답하도록 부탁한다.

이런 도우미 애플리케이션을 CGI(Common Gateway Interface) 라고 부르며 대부분의 CGI 프로그램은 펄(Perl) 스크립트로 작성한다. 물론 펄 말고도 C, 파이썬, PHP 같은 언어도 있다.

CGI를 가지고 현재시간(동적)을 클라이언트에게 제공하는 것을 살펴보면

 

 


1. 사용자는 정적인 페이지가 아닌 CGI 프로그램에 대한 URL을 클릭한다.


2. 웹 서버는 들어온 요청이 도우미 프로그램을 호출하는 것임을 간파하고는, 해당 프로그램을 실행한다. 물론 GET 또는 POST로 넘어온 파라미터를 그대로 넘겨준다


3. 도우미 프로그램은 현재 시간이 들어간 페이지를 만들어(동적으로) 서버에 HTML 형식으로 넘겨준다. 이시점에서 웹 서버가 도우미 프로그램으로부터 받는 페이지는 정적인 페이지이다.


4. 도우미 프로그램은 페이지를 장사를 끝내고 셔터 문을 내린다. 클라이언트는 정적인 페이지가 된 HTML 페이지를 서버로부터 받는다.











웹 서버(Web Server)
웹 서버는 클라이언트로부터 요청을 받아, 요청한 것을 넘겨주는 일을 한다.
즉, 사용자가 웹 브라우저로, 서버에 있는 자원(resource)을 요청하면 서버는 사용자가 요청한 것을 넘겨주는 것(응답)으로 작업이 완료된다. 잠깐 웹클라이언트 에대해서 설명하자면

- 웹 클라이언트는 사용자가 서버에 요청을 보낼 수 있는 기능을 제공한다. 서버에 요청을보내고 서버가 보내온 요청결과를 화면에 출력하는 일도 클라이언트의 역활
-클라이언트라는 용어는 사용자, 브라우저(응용프로그램) 을 뜻하기도하는데 브라우저는 서버랑 통신하는 넷스케이프나 모질라와 같은 소프트웨어를 말합니다. 브라우저의 주된역활을 HTML 코드를 읽어서(파싱), 화면에 보이는 것이다.



HTTP(HyperText Transfer)와
HTML(Hypertext Markup Language)


클라이언트로부터 요청을 받고나면, 서버는 브라우저에게 보낼 컨텐츠타입이 무엇인지 알려준다. 브라우저는 이것을보고 어떻게 화면에 출력할지 준비한다. 서버가 보내는 것은 HTML이라는 명령문으로, 이는 브라우저가 화면에 컨텐츠를 어떻게 출력할지에 대한 명령(instruction)으로 이루어져 있다. 그러므로 웹 브라우저는 HTML을 이해하고 있다.

웹상에서 일어나는 클라이언트와 서버간 대화는 거의 대부분 HTTP 프로토콜로 이루어진다.
HTTP프로토콜은 요청과 응답으로 이루어진 아주 단순한구조로 클라이언트가 HTTP요청을 보내면, 서버는 HTTP 응답으로 답한다.

HTML-브라우저가 서버로부터 받은 요청결과를 화면에 표시할 방법을 지정해준다.
HTTP-웹 상에서 클라이언트와 서버가 서로 대화하기 위한 규약, 언어를 지칭
서버는 클라이언트로 HTML을 전송하기 위해 HTTP를 사용한다!!

HTTP 프로토콜을 살펴보면

 HTTP는 TCP/IP 위에서 돌아간다. TCP/IP에서 TCP는 한쪽 노드에서 다른 쪽 노드로 파일을 보내는 역활을 하며 IP는 한 호스트에서 목적지 호스트까지 패킷을 옮기고 이동하기 위한 기반(베이스)프로토콜 이라고할수 있다. 하지만 HTTP는 TCP/IP를 기반으로하여 웹에서만 사용하는 프로토콜이며, TCP/IP를 이용해서 한 지점에서 다른 지점으로 요청과 응답을 전송한다.
즉, HTTP구조는 요청-응답의 끊임없는 주고 받음 이라고 말할수 있다.(클라이언트는 요청하고 서버는 여기에 응답한다)

HTML은 HTTP 응답안에 들어있다. HTTP응답에는 HTTP뿐만아니라 헤더정보라는것도 들어있는데 브라우저는 헤더정보로 컨텐츠를 어떻게 화면에 보여줄지에 대한 힌트를 얻는다.


요청과응답(HTTP 메소드)

HTTP 프로토콜에는 메소드가 여러가지 있는데, 그중 가장 많이 사용하는 것은 GET과 POST이다.
GET은 HTTP 메소드 중 가장 단순하며 단순히 서버에게 자원을 요청한다. 열기서 말하는 자원이란 HTML페이지나 JPEG 이미지, PDF문서 등을 말한다. GET의 핵심은 서버로부터 뭔가를 돌려(get back) 받는다 라는 것이다.
POST는 좀더 강력하다. POST는 서버에게 자원을 요청할때 필요한 정보를 함께 넘겨준다.
하지만 GET 방식역시 많지는 않지만 데이터를 보낼수있는데!! 다음과 같은이유로 GET보다는 POST를 사용해야하는 경우가있다.

- GET으로 보낼수 있는 글자수는 제한이 있다.
- GET의 데이터 전송방식은 브라우저 주소란에 기입하는 URL 뒤에 붙이는 식으로 중요한 데이터든 아니든 간에 화면에 노출이된다. 그러므로 패스워드처럼 민감한 데이터는 GET으로 보내지 않는것이 현명할 것이다.
ex) http://apis.daum.net/blog/category/list.do?blogName=finerss
                 URL           /웹서버상 자원에대한경로                ? 는 경로와 파라미터를구분하는 구분자이다.
한마디로말해 URL자체가 하나의 긴 문자열(String)이라는 것이다
- 위에 두가지 이유로 GET 으로 전송하는 URL은 즐겨찾기에 등록할 수 있지만, POST는 대부분 그렇지 못하다. 브라우저에 따라 폼의 서밋(submit) 결과를 즐겨찾기에 등록할수도, 못할 수도 있다.

                                                                                                    
                    <GET방식>                         
요청 라인 (HTTP메소드와 웹서버상 자원에대한경로, 그리고 파라메터가 URL바로다음 ?문자를 구분자로 기술하며 개별 파라메터는 &값으로 구분,브라우저가 요청한 프로토콜버전 을 담고있다)
요청 헤더 (Header)


<POST방식>
요청라인 (HTTP메소드와 웹서버상 자원에대한경로, 그리고 파라메터가 URL바로다음 ?문자를 구분자로 기술하며 개별 파라메터는 &값으로 구분,브라우저가 요청한 프로토콜버전 을 담고있다)
요청 헤더 (Header)
 메시지몸체 (파라메터는 여기서부터 기술. GET에서는 요청라인에 표기를 했기떄문에 길이에 제한이 있었지만 POST에서는 제한이 없습니다.)

위와 같은 방식으로 GET/POST 는 서버에 요청한다. 
지금까지 서버로 보내는 요청을 알아보았고 이제 반대로 서버가 클라이언트로 보내는 응답에 대해 알아보자.

HTTP응답은 간단히 헤더와 몸체로 구성되어있다. 헤더에는 사용된 프로토콜이 뭔지, 보내준 요청이 성공했는지, 몸체에 포함된 컨텐츠의 종류는 무엇인지 등이 있고, 몸체에는 HTML과 같은 컨텐츠가 들어있다. 브라우저는 바로 이정보를 화면에 출력한다.

 HTTP 응답 헤더
 컨텐츠

헤더에 Content-type 의값이 있는데 보통 MIME타입이라고 부른다. MIME타입이란 브라우저에게 "지금 서버가 이러 이러한 데이터를 보내려고하니 화면에 보여줄 준비를하시오" 라는 정보인데 서버가 보내주는 MIME타입은 클라이언트가 보낸 요청의 헤더중 Accept란에 기술되어있는 값과 관련이있다. (요청헤더의 Accept 설명은 행복한아빠님의블로그 에 잘설명되어있다)


URL(Uniform Resource Locators)


(1)http://(2)www.wickedlysmart.com(3):80(4)/beeradvice/select/(5)beer1.html

(1): 프로토콜(Protocol)-서버와 대화하기위하여 사용하는 커뮤니케이션프로토콜.
(2): 서버(Server)-인터넷 상에 이름 이이름은 ip주소에 매핑된다.
(3): 포트(Port)- 포트는 URL에서 옵션이다 어떤포트번호로 어떤서버 애플리케이션이 서비스되는지알수있다 80이 디폴트
(4): 서버에서 자원의 위치
(5): 자원- 요청된 컨텐츠 이름. 자원에는 HTML,Servlet,dlalwl,PDF,음악 등 서버가 제공하는 모든것이다포함되어있다. 자원을 명시하지않으면 많은 웹 서버들은 index.html을 기본으로 넘겨준다.
*숨겨진 부분 : 질이어(쿼리 스트링): GET방식이라면, 이데이터는 URL의 뒷부분에 파라미터로 죽 붙여서 날아온다 ?마크를 필두로 파라미터 이름과 파라미터값을 한 쌍으로 해서, 여러 쌍일경우 &로 구분해서 날아온다







1. 자연 조인 (NATURAL JOIN)
Equi 조인과 동일
두 테이블의 동일한 이름을 가지는 칼럼은 모두 조인된다.
SQL> select employee_id, last_name, department_name
2 from employees natural join departments
3 where department_name ='Sales';
EMPLOYEE_ID LAST_NAME DEPARTMENT_NAME
----------- ------------------------- ------------------------------
174 Abel Sales
176 Taylor Sales
2 rows selected.



2. 내부 조인 (INNER JOIN)
일반 조인의 , 를 생략하고 INNER JOIN 를 사용하며 ON절을 사용해야 한다.
Wrote file afiedt.buf
1 SELECT E.EMPLOYEE_ID, E.LAST_NAME, D.DEPARTMENT_NAME
2 FROM EMPLOYEES E inner join DEPARTMENTS D
3 ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
4* where e.job_id = 'IT_PROG'
SQL> /
EMPLOYEE_ID LAST_NAME DEPARTMENT_NAME
----------- ------------------------- ------------------------------
103 Hunold IT
104 Ernst IT
107 Lorentz IT
3 rows selected.



3. 외부 조인 (OUTER JOIN) - left
일반 조인에서 외부조인은 두 테이블에서 공통된 값이 없다면 테이블로부터 데이터를 리턴하지 않기때문에 그 외의 컬럼들을 보기 위한 조인이다.

LEFT OUTER JOIN 은
좌측 테이블과 우측 테이블에서 조건이 같은 컬럼은 모두 출력되며 , 우측 테이블의 컬럼은 모두 출력된다.
SQL> ed
Wrote file afiedt.buf
1 SELECT E.LAST_NAME, E.DEPARTMENT_ID ,D.DEPARTMENT_ID , D.DEPARTMENT_NAME
2 FROM EMPLOYEES E left outer join DEPARTMENTS D
3 ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
4* ORDER BY E.DEPARTMENT_ID
LAST_NAME DEPARTMENT_ID DEPARTMENT_ID DEPARTMENT_NAME
-------------------- ------------- ------------- ------------------------------
Whalen 10 10 Administration
Hartstein 20 20 Marketing
Fay 20 20 Marketing
Mourgos 50 50 Shipping
Vargas 50 50 Shipping
Matos 50 50 Shipping
Davies 50 50 Shipping
Rajs 50 50 Shipping
Lorentz 60 60 IT
Ernst 60 60 IT
Hunold 60 60 IT
Abel 80 80 Sales
Zlotkey 80 80 Sales
Taylor 80 80 Sales
De Haan 90 90 Executive
King 90 90 Executive
Kochhar 90 90 Executive
Gietz 110 110 Accounting
Higgins 110 110 Accounting
Grant
20 rows selected.



4. 외부 조인 (OUTER JOIN) - right
RIGHT OUTER JOIN은
좌측 테이블과 우측 테이블에서 조건이 같은 컬럼은 모두 출력되며, 좌측 테이블의 컬럼은 모두 출력된다.
SQL> ed
Wrote file afiedt.buf
1 SELECT E.LAST_NAME, E.DEPARTMENT_ID ,D.DEPARTMENT_ID , D.DEPARTMENT_NAME
2 FROM EMPLOYEES E right outer join DEPARTMENTS D
3 ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
4* ORDER BY E.DEPARTMENT_ID
SQL> /
LAST_NAME DEPARTMENT_ID DEPARTMENT_ID DEPARTMENT_NAME
-------------------- ------------- ------------- ------------------------------
Whalen 10 10 Administration
Hartstein 20 20 Marketing
Fay 20 20 Marketing
Davies 50 50 Shipping
Vargas 50 50 Shipping
Rajs 50 50 Shipping
Mourgos 50 50 Shipping
Matos 50 50 Shipping
Hunold 60 60 IT
Ernst 60 60 IT
Lorentz 60 60 IT
Taylor 80 80 Sales
Zlotkey 80 80 Sales
Abel 80 80 Sales
De Haan 90 90 Executive
King 90 90 Executive
Kochhar 90 90 Executive
Higgins 110 110 Accounting
Gietz 110 110 Accounting
190 Contracting
20 rows selected.


5. 셀프 조인 (SELFT JOIN)
1 select e.last_name "Employee", m.last_name "Reports To"
2 from employees e left outer join employees m
3* on e.employee_id = m.manager_id
SQL> /
Employee Reports To
------------------------- -------------------------
King Kochhar
King De Haan
De Haan Hunold
Hunold Ernst
Hunold Lorentz
King Mourgos
Mourgos Rajs
Mourgos Davies
Mourgos Matos
Mourgos Vargas
King Zlotkey
Zlotkey Abel
Zlotkey Taylor
Zlotkey Grant
Kochhar Whalen
King Hartstein
Hartstein Fay
Kochhar Higgins
Higgins Gietz
Vargas
Matos
Fay
Rajs
Abel
Ernst
Whalen
Lorentz
Davies
Gietz
Taylor
Grant
31 rows selected.
혹은
1 SELECT e.EMPLOYEE_ID , e.LAST_NAMe, e.JOB_ID, e.MANAGER_ID
2 FROM EMPLOYEES e, employees m
3* where e.employee_id = m.manager_id
SQL> /
EMPLOYEE_ID LAST_NAME JOB_ID MANAGER_ID
----------- ------------------------- ---------- ----------
100 King AD_PRES
100 King AD_PRES
100 King AD_PRES
100 King AD_PRES
100 King AD_PRES
101 Kochhar AD_VP 100
101 Kochhar AD_VP 100
102 De Haan AD_VP 100
103 Hunold IT_PROG 102
103 Hunold IT_PROG 102
124 Mourgos ST_MAN 100
124 Mourgos ST_MAN 100
124 Mourgos ST_MAN 100
124 Mourgos ST_MAN 100
149 Zlotkey SA_MAN 100
149 Zlotkey SA_MAN 100
149 Zlotkey SA_MAN 100
201 Hartstein MK_MAN 100
205 Higgins AC_MGR 101
19 rows selected.





6. 크로스 조인(cross join)
카티션 프로덕트 값을 얻을때 사용한다.
모든 컬럼의 곱한 값으로 조인되어 출력된다.
SQL> select last_name, department_name
2 from employees
3 cross join departments;
LAST_NAME DEPARTMENT_NAME
------------------------- ------------------------------
Abel Administration
Davies Administration
De Haan Administration
Ernst Administration
Fay Administration
Gietz Administration
.
.
.
.
Zlotkey Contracting
160 rows selected.
Elapsed: 00:00:00.06


'공부 > 기타' 카테고리의 다른 글

토드 단축키  (0) 2012.01.04
Crontab 설정  (0) 2011.12.15
L4 로드밸런싱  (3) 2011.11.08
OpenAPI OAuth  (0) 2011.06.13
ORA-00918: column ambiguously defined 원인 및 해결방법  (0) 2011.06.13

OpenAPI OAuth

공부/기타2011. 6. 13. 18:02

OAuth란?

  • OAuth 프로토콜은 웹사이트나 프로그램(컨슈머)에서 API를 통해서 컨슈머에 대한 사용자 확인 없이 웹서비스(서비스 프로바이더)의 보호된 리소스에 접근할 수 있게 해줍니다. 더 일반적으로, OAuth는 자유로운 구현과 일반적인 API 인증법을 만들수 있게 해줍니다.
  • 예를 들면, printer.example.com(컨슈머) 출력 서비스에서 photos.example.net(서비스 프로바이더)의 사용자 인증 요청없이 개인적인 사진을 출력할 수 있게 해줍니다.
  • OAuth는 사용자 인터페이스나 상호작용과 서비스 프로바이더에서 사용자 인증하는 방벙에 대한 명세가 OpenID처럼 필요없습니다.
  • OAuth 의 목표는 커뮤니티 중심 프로토콜과 웹서비스의 통합인증을 구현하는 것입니다. OAuth는 존재하는 프로토콜과 독립적으로 구현된 여러 웹 사이트 중에서 모범사례를 바탕으로 구현되었고, 개방형 표준과 크고 작은 업체들이 모두 지원하는 개발자와 사용자에게 일관되고 신뢰할 수 있는 경험을 장려합니다.

용어 정의

설명에 들어가기 앞서 일단 사용하는 용어에 대해 알아봅시다.

서비스 프로바이더(Service Provier)
OAuth를 통해서 접근을 허용하는 웹 애플리케이션.
사용자(User)
서비스 프로바이더에 계정을 가지고 있는 개인.
컨슈머(Consumer)
OAuth를 사용해서 사용자를 대신해 서비스 프로바이더에 접근하는 웹사이트나 애플리케이션.
보호된 리소스(Protected Resource)
컨슈머가 인증을 통해 접근할 수 있는 서비스 프로바이더의 데이터.
컨슈머 개발자(Consumer Devloper)
컨슈머를 규현하는 개인이나 단체.
컨슈머 키(Consumer Key)
컨슈머가 서비스 프로바이더에 자신을 나타내는 값. - 컨슈머 개발자가 서비스 프로바이더에서 발급
컨슈머 시크릿(Consumer Secret)
컨슈머가 컨슈머키의 소유권을 입증하는데 사용하는 시크릿. - 컨슈머 개발자가 서비스 프로바이더에서 발급
Request 토큰
컨슈머가 사용자에게 인증을 획득하기 위해 사용하는 값. 접근 토큰으로 교체됨. - 컨슈머가 서비스 프로바이더에 요청
Access 토큰
컨슈머가 서비스 프로바이더의 사용자 인증을 사용한 사용자 대신 보호된 리소스에 접근 권한을 얻는데 사용되는 값. - 컨슈머가 서비스 프로바이더에 요청
토큰 시크릿(Token Secret)
컨슈머가 토큰의 소유권을 입증하는데 사용하는 시크릿. - 컨슈머가 서비스 프로바이더에 요청
OAuth 프로토콜 파라미터(OAuth Protocol Parameter)
이름이 "oauth_"로 시작하는 파라미터.


일단 용어만 익숙해지고 인증 방식을 이해하면 서비스 프로바이더의 내용, 예를들어 다음 블로그나 까페의 글 제목, 내용등을 가져오는 간단한 로직은 그리 어렵지 않다

밑은 OAuth 개념설명 프리젠테이션 할때 간단히 만들었던 예제 소스와, ppt 자료인데
이곳저곳에서 잘설명돼어있는것을 퍼와서 재구성한것이니
보는데 어렵지 않게 이해할수있을 것이다~

 
 

OAuth.pptx

OauthTutorial.war

'공부 > 기타' 카테고리의 다른 글

토드 단축키  (0) 2012.01.04
Crontab 설정  (0) 2011.12.15
L4 로드밸런싱  (3) 2011.11.08
조인쿼리 정리  (0) 2011.06.13
ORA-00918: column ambiguously defined 원인 및 해결방법  (0) 2011.06.13


원인은 SELECT 컬럼에 동일 컬럼명이 2개 나온경우 발생한다.


단일 쿼리시에는 문제가 없지만 서브 쿼리의 경우 위의 문제가 발생함

SELECT A.ID , B.ID
FROM TEST A JOIN IMSI B ON B.ID= A.ID
;

위의 경우 아무런 문제가 되지 않으나 아래처럼 서브쿼리로 묶은경우

SELECT X.ID
FROM ( SELECT A.ID , B.ID
FROM TEST A JOIN IMSI B ON B.ID= A.ID
) X
;

서브쿼리 내에서 2개의 컬럼이 조회가 되어 어떤 컬럼을 써야 할지 모르는 경우

해결 방법은 SELECT 절에 컬럼명이 동일한 컬럼이 있는지 확인한다.

또한 AS 를 통한 ALIAS 도 자세히 살펴보아야 한다.

'공부 > 기타' 카테고리의 다른 글

토드 단축키  (0) 2012.01.04
Crontab 설정  (0) 2011.12.15
L4 로드밸런싱  (3) 2011.11.08
조인쿼리 정리  (0) 2011.06.13
OpenAPI OAuth  (0) 2011.06.13



출처 : http://kin.naver.com/detail/detail.php?d1id=1&dir_id=109&eid=AflE1+jL2y9YvOZQ6wm7ukI48DEQncLq&qb=dGFibGUgYm9yZGVy&pid=fbb3lsoQsCdsscDF4sdsss--439291&sid=SGGzQJN8YUgAAGCWO5Y

원어 : TABLE / 시작태그:필요 함 / 종료태그:필요 함
본문 내에 표를 만드는 태그입니다.
가장 많이 쓰이는 태그 이며, 홈페이지 내에서 많은 응용력을 필요로 합니다. 이 태그만 잘 사용해도 홈페이지 분위기가 확~~아주 중요한 태그입니다.

속성
align="값" (값 = left / center / right)
-----표의 정렬 상태를 설정 합니다. 3.0, 3.0 이상
backgroungd="이미지 파일 경로"
-----배경이 될 이미지 파일의 경로를 지정해 줍니다. 3.0, 4.0 이상
bgcolor="값" (값 = 색이름 / SRGB)
-----배경 색상을 지정해 줍니다. 3.0, 3.0 이상
bordercolor="값" (값 = 색이름 / SRGB)
-----표의 외곽선의 색상을 지정해 줍니다. 3.0, 3.0 이상
border="픽셀"
-----표의 외곽선의 두께를 설정하며, 값이 "0"이면 외곽선이 보이지 않습니다.
bordercolordark="값" (값 = 색이름 / SRGB)
-----표의 외곽선을 3차원으로 만들때 사용되는 어두운 색을 지정 3.0 이상
bordercolorlight="값" (값 = 색이름 / SRGB)
-----표의 외곽선을 3차원으로 만들 때 사용되는 밝은 색을 지정 3.0 이상
cellpadding="픽셀"
-----셀 경계와 셀 안의 내용과의 간격을 지정 3.0, 3.0 이상
cellspacing="픽셀"
-----셀과 셀 사이의 간격을 지정 3.0, 3.0 이상
cols="숫자"
-----표에 들어갈 열의 개수를 지정 4.0, 4.0 이상
class="클래스 이름"
-----스타일 시트의 서식을 적용 4.0, 4.0 이상
frame="값" (값 = above / below / border / hsides / Lhs / rhs / vside / void)
-----표 외곽선의 형태를 지정 border="1" 이상일 때 사용할 수 있습니다. 3.0 이상

above 바깥쪽 경계선 중 윗쪽만 나타남
below 바깥쪽 경계선 중 아래쪽만 나타남
border 기본적인 외곽선
hsides 바깥쪽 경계선 중 위아래만 나타남
Lhs 바깥쪽 경계선 중 왼쪽만 나타남
rhs 바깥쪽 경계선 중 오른쪽만 나타남
vside 바깥쪽 경계선 중 좌우만 나타남
void 외곽선이 나타 나지 않습니다.

height="픽셀"
-----표의 높이를 설정
hspace="픽셀"
-----표 위아래로 표 외곽 내용들과의 간격을 설정합니다. 3.0 이상
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
rules="값" (값 = cols / rows / none / all / group)
-----표에서 셀 사이에 경계선을 설정합니다. 3.0 이상

cols 열 사이의 경계선만 그린다.
rows 행들 사이의 경계선만 그린다.
none 표 외곽선을 제외한 내부 셀 경계를 모두 지운다.
all 표 외곽선을 포함한 내부 셀 경계를 모두 그린다.
group <TBODY>, <TFOOT>등 그룹들 안의 경계선을설정

style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
title="제목"
-----해당 문자에 부여할 텍스트를 입력. 브라우저에서는 풍선 도움말로 표시 4.0, 4.0 이상
width="픽셀/(%)"
-----표의 너비를 설정 하며, 브라우저를 대비한 비율을 퍼센트로 사용 하기도 합니다.

예제:

<html>
<head>
<title>TABLE 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table style="border: #000000 1px solid">
<caption align="TOP">style="border: #000000 1px solid"</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="0">
<caption align="TOP">BORDER="0"</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1">
<caption align="TOP">BORDER="1"</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="4">
<caption align="TOP">BORDER="4"</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
</body>
</html>

결과:

style="border: #000000 1px solid"
a b c
x y z

BORDER="0"
a b c
x y z

BORDER="1"
a b c
x y z

BORDER="4"
a b c
x y z

<html>
<head>
<title>TABLE 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1" width="500" bgcolor="#999999">
<caption align="TOP">WIDTH="500" bgcolor="#999999"</caption>
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>x</td><td>y</td><td>z</td></tr>
</table>
<p>
<table border="1" width=80%>
<caption align="TOP">WIDTH=80% (500px의 80%)</caption>
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>x</td><td>y</td><td>z</td></tr>
</table>
</body>
</html>

결과:

WIDTH="500" BGCOLOR="#999999"
a b c
x y z

WIDTH=80% (500px의 80%)
a b c
x y z


<html>
<head>
<title>TABLE 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1" >
<caption align="TOP">FRAME 속성을 사용하지 않을 때 </caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=VOID>
<caption align="TOP">FRAME=VOID</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=BORDER>
<caption align="TOP">FRAME=BORDER</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=ABOVE>
<caption align="TOP">FRAME=ABOVE</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=BELOW>
<caption align="TOP">FRAME=BELOW</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
</body>
</html>

결과:

FRAME 속성을 사용하지 않을 때
a b c
x y z

FRAME=VOID
a b c
x y z

FRAME=BORDER
a b c
x y z

FRAME=ABOVE
a b c
x y z

FRAME=BELOW
a b c
x y z

<html>
<head>
<title>TABLE 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1" frame=HSIDES>
<caption align="TOP">FRAME=HSIDES</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=LHS>
<caption align="TOP">FRAME=LHS</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=RHS>
<caption align="TOP">FRAME=RHS</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" frame=VSIDES>
<caption align="TOP">FRAME=VSIDES</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td></tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td></tr>
</table>
<p>
<table border="1" BOX>
<caption align="TOP">FRAME=BOX</caption>
<tr><td width="150">a</td><td width="150">b</td><td width="150">c</td> </tr>
<tr><td width="150">x</td><td width="150">y</td><td width="150">z</td> </tr>
</table>
</body>
</html>

결과:

FRAME=HSIDES
a b c
x y z

FRAME=LHS
a b c
x y z

FRAME=RHS
a b c
x y z

FRAME=VSIDES
a b c
x y z

FRAME=BOX
a b c
x y z


원어 : Table Row / 시작태그:필요 함 / 종료태그:필요 없음
표의 행을 만드는 태그 입니다.
<TABLE>안에 들어가며 <TR>태그가 들어갈 때 마다 행이 바뀌고 이 태그 안에는 <TD>가 들어가 셀을 만들어 줍니다.

속성
align="값" (값 = left / center / right / justify / char)
-----행에 들어갈 내용의 정렬 상태를 설정 합니다. 3.0, 3.0 이상
bgcolor="값" (값 = 색이름 / SRGB)
-----배경 색상을 지정해 줍니다. 3.0, 3.0 이상
bordercolor="값" (값 = 색이름 / SRGB)
-----표의 외곽선의 색상을 지정해 줍니다. 3.0 이상
bordercolordark="값" (값 = 색이름 / SRGB)
-----표의 외곽선을 3차원으로 만들때 사용되는 어두운 색을 지정 3.0 이상
bordercolorlight="값" (값 = 색이름 / SRGB)
-----표의 외곽선을 3차원으로 만들 때 사용되는 밝은 색을 지정 3.0 이상
char="기준 알파벳"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
charoff="문자 개수"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
class="클래스 이름"
-----스타일 시트의 서식을 적용 4.0, 4.0 이상
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
title="제목"
-----해당 문자에 부여할 텍스트를 입력. 브라우저에서는 풍선 도움말로 표시 4.0, 4.0 이상
nowrap
-----한 행의 줄바꿈 기능을 해제합니다. 3.0, 3.0 이상
valign="값" (값 = top / bottom / center / baseline)
-----행에 들어가는 내용의 정렬 방식을 위아래를 기준으로 설정 4.0, 4.0 이상

예제:

<html>
<head>
<title>TR 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
표에 행을 삽입한다. 즉 TR 태그가 삽입이 될 때마다 행이 바뀐다.<p>
<table border="1">
<caption align="TOP">TR 태그의 정렬방식</caption>
<tr align="left" valign="top">
<th colspan="3" align="CENTER">정렬방식</th>
</tr>
<tr align="left" valign="top">
<td width="200" height="50">LEFT, TOP</td>
<td width="200" height="50" valign="middle">LEFT, MIDDLE</td>
<td width="200" height="50" valign="bottom">LEFT, BOTTOM</td>
</tr>
<tr align="center" valign="middle">
<td width="200" height="50" valign="top">CENTER, TOP</td>
<td width="200" height="50">CENTER, MIDDLE</td>
<td width="200" height="50" valign="bottom">CENTER, BOTTOM</td>
</tr>
<tr align="right" valign="bottom">
<td width="200" height="50" valign="top">RIGHT, TOP</td>
<td width="200" height="50" valign="middle">RIGHT, MIDDLE</td>
<td width="200" height="50">RIGHT, BOTTOM</td>
</tr>
</table>
</body>
</html>

결과:

표에 행을 삽입 합니다. 즉 TR 태그가 삽입이 될 때마다 행이 바뀝니다.

TR 태그의 정렬방식
정렬방식
LEFT, TOP LEFT, MIDDLE LEFT, BOTTOM
CENTER, TOP CENTER, MIDDLE CENTER, BOTTOM
RIGHT, TOP RIGHT, MIDDLE RIGHT, BOTTOM


원어 : Table Data cell / 시작태그:필요 함 / 종료태그:필요 없음
표 내에 셀을 삽입 하며, <TD> 태그는 반드시 <TR> 태그 안에 들어가야 합니다.

속성
align="값" (값 = left / center / right / justify / char)
-----행에 들어갈 내용의 정렬 상태를 설정 합니다. 3.0, 3.0 이상
axis="셀 이름"
-----셀의 이름을 설정합니다. IE40, 4.0 이상
axes="관련 내용"
-----셀의 내용과 부합하는 이름을 나열합니다. IE40, 4.0 이상
backgroungd="이미지 파일 경로"
-----셀 안에 배경이 될 이미지 파일의 경로를 지정 3.0, 4.0 이상
bgcolor="값" (값 = 색이름 / SRGB)
-----셀의 배경 색상을 지정 3.0, 3.0 이상
bordercolor="값" (값 = 색이름 / SRGB)
-----셀 경계선에 색상을 지정 3.0 이상
bordercolordark="값" (값 = 색이름 / SRGB)
-----셀 경계선을 3차원으로 만들때 사용되는 어두운 색을 지정 3.0 이상
bordercolorlight="값" (값 = 색이름 / SRGB)
-----셀 경계선을 3차원으로 만들 때 사용되는 밝은 색을 지정 3.0 이상
char="기준 알파벳"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
charoff="문자 개수"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
class="클래스 이름"
-----스타일 시트의 서식을 적용 4.0, 4.0 이상
colspan="숫자"
-----두개 이상의 열의 공간을 하나의 열로 만들 때 사용 3.0, 3.0 이상
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
rowspan="숫자"
----두개 이상의 행의 공간을 하나의 행으로 만들 때 사용. 3.0, 3.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
title="제목"
-----해당 문자에 부여할 텍스트를 입력. 브라우저에서는 풍선 도움말로 표시 4.0, 4.0 이상
nowrap
-----셀 안의 줄바꿈 기능을 해제합니다. 3.0, 3.0 이상
valign="값" (값 = top / bottom / center / baseline)
-----행에 들어가는 내용의 정렬 방식을 위아래를 기준으로 설정 4.0, 4.0 이상

예제:

<html>
<head>
<title>TD 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1">
<caption align="TOP">셀의 배경으로 그림</caption>
<tr>
<td width="170" align="left" valign="top">a </td>
<td width="170" align="center" valign="middle">b </td>
<td width="170" align="right" valign="bottom">c </td>
</tr>
<tr>
<td width="170" height="50" background="image1.gif"> </td>
<td width="170" height="50" background="image2.gif"> </td>
<td width="170" height="50" background="image3.gif" > </td>
</tr>
</table>
<p>
<table border="1">
<caption align="TOP">셀의 배경으로 색 </caption>
<tr>
<td width="170" height="50" align="left" valign="top">왼쪽 위 정렬</td>
<td width="170" height="50" align="center" valign="middle">가운데 정렬</td>
<td width="170" height="50" align="right" valign="bottom">오른쪽 아래 정렬</td>
</tr>
<tr>
<td width="170" height="50" bgcolor="#CCCCCC" align="left" valign="top">a</td>
<td width="170" height="50" bgcolor="#66CCFF" align="center" valign="center">b</td>
<td width="170" height="50" bgcolor="#FFCCCC" align="right" valign="bottom">c</td>
</tr>
</table>
</body>
</html>

결과:

셀의 배경으로 그림
a b c

셀의 배경으로 색
왼쪽 위 정렬 가운데 정렬 오른쪽 아래 정렬
a b c


원어 : Table BODY / 시작태그:필요 없음 / 종료태그:필요 없음
Table FOOTer / 시작태그:필요 함 / 종료태그:필요 없음
Table HEADer / 시작태그:필요 함 / 종료태그:필요 없음

테이블을 머리말, 본문, 꼬리말로 나누었을 때 <THEAD>는 머리말, <TBODY>는 본문에 해당하며 그리고 <TFOOT>는 꼬리말에 해당 합니다. 이 태그는 시작 태그만 사용해도 무방합니다.

속성
align="값" (값 = left / center / right / justify / char)
-----들어갈 내용의 정렬 상태를 설정 합니다. 3.0 이상
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0 이상
char="기준 알파벳"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
charoff="문자 개수"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
class="클래스 이름"
-----스타일 시트의 서식을 적용 4.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0 이상
valign="값" (값 = top / bottom / center / baseline)
-----열에 들어가는 내용의 정렬 방식을 위아래를 기준으로 설정 4.0 이상

예제:

<html>
<head>
<title>T(HEAD, BODY, FOOT)태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1" width=500>
<caption>TBODY 태그</caption>
<thead>
<tr bgcolor="#FF9999"><td>THEAD<td>THEAD<td>THEAD</tr>
<tfoot>
<tr bgcolor="#99CCFF"><td>TFOOT<td>TFOOT<td>TFOOT</tr>
<tbody>
<tr bgcolor="#0099CC"><td>TBODY<td>TBODY<td>TBODY</tr>
<tr bgcolor="#0099CC"><td colspan="3">TBODY</tr>
</tbody>
<tbody>
<tr bgcolor="#0099CC"><td colspan="3">TBODY</tr>
<tr bgcolor="#0099CC"><td>TBODY<td>TBODY<td>TBODY</tr>
</tbody>
</table>
</body>
</html>

결과를 보면 TFOOT은 먼저 기술 하여도 제일 마지막에 나타나고 TBODY는 본문에 해당하는 중간에 나타납니다.

TBODY 태그
THEAD THEAD THEAD
TFOOT TFOOT TFOOT
TBODY TBODY TBODY
TBODY
TBODY
TBODY TBODY TBODY


원어 : Table Header cell / 시작태그:필요 함 / 종료태그:필요 없음
보통은 표에 가장 윗 줄에 위치하며 각 열의 제목을 나타낼 때 쓰며, 태그자 적용되면 글꼴이 굵게 되고 가운데 정렬이 됩니다.

속성
align="값" (값 = left / center / right / justify / char)
-----행에 들어갈 내용의 정렬 상태를 설정 합니다. 3.0, 3.0 이상
axis="셀 이름"
-----셀의 이름을 설정합니다. IE40, 4.0 이상
axes="관련 내용"
-----셀의 내용과 부합하는 이름을 나열합니다. IE40, 4.0 이상
backgroungd="이미지 파일 경로"
-----셀 안에 배경이 될 이미지 파일의 경로를 지정 3.0, 4.0 이상
bgcolor="값" (값 = 색이름 / SRGB)
-----셀의 배경 색상을 지정 3.0, 3.0 이상
bordercolor="값" (값 = 색이름 / SRGB)
-----셀 경계선에 색상을 지정 3.0 이상
bordercolordark="값" (값 = 색이름 / SRGB)
-----셀 경계선을 3차원으로 만들때 사용되는 어두운 색을 지정 3.0 이상
bordercolorlight="값" (값 = 색이름 / SRGB)
-----셀 경계선을 3차원으로 만들 때 사용되는 밝은 색을 지정 3.0 이상
char="기준 알파벳"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
charoff="문자 개수"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
class="클래스 이름"
-----스타일 시트의 서식을 적용 4.0, 4.0 이상
colspan="숫자"
-----두개 이상의 열의 공간을 하나의 열로 만들 때 사용 3.0, 3.0 이상
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
rowspan="숫자"
-----두개 이상의 행의 공간을 하나의 행으로 만들 때 사용 3.0, 3.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
title="제목"
-----해당 문자에 부여할 텍스트를 입력. 브라우저에서는 풍선 도움말로 표시 4.0, 4.0 이상
nowrap
-----셀 안의 줄바꿈 기능을 해제합니다. 3.0, 3.0 이상
valign="값" (값 = top / bottom / center / baseline)
-----행에 들어가는 내용의 정렬 방식을 위아래를 기준으로 설정 4.0, 4.0 이상

예제:

<html>
<head>
<title>TH 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1">
<caption align="TOP">TH 태그와 TD 태그 비교</caption>
<tr>
<th>TH</th>
<th>TH</th>
<th>TH</th>
</tr>
<tr>
<td width="150">TD</td>
<td width="150">TD</td>
<td width="150">TD</td>
</tr>
<tr>
<td width="150">TD</td>
<td width="150">TD</td>
<td width="150">TD</td>
</tr>
<tr>
<td width="150">TD</td>
<td width="150">TD</td>
<td width="150">TD</td>
</tr>
</table>
</body>
</html>

결과를 보면 TH 태그는 진하고 굵게 표시되며 가운데 정렬이 되고, TD 태그는 디폴트를 형성합니다.

TH 태그와 TD 태그 비교
TH TH TH
TD TD TD
TD TD TD
TD TD TD


원어 : table CAPTION / 시작태그:필요 함 / 종료태그:필요 함
이 태그는 <TABLE>태그 내에서만 사용 되며, 테이블에 대한 제목이나 설명을 기재 할 때 사용합니다. HTML 3.2 표준이지만 Netscape에서는 Align 속성이 적용되지 않습니다.

속성
align="값" (값 = top / bottom / left / right)
-----caption 태그의 내용의 정렬 방식을 지정 3.0
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
class="클래스 이름"
-----스타일 시트의 서식을 적용 4.0, 4.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
title="제목"
-----해당 문자에 부여할 텍스트를 입력. 브라우저에서는 풍선 도움말로 표시 4.0, 4.0 이상

예제:

<html>
<head>
<title>CAPTION 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1">
<caption align="top">CAPTION</caption>
<tr>
<td width="150">TOP</td>
<td width="150">caption 정렬 방식</td>
</tr>
</table><p>
<table border="1">
<caption align="bottom">CAPTION</caption>
<tr>
<td width="150">BOTTOM</td>
<td width="150">caption 정렬 방식</td>
</tr>
</table><p>
<table border="1">
<caption align="left">CAPTION</caption>
<tr>
<td width="150">LEFT</td>
<td width="150">caption 정렬 방식</td>
</tr>
</table><p>
<table border="1">
<caption align="right">CAPTION</caption>
<tr>
<td width="150">RIGHT</td>
<td width="150">caption 정렬 방식</td>
</tr>
</table>
</body>
</html>

결과는 caption 태그의 정렬 방식입니다.

CAPTION
TOP caption 정렬 방식

CAPTION
BOTTOM caption 정렬 방식

CAPTION
LEFT caption 정렬 방식

CAPTION
RIGHT caption 정렬 방식


원어 : table COLumn GROUP / 시작태그:필요 함 / 종료태그:필요 없음
테이블의 그룹에 대한 속성을 설정 하며, 시작 태그만 사용 합니다. HTML 3.2 표준이지만 Netscape에서는 Align 속성이 적용되지 않습니다.

속성
align="값" (값 = top / bottom / left / right)
-----colgroup태그의 내용이 어느 쪽에 정렬할 것인지를 지정 3.0
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
char="기준 알파벳"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
charoff="문자 개수"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
span="열 개수"
-----열의 개수를 지정 3.0, 4.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
width="픽셀"
-----열의 셀 너비를 설정 4.0, 4.0 이상
valign="값" (값 = top / bottom / center / baseline)
-----열에 들어가는 내용들의 정렬 방식을 위아래 기준으로 설정 4.0, 4.0 이상

예제:

<html>
<head>
<title>COLGROUP 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border="1">
<caption align="TOP"> COLGROUP 태그 </caption>
<colgroup>
<col align="left">
<col align="center">
<colgroup span="2" align="right">
<tr>
<td width="200">Align="Left"</td>
<td width="200">Align="Center"</td>
<td width="200">Align="Right"</td>
</tr>
<tr>
<td width="200">a</td>
<td width="200">b</td>
<td width="200">c</td>
</tr>
<tr>
<td width="200">a</td>
<td width="200">b</td>
<td width="200">c</td>
</tr>
<tr>
<td width="200">a</td>
<td width="200">b</td>
<td width="200">c</td>
</tr>
</table>
</body>
</html>

결과:

COLGROUP 태그
Align="Left" Align="Center" Align="Right"
a b c
a b c
a b c


원어 : table COLumn / 시작태그:필요 함 / 종료태그:사용 금지
각 열에 대한 속성을 설정 하며, 시작 태그만 사용 합니다. HTML 3.2 표준이지만 Netscape에서는 Align 속성이 적용되지 않습니다.

속성
align="값" (값 = top / bottom / left / right)
-----col태그의 내용이 어느 쪽에 정렬할 것인지를 지정 3.0
id="id 이름"
-----class와 동일한 기능. 다만 홈페이지 내에서 한번만 명시 할 수 있습니다. 4.0, 4.0 이상
char="기준 알파벳"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
charoff="문자 개수"
-----align 속성값을 "char"로 했을 때 정렬을 기준으로 할 문자를 지정 HTML 4.0 표준
span="열 개수"
-----열의 개수를 지정 3.0, 4.0 이상
style="스타일 시트 입력"
-----적용될 스타일 시트를 지정 4.0, 4.0 이상
width="픽셀"
-----열의 셀 너비를 설정 4.0, 4.0 이상
valign="값" (값 = top / bottom / center / baseline)
-----열에 들어가는 내용들의 정렬 방식을 위아래 기준으로 설정 4.0, 4.0 이상

예제:

<html>
<head>
<title>COL 태그</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body bgcolor="white">
<table border=1>
<caption align="top">COL 태그</caption>
<colgroup>
<col align="right">
<col align="center">

<tr>
<td width="300">ALIGN="RIGHT"</td>
<td width="300">ALIGN="CENTER"</td>
</tr>
</table>
</body>
</html>

결과를 보면 다음과 같습니다...^^

COL 태그
ALIGN="RIGHT" ALIGN="CENTER"


//체크박스 그룹 설정
var check = 0; //체크 여부 확인
function CheckAll(){
var boolchk; //boolean형 변수
var chk = document.getElementsByName("checkNum") //체크박스의 name값
if(check){ check=0; boolchk = false; }else{ check=1; boolchk = true; } //체크여부에 따른 true/false 설정
for(i=0; i<chk.length;i++){
chk[i].checked = boolchk; //체크되어 있을경우 설정변경
}
}

//첫번째 체크 박스는 전체 선택
<input type="checkbox" name="checkNum" onclick="javascript:CheckAll()">

//두번째 체크 박스는 하위 선택될 체크 박스
(게시판 관리자에서 삭제 처리를 위해 전체 선택이 가능하도록 했다.
페이지에 보여지는 레코드 수만큼 보여진다.)
<input type="checkbox" name="checkNum">

--------------------------------------------------혹은---------------------------------------------------------------

formtest.html, formprocess.jsp
formtest.html
--------------------------------
<script-x>
function chkval(n) {
nnum = n.checkbox;
var vchk = false;
for(i=0;i<nnum.length;i++){
vchk = vchk || nnum[i].checked;
}
return vchk;
}
</script-x>
<title>form test</title>
<body bgcolor="#FFFFFF">
<form name="form1" method="post" action="formprocess.jsp" onSubmit="return chkval(this)">
<input type="checkbox" name="checkbox" value="1">
1
<input type="checkbox" name="checkbox" value="2">
2
<input type="checkbox" name="checkbox" value="3">
3
<input type="checkbox" name="checkbox" value="4">
4
<input type="checkbox" name="checkbox" value="5">
5
<input type="checkbox" name="checkbox" value="6">
6
<input type="checkbox" name="checkbox" value="7">
7
<br>
<input type="submit" value="전송">
</form>

-------------------
formprocess.jsp
-------------------
<%
String[] checks = request.getParameterValues("checkbox");
%>
<%
int checklen = 0;
checklen = checks.length;
try{
for(int i=0;i<checklen;i++) out.println(checks[i]+"; ");
}
catch(Exception e){}
%>

'공부 > JavaScript' 카테고리의 다른 글

javascript 공백처리, 글자수체크  (0) 2011.11.25
자바스크립트 총정리  (0) 2011.06.30
쿠키(cookie)  (0) 2011.06.29

Head First Servlets&JSP 에있는

설명들과 예제들을 간추려서 내가 다시봐도 알아볼수있도록 작성할것이다.!

start~!


입사한지 3개월차

아직도 잘모르겠다,,,

공부합시다!!

'공부' 카테고리의 다른 글

오라클 힌트사용하기  (0) 2012.01.02
리눅스 기본명령어  (0) 2011.12.15
Oracle 날짜함수  (0) 2011.08.08
ORACLE에서 제공되는 내장함수  (0) 2011.08.08
스프링을 공부하기전에  (0) 2011.07.01