스프링 프레임워크 공식 홈페이지

http://www.springframework.org/

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
hello spring 테스트  (19) 2007.02.27
Spring 프레임 워크북  (17) 2007.02.26
Spring Framework 레퍼런스  (23) 2007.02.26
by cranix 2007. 2. 26. 15:42
박재성 | 한빛미디어 | 2006년 01월 31일
책소개 무거운 EJB 아키텍처에서 벗어나 가벼운 Spring의 세계로 빠져보자!Spring은 EJB 아키텍처를 대신할 수 있는 강력한 프레임워크이지만, EJB처럼 개발자를 머리 아프게 할 정도로 무겁지 않다. 엔터프라이즈급 개...

Craig Walls,Ryan Breidenbach | Independent Pub Group | 2004년 12월 31일



스프링 인 액션 책은 어디서 구해야할라나...

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
hello spring 테스트  (19) 2007.02.27
스프링 프레임워크 공식 홈페이지  (16) 2007.02.26
Spring Framework 레퍼런스  (23) 2007.02.26
by cranix 2007. 2. 26. 15:14

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
hello spring 테스트  (19) 2007.02.27
스프링 프레임워크 공식 홈페이지  (16) 2007.02.26
Spring 프레임 워크북  (17) 2007.02.26
by cranix 2007. 2. 26. 15:12
1. 새로운 사용자 등록 (GRANT 이용)
 
(1) MySQL에서 모든 권한을 갖는 관리자용 사용자(root)를 추가할 때 
mysql>
GRANT ALL PRIVILEGES ON *.* to root@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
(2) 일반 사용자(user)에게 자신의 DB(mydb)의 모든 테이블에 모든 권한을 부여할 때 mysql> GRANT ALL PRIVILEGES on mydb.* to user@localhost IDENTIFIED BY 'password'; 2. MySQL의 root 사용자 암호 바꾸기 (mysqladmin 이용) (1) root 패스워드 변경하기. mysql> mysqladmin -u root password new-passwd
(2) 잊어버린 root 암호 다시 설정하기
a. MySQL 모든 프로세서 죽이기
# killall mysqld
b. grant-table을 사용하지 않고 MySQL 데몬을 시작
# ./asfe_mysql --skip-grant-tables &
c. 사용자 테이블이 있는 mysql DB로 접속하여 root 패스워드 다시 설정
# mysql -u root mysql mysql> update user set password=password('newpassword') where user='root';
d. 새로운 암호를 적용하기 위해 flush privileges를 실행
mysql> flush privileges;
e. 다시 모든 MySQL 데몬을 죽인다
# killall mysqld
f. grant-table을 사용하기 위해서 정상적인 방법으로 데몬을 시작
# ./safe_mysqld & 3. 데이타베이스&테이블 생성 및 삭제 (1) 데이타베이스 생성 및 삭제하기
mysql> database
(2) 테이블 생성 및 삭제하기
mysql> table (......); # mysql -u user_name -p db_name < create_table.sql 4. 데이타 검색 (1) 기본형식
mysql> selcet from [];
(2) 정렬해서 검색하기
mysql> select from [where ] -> order by [asc | desc];
(3) 특정 문자열이 포함된 칼럼 검색하기
mysql> select from where like 'string'; 5. 데이터 백업 및 복구 (1) 백업
# mysqldump -u -p >
(2) 복구
# mysql -u -u -p <














출처 : http://cafe.naver.com/bio2bio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=282http://cafe.naver.com/bio2bio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=282

' > Mysql' 카테고리의 다른 글

mysql DATE 연산함수  (908) 2009.08.19
MYSQL 글자 붙이기  (44) 2007.07.23
MYSQL LAST_INSERT_ID()  (26) 2007.07.20
MYSQL JOIN 구문  (1087) 2007.06.10
MYSQL EUC-KR 을 UTF-8 로 변경하기  (682) 2007.03.09
by cranix 2006. 12. 18. 15:17

톰켓 4.x 버젼까지는 됬는데 5.x 버젼으로 가면서 셋팅법이 약간 바꼇다.;

이거때문에 좀 애먹었다..ㅡ.ㅡ;


1. MYSQL 드라이버를 받아서 설치하기;

  - 이거 잘못넣어놓으니까 자꾸 클래스를 못찾는 에러를 발생한다.  톰켓루트의 shared/lib 이나 애플리케이션루트의 WEB-INF/lib 디렉토리에 넣으면 컴파일은 되나 실행하면 클래스를 못찾는다는것을 명심하자.

  - 가장 귀찮지만 좋은방법은 환경변수에 클래스패스를 걸어서 따로 모아두는거다.(귀찮다.)

  - 두번째 방법은 톰켓루트 common/lib 에 넣어놓는거다. 이거는 클래스패스 안걸어도 톰켓이 알아서 찾아간다. (난 이걸로 쓰겠다.)

  - 마지막으로 가장 무식한방법인 jre/lib/ext 에 넣는 방법이다. (이건 대략 비추)


2. server.xml 설정하기;

  - 이게 문제다. 5.x 버젼으로 오면서 약간 바꼇다. 확인해보자.

  - 아래것을 <Context> 태그 사이에 넣어주면 된다.


  - 먼저 기존것은 다음과 같다.


  <Resource auth="Container" name="jdbc/mysql" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/mysql">
  <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  </parameter>
  <parameter>
    <name>url</name>
    <value>jdbc:mysql://localhost:3306/cranix</value>
  </parameter>
  <parameter>
    <name>driverClassName</name>
    <value>com.mysql.jdbc.Driver</value>
  </parameter>  
  <parameter>
    <name>maxIdle</name>
    <value>10</value>
  </parameter>
  <parameter>
    <name>maxActive</name>
    <value>20</value>
  </parameter>
  <parameter>
    <name>maxWait</name>
    <value>-1</value>
  </parameter>
  <parameter>
    <name>minEvictableIdleTimeMillis</name>
    <value>600000</value>
  </parameter>
  <parameter>
    <name>username</name>
    <value>ID</value>
  </parameter>
   <parameter>
    <name>password</name>
    <value>PASS</value>
  </parameter>
  </ResourceParams>


  - 이것이 아래와같이 변경됬다.


  <Resource
   name="jdbc/mysql"
   auth="Container"
   type="javax.sql.DataSource"
   username="[ID]"
   password="[PASS]"
   driverClassName="com.mysql.jdbc.Driver"
   url="jdbc:mysql://localhost:3306/cranix"
  />


  - 짧아져서 좋긴한데.. 몇시간동안 헤멨다 (역시 네이버형님은 모르는게 없다.!)


3. web.xml 설정하기

  -  이건 변함없다.


<resource-ref>
<description>Use for valuation systems DataSource</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>



4. 커넥션 확인하기!

  - JNDI 를 써서 커넥션을 확인해보자.

  - 먼저 아래와같이 JNDI 를 컨트롤하는 클래스를 하나만들자.


  - JndiConnectionManager.java


package cranix.common.util;
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import java.util.Hashtable;


public class JndiConnectionManager {
private static JndiConnectionManager jcm = null;

private Hashtable<String, DataSource> table = null;
private Context initContext = null;

private JndiConnectionManager() throws Exception {
table = new Hashtable<String, DataSource>();
initContext = (Context)new InitialContext().lookup("java:comp/env/");
}
private DataSource getDataSource(String name) throws Exception {
DataSource ds = table.get(name);
if (ds == null) {
  ds = (DataSource)initContext.lookup(name);
  table.put(name, ds);
}
return ds;
}
public static JndiConnectionManager getInstance() throws Exception {
if (jcm == null)
  jcm = new JndiConnectionManager();

return jcm;
}

public Connection openConnection(String name) throws Exception {
DataSource ds = getDataSource(name);
Connection conn = ds.getConnection();  
return conn;
}
public void closeConnection(Connection conn) throws Exception {
conn.close();
}
}



  - 다음 위 클래스를 쓰는 jndiTest.jsp 파일을 만든다.


<%@page import="java.sql.Connection,cranix.common.util.JndiConnectionManager" %>
<%
  JndiConnectionManager jcm = JndiConnectionManager.getInstance();
  Connection conn = jcm.openConnection("jdbc/mysql");
  jcm.closeConnection(conn);
%>
success!


  - 이제 실행해보자!

  - 예외가 발생하지 않는다면 성공!

' > Jsp' 카테고리의 다른 글

jsp 직접실행 막기  (53) 2007.12.12
JSP 페이지를 열때마다 자동으로 캐시 지우기  (42) 2007.03.18
스트러츠 2.0  (92) 2006.12.16
by cranix 2006. 12. 16. 20:15

먼저 알아야 할것은 dom 으로 파싱을 하려면 파싱하려는 문서의 contextType 이 text/xml 이어야 한다는 것이다. (이것때문에 좀 고생했다..ㅡ.ㅡ;)

윗쪽에 "<?xml version="1.0" encoding="euc-kr" ?>" 이처럼 xml 선언을 해 주어도 페이지 contextType 이 text/xml 이 아니면 파싱이 안되니 주의하자. (거꾸로 이처럼 xml 선언을 안해줘도 contextType 이 text/xml 이면 파싱이 가능하다.)



이 문서에서 쓸 테스트 xml 파일을 만들어 보자.


<root>
<subtitle attr1="testattr1">
<subitem attr="testattr">item1</subitem>
<subitem>item2</subitem>
<subitem>item3</subitem>
</subtitle>
<subtitle2>test</subtitle2>
</root>


간단하다..



일단 위 파일을 XMLHttpRequest 로 받은후에 responseXML 속성을 받아서 파싱하면 되겠다.


1. subtitle 의 attr1 의 데이터 가져오기.


xmlObj.getElementsByTagName("subtitle")[0].getAttribute("attr1")


- 위와같이 하면되는데 getElementsByTagName("subtitle") 는 문서내에 있는 subtitle 라는 태그를 모두 배열에 담아 돌려준다는것을 기억하자.



2. subtitle2 의 텍스트 가져오기.


xmlObj.getElementsByTagName("subtitle2")[0].text


- 노드가 가지고있는 데이터 내용을 출력할때는 text 속성을 쓴다는것을 기억하자.



3. subtitle 하위태그로 있는 subitem 태그들을 배열로 받아보자.


xmlObj.getElementsByTagName("subtitle")[0].childNodes


- 위와같이 하면 된다. 현재 테스트 문서에 subitem 은 3개 있으니 .length = 3 이 되겠다.



4. 그럼 간단하게 subitem 의 모든내용을 출력하는 것을 만들어보자.


var nodes = xmlObj.getElementsByTagName("subtitle")[0].childNodes;

for (var i=0;i<nodes.length;i++) {

alert(nodes[i].text);

}



가장 기본적인 xml 탐색방법을 알아봤다.

이걸 응용해서 어떤 것이든 탐색이 가능하겠지만 귀찮다.

그래서 나온지는 모르겠는데(ㅡ.ㅡ;) 하여튼 나온게 XPATH 이다.

자 그럼 이제 xpath 탐색법을 배워보자.


- 아래는 xpath 연산자이다.

연산자
의미
/
자식노드 지정
root/subtitle (<root>의 자식인 <subtitle>)
//
후손전체지정
root//subitem (<root>의 후손중 모든 <subitem>)
*
와일드카드
root/* (<book>의 모든 자식요소)
root/@* (<book>의 속성전체)
.
자기자신
.//subtitle
..
부모노드
../subtitle
|
노드의 논리합
root/subtitle|root/subtitle2
( root/subtitle 와 root/subtitle2 을 모두 찾는다)


- 이제 예제들을 보자.


1. root/subtitle 노드를 탐색해 보자.


xmlObj.selectSingleNode("root/subtitle")


- selectSingleNode 하면 매칭되는 노드가 여러개있어도 그중 최상위 하나만 돌려준다.

  모두 검색하려면 selectNodes(xpath) 를 쓰면 된다.



2. 이제 getElementsByTagName() 처럼 모든 태그를 검색해서 원하는 노드를 가지고오는 것을 해보자.


xmlObj.selectSingleNode("//subtitle")


- 위와같이 "//" 연산자를 쓰게되면 해당 노드의 하위를 검색해서 일치하는 이름의 노드를 돌려준다.

- "//" 연산자는 어디든 올수있다. 예를들어 "root//subtitle" 라고 검색을 하게되면 root 이하의 노드에서 subtitle 를 찾게되는것이다.

- 단 "//" 연산자는 쓰기는 편하나 xml 파일이 커질수록 부하가 늘어난다는점을 기억하자.


3. 이제 좀더 나가서 subtitle 의 subitem 중 item2 라는 데이터값을 가지고있는 노드를 검색해보자.


xmlObj.selectNodes("/root/subtitle/subitem[.='item2']")


- 이거 놀랍지 않은가? for 문 같은거 안써도 된다..ㅡ.ㅡ;;

- item 값옆에 [] 를 쓰고 해당 데이터값을 기준으로 검색할수가 있다.

- 여기서 '.' 은 자기 자신을 의미한다.



4. subtitle 의 subitem 중 attr 속성이 'testattr' 인것을 검색해보자.


xmlObj.selectNodes("/root/subtitle/subitem[@attr='item2']")


- '@' 요걸 쓰면 된다.

- 단 [] 구문은 / 옆이 아니라 item 이름 옆에 온다는것을 기억하자.



5. 이제 좀헷깔리는 문제를 보자. 아래두 구문의 차이는 무엇일까?


xmlObj.selectNodes("/root/subtitle[subitem='item2']")

xmlObj.selectNodes("/root/subtitle/subitem[.='item2']")


- 둘다 subitem 의 데이터를 검색하긴 한다 그러나 위에것은 subtitle 노드를 돌려주고 아래것은 subitem 노드를 돌려준다.

- [] 구문은 바로 옆에 있는 노드를 돌려준다는것을 기억하자.


6. 자 아래 구문을 보자.


xmlObj.selectNodes("/root/subtitle/subitem/@*");


- 어떤 노드의 속성을 모두 탐색하고 싶다면 위와같이 하면 된다.

- 속성이 속성값이 아니라 하나의 노드로 인식해서 돌려주게된다.

- 위의 내용은 subitem 에 속성은 attr 밖에 없으니까 attr 노드를 돌려주게 되는것이다.

- 소스로 설명하면 아래와 같다.


<subitem attr="testattr"/>


위의 소스를


<subitem>

  <attr>testattr</attr>

</subitem>


위와같이 인식하는 것이다.


' > Web' 카테고리의 다른 글

부분적으로 XSL 적용하기.  (22) 2007.08.22
XSL 엘리먼트 정리  (22) 2007.08.22
텍스트 로 자바스크립트 실행하는 방법  (44) 2007.08.01
xsl 에서 태그 속성 바꾸기.  (23) 2007.07.16
웹페이지 인코딩  (23) 2007.06.11
by cranix 2006. 12. 16. 20:13

스트러츠 1.X 버젼들을 써봤기때문에 금방 접근할수 있겠지..


라고 생각했었는데 오산이었다..ㅡ.ㅡ;;


2.0 은 모든게 바꼈다.


이 문서에서는 tomcat 5.5, jdk1.5 를 쓰겠다.







먼저 struts2 를 다운받아보자.


http://people.apache.org/builds/struts/2.0.1/struts-2.0.1-all.zip


압축을 풀면 아래와같은 디렉토리가 나온다.


apps/

: 스트러츠로 작성되어있는 샘플 프로그램이 들어있다.

struts2-blank-XXX.war 파일은 스트러츠 기본 디렉토리 구조이다.

(참고로 war 파일은 알집으로 풀린다.)


docs/

: API 문서가 들어있다.


j4/

: 기본 jar 파일이 들어있다. (왜 있는지는 잘 모르겠다..ㅡ.ㅡ;)


lib/

: 스트러츠에서 제공되는 모든 jar 파일이 들어있다.

struts2-all-2.0.1.jar 이 파일도 같이 있는데 이것은 파일명에서 볼수있듯이

다른 파일들을 묶어 놓은것이다.

이상하게 이걸 라이브러리로 쓰니까 실행이 안된서 저걸 빼고 다른걸 라이브러리로 썻다.


src/

: 소스가 들었다.




이제 톰켓에 스트러츠2를 써서 hello Struts2 를 찍어보겠다..;;



1. 톰켓에 새로운 애플리케이션을 추가한다.


2. 추가된 애플리케이션의 WEB-INF/lib 에다가 struts2 의 lib/ 디렉토리에 있는것을 복사한다.

  (단 struts2-all-2.0.1.jar 파일은 중복되므로 복사하지 않는다.)


3. WEB-INF/classes 디렉토리에 struts.properties 파일을 만들고 아래와같이 저장한다.


struts.action.extension=action

struts.configuration.files=struts-default.xml,struts.xml


- URL EXTENSION 을 여기서 설정한다. (안쓰면 기본으로 action 이 된다.)


4. WEB-INF/classes 디렉토리에 struts.xml 파일을 만들어서 아래와같이 저장한다.

[code]<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
  <package name="default" extends="struts-default">
       <action name="hello">
           <result>pages/helloStruts2.jsp</result>
       </action>
  </package>
</struts>[/code]


5. WEB-INF 디렉토리에 web.xml 파일에다가 아래 두가지 구문을 추가한다.

[code]<filter>
<filter-name>webwork</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<security-constraint>
<web-resource-collection>
  <web-resource-name>PreventViewingJSPs</web-resource-name>
<description>웹으로 접속한 사용자가 JSP파일로 직접 접근할 수 없도록 한다.</description>
  <url-pattern>*.jsp</url-pattern>
  <http-method>GET</http-method>
  <http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
  <role-name></role-name>
</auth-constraint>
</security-constraint>[/code]

- 이전버젼에서는 servlet 으로 했는데 filter 로 바꼈다.

  또한 이전 버젼에서는 여기서 config 파일 지정을 해줬었는데 없어졌다.

  아마 어딘가에 있을꺼 같은데 찾지를 못하겠다.

- 또 여기서 중요한것은 web.xml 에서 태그는 순서를 가린다는 것이다.

   예를들어 welcome-file-list 가 filter 보다 위에있으면 안되는데 위에 있게되면

  제대로 안되는경우가 있으니 dtd 파일을 잘 확인해서 설정할수 있도록 하자.


6. 어플리케이션 루트에 pages 라는 디렉토리를 만들고 위에서 정의한 helloStruts2.jsp 파일을 만들어서 "hello Struts2" 라고 쓰고 저장한다.


7. 이제 톰켓을 실행하고 http://[URL]/[애플리케이션명]/hello.action 이라고 쳐서 제대로 나오나 확인해보자.





http://struts.apache.org/2.x/ 예제들이 있으니 확인해 보길 바란다.


단.. 영어라는거..ㅡ.ㅡ;


' > Jsp' 카테고리의 다른 글

jsp 직접실행 막기  (53) 2007.12.12
JSP 페이지를 열때마다 자동으로 캐시 지우기  (42) 2007.03.18
TOMCAT5.5 + MYSQL5.0 + JNDI 설정하기  (44) 2006.12.16
by cranix 2006. 12. 16. 20:09

AJAX

AJAX 를 구현하려면 XMLHttpRequest 객체부터 생성해야 한다.


XMLHttpRequest 객체는 최초 IE5에서 ActiveX Component 형식으로 먼저 제공되었으며 현재 대부분의 브라우저들이 지원하고 있다. XMLHttpRequest는 W3C의 표준이 아니므로 IE 는 ActiveX 형식으로, 다른 브라우저(FIreFox, Safari, Opera등)은 Native Javascript로 구현되었다.)


AJAX 요소 기술로는 앞서 얘기한 XMLHttpRequest를 필두로 XHTML,CSS,XML,XLST,Javascript,DOM 등이 사용되며, Javascript가 ECMA표준이며 다른 기술은 W3C표준이므로, 모든 브라우저 개발 업체/단체의 합의하에 통용되는 표준으로 자리매김되어 있다.




먼저 AJAX 초기화하려면 아래와같이 두개로 나눠서 해야한다.

위에서 설명한대로 IE 와 타 브라우저가 다르게 지원하기때문에 모두에 맞추려면 아래와같이 나눠서 처리해줘야 한다.

[code]function createXMLHttpRequest() {
var xmlHttp = null;
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}

if (xmlHttp == null)
alert("XML 객체를 생성하지 못했습니다.");

return xmlHttp;
}[/code]


이것을 쓰기위해서는 아래와같이 오브젝트의 onreadystatechange 속성 에 이벤트를 걸어서 사용하는방법이 많이 사용된다.

[code]var xmlObj = createXMLHttpRequest();
xmlObj.open("GET","[URL]");
xmlObj.send();
xmlObj.onreadystatechange = function() {
if (xmlObj.readyState == 4) {
    [처리구문...]
}
}[/code]




이렇게 초기화 하고나면 처리를 해야하는데 처리 하기위한 메소드와 속성들을 알아보자.


- Method


- void open(String method,String url, boolean asynch, String username,String password)

: 요청을 초기화한다.

* method - 'POST','GET','PUT' 중 하나를 사용(필수)

* url - 요청 서버의 url (필수)

* asynch - true(default), false 설정(서버 응답까지 대기)


- void send(content)

: 요청을 서버로 보낸다. 비동기시 요청한다음 끝이지만 동기시면 응답 받을때까지 대기한다.

* content - DOM 객체(XML 객체)이거나 input stream,String 값등으로 설정

open() Parameter의 method 값이 'POST'로 설정되어 있으면

HttpRequest body에 포함되어 서버로 전달된다.

GET방식으로 요청하려면 null 을 설정하면 된다.


- void setRequestHeader(string header,String value)

: open() 다음에 위치해서 HttpRequest 헤더에 value를 설정하는 메소드


- void abort() : 요청을 중지한다.


- string getAllResponseHeaders()

: 요청에 대응되는 응답의 헤더정보를 리턴한다.

즉, Content-Length, Date, URI 등을 포함하는 헤더정보를 string 형식으로 반환한다.


- string getResponseHeader(string header)

: 응답의 헤더정보중에서 header 에 대응되는 값을 string 형식으로 반환한다.



- Attribute


- onreadystatechange

: 자바스크립트 콜백함수(function pointer) 를 저장한다.

이 함수는 readyState 값이 변할때 마다 호출된다.


- readyState

: 현재 요청의 상태를 의미한다.

상태는 아래와같이 다섯가지가 있다.

코드

상태

설명

0

UNINITIALIZED

XMLHttpRequest 객체를 생성하였지만, 초기화되지 않았다.

, open() 메소드를 실행하지 않은 상태

1

LOADING

XMLHttpRequest 객체를 생성하였고, open() 메소드를 수행하였지만, send() 메소드를 수행하지 않은 상태

2

LOADED

send() 메소드를 수행하였지만, 서버가 처리를 준비하고 있는 상태

3

INTERACTIVE

처리를 완료하지 않았지만, 진행 중인 상태

4

COMPLETED

처리를 완료한 상태


- responseText

: 서버의 응답을 string 형식으로 나타낸다.

그냥 단순히 내용을 text 로 돌려준다.


- responseXML

: 서버의 응답을 XML로 나타낸다.

이 속성은 DOM객체로 파싱할 수 있다.


- status

: 서버로부터의 HTTP 상태코드

200 - OK

404 - NOT Found

202 - 결과 값이 없을때

등등...


- statusText

: HTTP 상태코드에 대한 텍스트 값이다.

OK, NOT Found 등등...





자 이제 덤으로 DOM 을 알아보자.

파싱을 하려면 어쩔수없이 써야하는거다.



- Method


- selectSingleNode(xpath)

: 특정 노드를 xpath 를 이용해 검색해서 단일레코드를 돌려준다.


- selectNodes(xpath)

: 특정 노드를 xpath 를 이용해 검색해서 매칭된 레코드들을 돌려준다.

여기서 xpath 란 xml 상의 정규식 이라고 보시면 된다.


- getElementById(id)

: document 에서 특정한 ID 속성값을 가지고있는 요소를 반환한다.


- getElementsByTagName(name)

: 특정한 태그 이름을 가지고있는 자식요소로 구성된 배열을 리턴한다.


- hasChildNodes()

: 자식요소가 있는지 없는지 boolean 을 리턴한다.


- getAttribute(name)

: 해당 요소의 속성값을 리턴한다.


- appendChild(childNode)

: 특정 노드를 현재 엘리먼트의 자식 노드에 추가시킨다.


- setAttribute(name,value)

: 속성값을 지정한다.


- insertBefore(newNode,targetNode)

: newNode targetNode 앞에 삽입한다.


- removeAttribute(name)

: 해당 요소의 name 속성을 제거한다.


- removeChild(childNode)

: 자식 요소를 제거한다.


- replaceChild(newNode, oldNode)

: oldNode 를 newNode 로 치환한다.


- document.createElement(tagName)

: 해당 태그명으로된 요소를 생성한다 (table 를 주면 table 요소가 생성된다.)


- document.createTextNode(text)

: 정적 텍스트를 담고있는 노드를 생성한다.



- Attribute


childNodes : 현재 요소의 자식을 배열로 표현한다.

firstChild : 현재 요소의 첫번째 자식이다.

lastChild : 현재 요소의 마지막 자식이다.

nextSibling : 현재 요소와 바로 다음 요소를 의미한다.

text : 해당 요소의 값을 읽고 쓸 수 있는 속성을 정의한다. (==data,==nodeValue)

parentNode : 해당 요소의 부모노드이다.

previousSibling : 현재 요소와 바로 이전의 요소를 의미한다.




' > Ajax' 카테고리의 다른 글

AJAX 폼데이터 POST 로 그대로 넘기기.  (25) 2007.08.19
by cranix 2006. 12. 16. 20:05
| 1 ··· 3 4 5 6 |