Article Category

분류 전체.. (300)
영어 (9)
관심 (10)
프로젝트 (1)
내 폴더 (182)
Ver 1.0 (94)

 

'관심/자바&JSP'에 해당되는 글 2건

  1. 2008/06/24 JSP에서의 include (2)
  2. 2008/06/22 JAVA 환경설정

JSP에서의 include

JSP에서의 include

 

JSP에서 include 문을 사용할 때 PHP와는 조금 다르다는 것을 오늘 알았다.

결론을 먼저 말 하자면  main.jsp에서 header.jsp라는 파일을 인클루드 한다고 한다면, 기존에 PHP에서는 header.jsp파일을 수정 했다면 main.jsp파일에서는 특별히 해 줄 일이 없이 그대로 적용이 되었다. 하지만 jsp에서는 방식이 조금 다르더라. 이유는 jsp파일의 작동방식에 있었다. jsp파일은 서버상에서 jsp파일을 첫 번째로 지정해준 임의의 폴더에 서블릿 파일로 변환 하는 과정을 거친다. 첫 번째로 main_jsp.java라는 파일을 생성하고 곧 이어 main_jsp.class 라는 파일을 생성 한다. 실제로 main.jsp라는 파일을 웹상에서 실행 했을 경우에는 최종 결과물인 main_jsp.class라는 파일이 동작하는 것이다. 이런 방식 때문에 header.jsp파일 만 을 수정 했을 경우에는 main_jsp.class파일을 생성하지 않는다. 그렇기 때문에 header.jsp파일을 include 하고 있는 모든 파일들을 찾아서 touth라는 명령어로 건드려(?) 줘야 다시 컴파일을 하게 되는 것이다.

PHP에서야 알아서 찾아서 알아서 실행 해주기 때문에 편했는데, jsp는 약간 복잡한 것 같긴 하다.

처음에는 이해가 잘 안되서 자바 프로그래머님께 여러 번 물어 봤었다. 서블릿으로 변환한 main_jsp.java를 직접 보여주셔서 서블릿으로 변환한 내용들을 보고서야 실감 할 수 있었다.

그렇다면 header.class파일은 있는 걸까? 설명해 주신 내용으로는 header.jsp파일은 우선 불려지는 입장이기 때문에 컴파일이 되는지는 확실하지 않지만, 이미 main.jsp파일에 포함이 되어 있기 때문에 실질적인 header.jsp파일은 필요가 없다는 뜻이다. 단지 코딩상 관리의 편의를 위해 그렇게 나눠 놓는 것이라는 것이다. Main.jsp header.jsp파일을 include하면 header.jsp파일을 알아서 class로 만든 후에 그것을 가리키고 있다는 것이다. 그렇기 때문에 header.jsp를 변경해 봤자 main에서는 그것을 알아차릴 수 없기 때문에 수정을 해주거나 touch를 해주어야 header.jsp를 다시 .class로 만드는 것이다.

 

처음에는 이런 복잡한 과정을 통해서 jsp파일이 실행 된다는 것에 놀랐다. 물론 php도 자체적으로 파서에 의해서 해석되어 지고 다시 기계어로 변환되는 과정이 있지만, 사용하는 입장에서 체감 할 수 는 없었는데, jsp를 하면서 그것들이 직접적으로 체감 되는 것 같다.

 

어떻게 보면 header를 포함하는 모든 파일을 찾아서 touch해 주어야 하는 것이 참 수고 스러울 것 같다. 그래서 찾아보니 좋은 방법이 있었다.

유닉스 상에서 해당 폴더로 이동 후 자동으로 모든 jsp파일을 touch 해준단다

1.         find ./ -name '*.jsp' | xargs touch

 

또 찾아 보니 tomcat5 버전대 에서부터 include되는 파일을 수정 하더라도 서블릿 컨테이너가 알아서 모두 재 컴파일 해 준다는 좋은 소식이다.

Trackback 0 Comment 2

JAVA 환경설정

JAVA 환경설정

 

자바에 관한 자세한 설명은 링크를 확인하기 바라며, 자바를 윈도우에서 사용하기 편하게 환경설정 하는 법을 설명한다.

 

우선 자바를 실행 하기 위해서 자바 JDK를 다운 받아야 한다. 그 안에는 자바를 실행하기 위한 jre를 포함, 자바를 컴파일 및 실행하기 위한  java 유틸리티가 포함되어 있다.

 

SUN홈페이지 에서 최신버전 JDK를 다운 받아 인스톨 한다.

그 후 윈도우 환경변수에 등록해주어야 하는데, 어느 프로그램 에서든 자바유틸리티의 경로를 따로 설정하지 않아도 실행 가능하게 하기 위함이다.

 

설정해 주어야 할 위치는 3곳으로 아래와 같다.

 

1.    JAVA_HOME : 자바 jdk 를 설치한 위치를 지정 예) C:\Program Files\Java\jdk1.5.0_09

2.     CLASSPATH :  .;%JAVA_HOME%\lib\tools.jar

3.     PATH : java 가 설치된 디렉토리 밑의 bin 디렉토리

) C:\Program Files\Java\jdk1.5.0_09\bin;

 

여기서 JAVA_HOME CLASSPATH는 자바에서 사용하는 환경 변수로써 JDK의 위치를 지정하고, 클래스를 모아 놓은 경로를 설정 한다.

Path는 어떤 실행 파일을 실행 할 경우 해당 위치에 파일이 없으면 2차적으로 path 경로에서 실행 파일을 찾는다.

예를 들면 path로 지정한 javac파일을 실행 했을 경우 javac파일은 컴파일을 위한 클래스 파일들을 CLASSPATH에서 찾는다. .(import 문이나 패키지 사용시) 클래스패스로 지정되어 있는 .;%JAVA_HOME%\lib\tools.jar 에서 . 는 현재 디렉토리를 의미 하며 이곳에 없을 경우, “;” 를 구분자로 %JAVA_HOME%\lib\tools.jar에서 찾는다. 여기서 %JAVA_HOME%의 경로를 위에서 설정해 주었기 때문에 실제로 찾는 경로는 C:\Program Files\Java\jdk1.5.0_09\lib\tools.jar”가 되는 것 이다.

 

위와 같이 모두 설정한 후 확인 작업을 하기 위하여 커멘드창을 하나 띄워(시작->실행->cmd->엔터) echo %JAVA_HOME% 을 입력 한 후 엔터를 치면 위에서 입력한 값이 출력이 된다. classpath path도 동일한 결과값이 나와야 한다.

 

이제 어느 디렉토리에서든 java, javac 등의 자바를 사용하기 위한 명령어들을 사용 할 수 있다.



Trackback 0 Comment 0
prev 1 next