ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • package 선언시 javac -d xx yy 컴파일과 useBean에 대해서...
    프로그램/JSP 2007. 11. 20. 17:14

    java에서 package 선언할때 javac 의 의미.

    javac test.java 하게 되면 현재 디렉토리에 class 파일이 생성이 된다.

    javac -d xx/xx   yy/yy/test.java 라고 할 경우 각 항목의 의미는

    -d는 디렉토리가 없으면 디렉토리를 생성한다.
    -xx/xx는 해당 디렉토리에서 class 파일을 만들겠다.
    -yy/yy/test.java는 자바파일의 위치

    만약에 D\source에 test.java가 있다고 할 경우

    D\source에서

    javac test.java를 할 경우
    D\source에 test.class가 생긴다.
    package aa.bb라고 선언이 되어 있어도 해당 디랙토리에 class 파일이 생성이 된다.

    D:\source 에서
    javac -d . test.java 하게 될 경우(package aa.bb라고 선언시)
    D:\source\aa\bb\test.class가 생성이 된다.

    D:\source 에서
    javac -d 11/22 test.java를 하게 될 경우(package aa.bb라고 선언시)
    D:\source에서 컴파일을 하게 되면 D:\source\11\22\aa\bb\test.class라고 생성이 된다.

    이 파일을 jsp 에서 쓸려면 해당 위치를 import 해야 한다.
    해당 ContextRoot에 WEB-INF\classes에서 부터 위치를 잡아갑면 된다.

    Root에
    ---------------------------------------------------------
    <%@ page contentType = "text/html; charset=euc-kr"%>
    <%@ page import = "aa.bb.test1" %>
    <html>
    <head><title>테스트중</title></head>
    <body>
    출력 테스트<p>
    <%
     test1 h = new test1();
     out.println(h.returnTest1());
    %>
    </body>
    </html>
    ---------------------------------------------------------
    라고 작성이 되어있다면

    클레스 파일은
    \webapps\ROOT\WEB-INF\classes\aa\bb 에 위치하면 된다.

    이걸 useBean로 사용할려면
    ----------------------------------------------------------
    <%@ page contentType = "text/html; charset=euc-kr"%>
    <jsp:useBean id="info1" class="aa.bb.test1" scope="page" />
    <html>
    <head><title>테스트중</title></head>
    <body>
    출력 테스트22<p>
    <%
     out.println(info1.returnTest1());

    %>
    </body>
    </html>
    ----------------------------------------------------------
    라고 작성하면 된다.

    useBean에서 info1은 test1의 클레스 객체
    aa.bb.test1 는 클레스의 위치
    page는 저장하는 객체이다.

    package를 정하는 이유는 해당 위치를 지정할 수 있고
    그로 인해 나중에 경로를 찾을때도 편한 이점이 있다.
    다른 이유는 잘 모름..

Designed by Tistory.