Ajax - 브라우저에 따라 XMLHTTPRequest 객체 생성하기

Published on: 2009. 4. 2. 02:08 by louis.dev


function getXMLHttpRequest() {
 var request = false;
 try {
   request = new XMLHttpRequest();                                         //일반적인 브라우저(익스플로러를 제외한 거의 모든 브라우저)일때 
                                                                                            //XMLHTTPRequest 인스턴스 생성
 } catch (trymicrosoft) {                                                           //Ajax에서는 JAVA처럼 인스턴스 형태로 Exception을 넘겨주는것이 아니기
                                                                                            //때문에 변수형으로 받지 않아도 된다.
   try {                                                                                   //사용자 브라우저가 익스플로러 일때
     request = new ActiveXObject("Msxml2.XMLHTTP");               //익스플로러 버전 5.x 이상일때
   } catch (othermicrosoft) {                                                     //위의것 보다 구 버전일때 XMLHTTPRequest 생성
     try {
       request = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (failed) {
       request = false;
     }
   }
 }

 if (!request) {
  alert("Error initializing XMLHttpRequest!");
 }
 return request;
}

Ajax의 기본 - XMLHTTPRequest 객체

Published on: 2009. 4. 2. 02:03 by louis.dev

XMLHTTPRequest 객체는 Ajax의 핵심이 되는 객체이다.

일반 웹에서는 항상 서버로 요청을하고 그에 따른 모든 페이지 정보를 (헤더정보 같은 항상 똑같은 정보들의 중복) 페이지 리프레쉬를 통해 얻어 오는데
Ajax는 쓸데없는 네트워크 자원을 낭비하지 않고 원하는 부분만 데이터를 가져와 변경된 부분만 새로운 내용으로 업데이트 됨으로 페이지 전체를 읽어 오지 않는 다는 장점이 있다.

XMLHTTPRequest 객체의 목적은 자바스크립트가 HTTP 요청을 생서하고 서버로 전송하도록 하는 것이다.
전통적인 웹 어플리케이션은 이러한 요청을 동기적으로 수행했지만 XMLHTTPRequest 객체를 사용하면 이러한 서버 호출을 배후에서 비동기적으로 사용할수 있다.

javascript로 xml의 데이터 가져오기

Published on: 2009. 4. 2. 00:52 by louis.dev

일단 xml에서 데이터를 가져 오려면 각 브라우저 별로 자바스크립트 객체를 생성해서 xml 데이터에 접근해야 한다.

1.브라우저가 Explorer 일때
<script type="text/javascript">
var myxmlDoc= new ActiveXObject("Microsoft.XMLDOM");
myxmlDoc=async="false";
myxmlDoc.load("xml 파일의 경로");
</script>

2.브라우저가 Explorer 가 아닌 다른 브라우저 일때
<script type="text/javascript">
var myxmlDoc= document.implementation.createDocument("","",null);
myxmlDoc.load("xml 파일의 경로");
</script>

만약 xml의 데이터구조가 다음과 같다면
<race>
     <yacht>
          <name>태연</name>
     </yacht>
      <yacht>
           <name>형돈</name>
      </yacht>
</race>


-race의 자식 노드(yacht)의 갯수 구하기
myxmlDoc.childNodes.length;    <!-- 2 -->

-race의 첫번째 자식 노드에 접근하려면
myxmlDoc.childNodes(0)

-첫번째 자식 노드가 요소를 가지고 있는지 알아 보려면
myxmlDoc.shildNodes(0).hasChildNodes()    <!-- return 은 true,false -->

-태그 이름 알아내기
myxmlDoc.childNodes(0).childNodes(0).tagname    <!-- race의 첫번째 하위 노드의 첫번째 하위노드의 이름:name을 리턴-->

-태그 내용 알아내기
myxmlDoc.childNodes(0).childNodes(1).text            <!-- 형돈을 리턴한다 -->

.jsp 파일에서 xml 생성할 때 꼭 설정해야 할것

Published on: 2009. 4. 2. 00:17 by louis.dev
1.맨 윗줄에 xml 이라는 것을 명시적으로 표현
<?xml version="1.0" encoding="EUC-KR" ?>

2.contentType의 변경- html-->변경-->xml
<%@ page contentType="text/xml;charset=euc-kr" %>

파일 업로드 하기2 - 데이터베이스 테이블 생성

Published on: 2009. 3. 31. 19:18 by louis.dev

<!--DATABASE 연결방식-->

TB_MEMBER_BOARD        ----->      ASSOCIATE TABLE         ----->         TB_ATTACHFILE

<TB_ATTACHFILE>

 SEQ

 NUMBER 8 N/N

 기본키

 BOARD_SEQ

 NUMBER 8 N/N

 TB_MEMBER_BOARD와 연관된 외부키

 FILE_NAME

 VARCHAR2 255 N/N

 파일 이름 저장

 FILE_SIZE

 NUMBER 8 N/N

 파일 사이즈

 CONTENTS_TYPE

 VARCHAR2 30 N/N

 파일 타입

 TEMP_NAME

 VARCHAR2 255 N/N

 업로드 되어 변경된 파일 이름 저장


파일이 업로드 될 때 기존의 이름과 같으면 파일이 덮혀 씌워질수 있다.
그렇기 때문에 업로드 시 파일이름을 고유하게 변경하는 것이 필요하다.(TEMP_NAME 에 저장)

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

JSP - JSP 페이지의 캐시 영역 날리기  (0) 2009.09.20
파일 업로드 하기3 - Function  (0) 2009.03.31
파일 업로드 하기1 - 기본 개념  (0) 2009.03.31