안녕하세요.
이번 글은 조금 어려울 수도 있습니다. 미리 겁주는 것이지요.
클래스 파일을 이용해서 JSP를 조금 가볍게 만들어 주는 것이 이 글의 목표입니다.

마지막에 사용했던 소스를 가져와서 예를 들겠습니다.
getRow(int i, int j) 메소드를 Math.java 클래스의 메소드로 만들겠습니다.
Math.java의 패키지명은 net.okjsp.study 로 하겠습니다.
마침표(.)로 구분된 각각의 단어는 디렉토리를 의미합니다.
관습적으로 도메인과 연관지어서 큰 단위부터 작은 업무단위로 명명합니다.

메소드는 static 으로 만들겠습니다.
static 메소드란 것에 대해서 일단 공용으로 쓰는 메소드라고
쉽게 생각하시면 좋겠습니다. JSP 소스코드는 다음과 같이 변합니다.

<소스 1> multiTableImport.jsp 내용
<%@page import="net.okjsp.study.Math" %>
구구단입니다. <br />
<%
  // i: 단 변수
  for (int i = 2; i <= 9; i++) {
       // j: 곱수
       for (int j = 2; j <= 9; j++) {
%>
<%= Math.getRow(i, j) %>
<%
       }  // end for j
%><hr />
<%
  } // end for i
%>

JSP에 사용되는 java 파일은 다음과 같습니다. import 당했죠.

<소스 2> Math.java 내용
package net.okjsp.study;

public class Math {
  public static String getRow(int i, int j) {
       return i + " x " + j + " = " + (i * j) + "<br />";
  }
}



이제 문제의 시작입니다. 이 java 파일을 컴파일해서 class로 만들어야 됩니다.
JSP파일은 톰캣이 알아서 서블릿으로 만들고 컴파일했지만, 헉, 언제 그런 일이 생겼냐구요?
이 다음 글에 JSP의 비밀에서 얘기해드릴께요. 일단 class 일병 구하기를 진행하죠.

java파일을 컴파일하기 위해서는 javac파일이 필요합니다. 이 컴파일러는 jdk가 깔려있는 디렉토리 하위에 있는 bin (빈 디렉토리가 아니고 binary파일들이 모여있어서 bin입니다.) 아래에 javac.exe 파일을 확인할 수 있습니다. JRE에는 없습니다. 그래서 제가 설치하기에서 JRE 보다 JDK를 권했습니다.

그럼 Math.java 파일은 어디에 놓을까요. 관례상 ROOT/WEB-INF/src 디렉토리를 만들고,
여기 아래 패키지에 따라 디렉토리를 추가한 후 java 파일을 놓아둡니다.
그럼 컴파일은 어떻게 할까요?
다음과 같은 순서로 컴파일 할 수 있습니다.

시작 > 실행(R)... > cmd

까만 커맨드 창이 뜰 것입니다.

<실행 1> Math.java 파일 컴파일

C:\Documents and Settings\HeoGwangNam>cd "C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\src\net\okjsp\study"

C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\src\net\okjsp\study>"C:\Program Files\Java\jdk1.5.0_10\bin\javac.exe" -d "C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\classes" Math.java

경로를 이동합니다.
javac Math.java
컴파일 되었나요? 조마조마. 탐색기로 classes 하위 디렉토리로 가보면 Math.class 파일이 보입니다.

클래스 컴파일 결과

클래스 컴파일 결과


이제 브라우저에서 확인해 봅시다.
답 나왔나요?

한 가지 더 설명하려고 합니다. java.lang.Math 라는 기본 클래스가 있습니다.
파일명이 같은 클래스인 net.okjsp.study.Math 파일은 패키지명으로 구분이 됩니다.
java1.4 부터 패키지 없는 클래스에 대해서 왕따시키기 시작했습니다.
package 라인이 없는 java 파일은 여러분의 작업에 누를 끼칠 수도 있습니다.

조금 어려우셨을 겁니다. 그러나 걱정마세요. 자꾸 반복해서 나오는 내용입니다.
반복하다 보면 이해도 가고, 머리 속에 새겨질 겁니다.
힘들여 배운 지식은 잘 잊어먹지도 않습니다.

그럼 다음 글에서는 JSP의 숨겨진 비밀, 그 탄생 신화에 대해 알아보겠습니다.

+ Recent posts