일반 (초보탈출 I) 패키지

황제낙엽 2003.05.20 07:37 조회 수 : 544 추천:192

sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  
I. 이름 짓기 관례
  1) 패키지 이름
    - 도메인 이름의 역순
    - 지역적으로 사용된 이름은 소문자로
  2) 클래스, 인터페이스 이름
    - 대문자로 시작
    - 새로운 단어는 대문자로
  3) 메소드, 변수 이름
    - 소문자로 시작
    - 새로운 단어는 대문자로
  4) 상수 이름
    - 모두 대문자로
    - 새로운 단어는 _로 분리


II. 패키지 연습 (패키지만들기)

다음의 소스를 c:sourcepack경로에 저장한다.

/**********************************************/
//Shape.java
package shape; //클래스 앞에 패키지할 위치정보를 적는다.

public abstract class Shape
{
        protected int posX, posY;
        public abstract void draw();
}
/**********************************************/

/**********************************************/
//Rectangle2.java
package shape;

public class Rectangle2 extends Shape
{
        public void draw()
        {
                System.out.println("Drawing Rectangle...");
        }
}
/**********************************************/

/**********************************************/
//Circle2.java
package shape;

public class Circle2 extends Shape
{
        public void draw()
        {
                System.out.println("Drawing Circle...");
        }
}
/**********************************************/

  1) 각 클래스마다 각각의 화일로 저장한다.
  2) 저장후 도스콘솔모드에서 pack폴더가 보이는 경로까지 이동한다. (가령 c:sourcepack이라면 c:source까지)
  3) Javac -d c:classes pack/*.java 명령으로 패키징한다.
    - c:classes는 환경변수 class path에 등록된 경로이다. 그리고 우리는 이미 classes라는 폴더를 만들어 두었었다.
    - pack/*.java는 우리가 생성한 소스파일이 있는 경로이다.
  4) 컴파일하면 classes폴더에 shape라는 패키지가 생성된다. (우리에게는 shape폴더가 생겨난 것처럼 보인다)
  5) 다음의 소스를 c:source에 저장하여 실행해보자.

/**********************************************/
//MyApplication.java
import shape.*;

class MyApplication
{
    public static void main(String[] args)
    {
        new Rectangle2().draw();
        new Circle2().draw();
    }
}
/**********************************************/

  6) 이상없이 컴파일후 실행하여 메세지까지 확인하였다면 이제 도스콘솔모드에서 c:classes까지 이동한다.
  7) Jar cvf shape.jar shape/*.class (shpae밑의 모든 class를 shape.jar로 압축한다)
    - cvf에서 c는 필수옵션으로 create의 약자이다.
  8) Jar xvf shape.jar shape/*.class (shape.jar화일을 압축해제한다.)
    - x는 extract의 약자.
  9) Jar tvf shape.jar shape/*.class (압축을 풀지 않고 화일내용만 보기)
    - t는 table의 약자
  10)jar화일을 생성하였다면 생성된 jar화일을 j2sdkjrelibext에 카피한후 c:classes폴더는 삭제한 후 MyApplication.java화일을 실행해본다.
  11)이상없이 컴파일된다면 성공


III. 자신의 웹서버 패키지하기
1단계
  1) ROOT에서 jar cvf myServer.war * 를 입력
  2) 생성된 war파일을 /webapps/폴더에 카피
  3) http://localhost:8080/myServer/index.html 을 실행하여 원하는 화면이 나오면 성공
2단계
  1) war파일을 통해서 웹서버를 패키지하여 서비스 하려면 JSP나 SERVLET파일을 작성시 문서내의 경로설정에 주의하여야 한다.
  2) action부분의 서블릿 프로그램 패스(ex> /servlet/GetData)는 별칭(ex> GetData)을 사용하여야 한다. 또한 서블릿의 별칭은 web.xml파일에 기술되어야 한다.
  3) 서블릿 프로그램에서는 HTML페이지에 대한 링크를 절대 패스를 사용하지 않고, 상대 패스 혹은 컨텍스트 패스를 이용해서 기술하여야 한다.
      ex) String path = req.getContextPath(); ......... out.println("<a href="+path+"/GetData.html>뒤로</a>");