- XML 은 HTML 과 마찬가지로 텍스트 내용에 태그(태그 & 마크업)를 첨가하기 위해 사용되는 문법입니다.

이 언어는 언뜻 보기에 HTML과 비슷해 보인다.

 

1. XML 문서의 제일 앞에는 XML 선언이 올수 있다.

         XML 선언은 XML 문서작성에 사용된 XML 규격서의 버전과 XML 문서를 저장하는 데 사용된 문자 코드의 인코딩

   방식을 표시하는 역할을 합니다.

<?xml versio="1.0" encoding="ISO-8859-1"?>

  XML 문서에서 XML 선언이 생략될 수 있는 경우 : XML 문서의 내용이 ASCII 문자로면 구성되었을 경우 XML 선언생략

 

2. HTML에서는 엘리먼트 이름과 애트리뷰트 이름에 이는 대소문자를 구분하지 않지만, XML은 엄격하게 구분한다.

 

3. HTML에서는 단독으로 사용되는 태그가 < >로 끝나야 하지만, XML에서는 < />로 끝나야 한다.

 

4. HTML에서는 애트리뷰트 갓을 따옴표로 묶지 않고 쓸 수 도 있지만, XML엣는 반드시 따옴표를 묶어서 써야한다.

   EX) HTML : <IMG src=/img/car.jps>                           XML : <role rolename="admin">

 

5. HTML에서는 다소 문법에 맞지 않는 부분이 있으면 웹 브라우저가 이를 보정해서 처리하지만, XML 에서는

   문법에 조금이라도 맞지 않는 부분이 있으면 XML 문서가 올바르게 처리되지 않는다. 

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

SERVLET_[톰캣의 서블릿 클래스 등록]  (0) 2012.09.08
SERVLET_[서블릿의 기초]  (0) 2012.09.07

import javax.servlet.*;

inport javax.servlet.http.*;

import java,io.*;


/* HttpServlet 클래스를 상속받아야 한다. */

public class ServletTest extends HttpServlet {


/* doGet 이나 doPost 라는 메소드를 선언하고, 그 안에 서블릿 클래스가 호출되었을 때 해야 할 일을 써 넣어야 한다. */

public void goDet(HttpServletRequest request, HttpServletResponse response) throws ServletException. IOException {

PrintWriter out = response.getWriter();

out.println("<HTML>");

out.println("<HEAD><TITLE>Sum of 1 to 100</TITLE></HEAD>");

out.println("<BODY>");

int total = 0;

for ( int cnt = 1; cnt <= 100; cnt++ ) {

total += cnt;

out.println("1 + 2 + 3 + 4 + ... + 100 = " + total );

out.println("</BODY>");

out.println("</HTML>");

}

}

}



- 서블릿의 장점

1. 자바기반

2. 자바의 플랫폼 독립성은 서블릿 클래스의 실행 코드를 다양한 컴퓨터와 운영체제에 옮겨서 그대로 사용할 수 있게 한다.

3. 예) UNIX 운영체제에서 개발한 서블릿 클래스를 윈도우즈 운영체제에 설치해서 사용할 수 있고, 테스크탑 컴퓨터에서 개발한

   서블릿 클래스를 그외 다른 기종의 서버급 컴퓨터에서 설치해서 사용할 수 있다.

4. 네트워크 환경에서 보안이 용이하고, 프로그래밍 언어수준에서 멀티 스레드 기능이 지원된다.

   (때문에, 불특정 다수의 사용자들이 웹 서버에 접속했을 때에도 컴퓨터가 다운되지 않고 안정적으로 작동 한다.)

5. 자바가 제공하는 풍부한 라이브러리는 프로그래머로 하여금 적은 노력으로 양질의 웹 에플리케이션을 작성할 수 있게 한다.


- 서블릿의 단점

1. HTML 코드가 자바 코드 안으로 들어가는 구조로 HTML 문서의 구조를 이해하기 어렵게 만들고, 웹 페이지의 디자인

   작업을 위해서도 소스 코드에 손을 대게 만드는 비효율성을 낳는다.


위의 서블릿의 단점 때문에 자바의 유용한 장점을 살리면서 서블릿 기술의 단점을 보완하는 새로운 기술인 JSP 가 개발되었다.

※ JSP 페이지는 서블릿 클래스와 반대로 HTML 문서에 자바코드가 삽입되는 구조를 갖는다.

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

SERVLET_[톰캣의 서블릿 클래스 등록]  (0) 2012.09.08
SERVLET_[XML 문법의 기초]  (0) 2012.09.08
●벡터(Vector)

   1. 대용량의 데이터를 효과적으로 다룰 수 있는 클래스

   2. 용량의 변경이 용의

   3. 벡터에 저장하는 모든 데이터는 Object타입

   4. 어떤 종류의 객체도 함께 담을 수 있다.

   +++ 배열의 크기를 한번 정해지면 변경 불가하고 같은 종류의 데이터만

        사용할 수 있다는 단점 보안

 

벡터 생성자

   1. Vector :  초기용량이 10, 용량 초과시 크기를 두배 씩 증가

   2. Vector(int aaa) : 지정한 크기의 용량으로 초기화된 Vector 객체를 생성한다.

   3. Vector(int aaa, int bbb) : 지정한 크기의 용량으로 초기화된 벡터객체를 생성하고

                                          용량 초과시 bbb만큼 증가 시킨다.

※ 일반적으로 용량의 문제가 거의 발생하지 않기 때문에 보통 인자가 없는

    생성자를 사용하여 벡터 객체를 생성한다.      Vector v = new Vector();

 

●벡터에 객체 저장

  메소드

   1. void add(int index, Object object) - 지정한 인덱스의 위치에 객체를 추가함

   2. void addElement(Object objec) - 벡터의 끝에 객체를 추가한다

        Vector v = new Vector();

        v.add(1, "객체명");             //지정한 위치에 객체 추가

        v.addElement("객체명");     //마지막에 객체 추가

        v.addElement("객체명");     //마지막에 객체 추가

 

●벡터로 부터 객체 삭제

  메소드

1.       Object remove(int index) ? 지정한 위치의 객제를 벡터에서 제거

2.       boolean remove(Object object) ? 지정한 객체를 벡터에서 제거

3.       void clear() ? 벡터의 모든 요소를 제거

예) Vector v = Vector();            //벡터 생성

   v.remove(int index);                        //지정한 위치의 객체 제거

   v.remove(“객체명”);            //지정한 객체 제거

   v.clear();                        //벡터의 모든 요소를 제거

 

●벡터로 부터 객체 검색

  메소드

1.       Object elementAt(int index) ? 지정한 위치의 객체를 리턴

2.       Object get(int index) ? 지정한 위치의 객체를 리턴

※ 벡터에 요소를 추가할 때는 String형을 그대로 사용할 수 있지만 검색한 결과는 Object형이므로 사용하기 위해서는 원래 데이터형으로 캐스팅해야 한다.

예) Vector v = Vector();                        //벡터 생성

   String s = (String)v.elementAt(0);            //지정한 위치의 객체를 리턴

   String s2 = (String)v.get(1);                   //지정한 위치의 객체를 리턴

   Enumeration e = v.elements();            //Vector의 요소의 리스트를 리턴

    Iterator과 비슷한 역할(저장 객체 추출)

 

 

●벡터의 기타 메소드

1.      int capcity() ? 벡터의 현재 용량의 리턴

2.      boolean contains(Object object) ? 주어진 요소가 벡터에 있는지 알아낸다.

3.      int indexof(Object object) ? 주어진 요소의 위치를 리턴(없으면 -1)

4.      int size() ? 벡터에 포함되어 있는 요소의 수를 리턴

5.      void trimToSize() ? 벡터의 용량을 현재 벡터의 크기에 맞게 수정

 

●Enumeration

벡터에 저장된 객체를 열거형으로 리턴

  Enumeration e = v.elements();               //Vector의 요소의 리스트를 리턴

     While(e.hasMoreElements()) {

    System.out.println(e.nextElement());

}

 

●Iterator

Collection에 저장된 객체를 나열 또는 열거하기 위한 인터페이스

  Iterator ie = v.iterator();         //Vector의 요소의 리스트를 리턴

  While(ie.hasNext()){

    System.out.println(ie.next());

}

 

● Stack

1.      Object를 저장하는 하나의 방법

2.       가장 나중에 들어간 데이터가 가장 먼저 밖으로 나오는 형태

LIFO(Last In First Out)

예) import java.util.*;

public class StackTest{

public static void main(String[] args){

      Stack s = new Stack();

      System.out.println(s.empty());           //스택이 비어있는지 확인 true

      s.push(“데이타1”);           //데이터 넣기

      s.push(“데이타2”);

      System.out.println(s.empty());           //false

      System.out.println(s.peek());   //가장 먼저 나올 데이타(데이타1)

      System.out.println(s.pop());           //스택에 저장 되어 있는 차례로 출력

      System.out.println(s.pop());

      System.out.println(s.empty());            //스택이 비어있는지 확인 true

}

}

 

●LinkedList

1.      List 인터페이스의 링크 리스트의 구현

2.      void add(int index, Object element) ? 지정된 위치에 지정된 요소 삽입

void addLast(Object element) ? 리스트의 마지막에 지정된 요소 추가

Object get(int index) ? 지정된 위치에 있는 요소 리턴

Object getLast() ? 리스트내의 마지막 요소 리턴

Object remove(int index, Object element) ? 지정된 위치에 있는 요소 삭제

3.      데이터의 첨가, 삭제가 편리하고 속도가 빠르다.

 

● Map & hashing

키와 값의 쌍으로 이루어진 요소를 저장하는 자료구조

해싱이란 키객체를 처리하여 hash code(정수값)를 만들어 내는 방법이다.

 

●HashMap

Null허용, Map interface를 implements한 클래스

 

●Hashtable

Null 허용하지 않음, Map interface를 implements한 클래스

 

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

JAVA_[ Int & Integer 차이 ]  (0) 2013.03.22
JAVA_[날짜 형식 변경(SimpleDateFormat)]  (0) 2012.11.12
JAVA_[Thread]  (0) 2012.06.23
JAVA_[객체_직렬화]  (0) 2012.06.23
JAVA_[Adapter_패턴 (일명 : Wrapper 패턴)]  (0) 2012.06.23

+ Recent posts