내가 보려고 정리하는/Spring

톰캣, jsp : 웹 기초_0220

보동이용용 2023. 2. 21. 08:54
반응형

< 톰캣 설정하기 >

jdk를 다운받으려면 버전이 있다.

se버전 : 스탠다드 에디션 : 웹에서 사용하는 API가 빠져있다. ex) servlet

ee버전 : 엔터프라이즈 에디션 : 웹에서 사용하는 API가 포함되어 있다.

 

우리는 se버전을 사용하고 있어서 API가 필요하기 때문에

이를 포함하고 사용할 수 있게 해주는 톰캣을 찾아 다운받아야한다.

 

먼저 톰캣을 받으려면 내가 주로 개발할 서블릿의 버전을 알아야 그에 맞는 톰캣 버전을 다운받을 수 있다.

 

보통 버전이 메이저버전.마이너버전으로 이루어져 있다.

마이너 버전이 바뀐 것은 메이저 버전이 안정적인 상태에서 조금만 바뀐 것이라 볼 수 있고

메이저버전이 아예 바뀌어버린 것은 버전이 확 달라졌음을 알 수 있다.

 

톰캣을 설치한 후 환경변수를 설정해주어야한다.

1.sysdm.cpl(고급탭의 환경변수 설정)

2.환경변수명과 톰캣 위치 경로 저장 (%catalina_home%)

 

이제 실행해보자.

cmd 콘솔을 열어서 cd(cange directory)를 해서 실행해보자.

 

cd %catalina_home%  > dir  >  cd bin  > startup.bat

==> 이렇게하면 톰캣 cmd창이 팝업된다. 그런데 오류가 있는지 확인해본다.

        있다면 누가 사용하고 있는지 확인해볼 수 있다.

 

톰캣 경로에서 

conf  > server.xml   이 폴더를 확인해보면 나의 포트번호를 알 수 있다.

 

다시 cmd창으로 돌아와서 

netstat /ano | findstr "8080"    ==> 8080번호 누가 쓰고 있는지 검색.

 

4316번이 이미 쓰고 있다고 한다.

작업관리자에 들어가서 확인해보니, 

오라클이 사용중이다.

그래서 새로운 포트번호를 정해주어야한다.

다시 conf  > server.xml 를 실행시켜서 8080포트번호를 80으로 바꾸어주자 톰캣이 잘 돌아갔다.  

< 브라우저에서 톰캣 보기 >

브라우저에 localhost

나를 찾는 주소를 말한다. ( loopback address )

루프백 어드레스는 3종류가 있다.

1. IPv4 형식 :  127.0.0.1

2, IPv6 형식 :   0::1

3. localhost

( 원래는 주소에 포트넘버를 더해야지만 어차피 well-known-portnumber라면 쓰지않아도 된다. 

  그러나 그 이외의 포트넘버일경우 주소 다음 ,(포트넘버)를 쳐줘야한다.)

-----------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------

 

localhost : contextpath(사용자가 접근가능한 곳) 전까지의 주소. 사용자들에게 공개되지 않는 영역. doc base

1.

경로로 검색한 파일

2.

localhost로 검색한 파일

같은 파일을 실행했지만 경로가 다르다.

1번은 전체경로로 검색했다. 하지만 일반 사용자에게 공개되지 않는 주소이다.

2번처럼 기본 경로 이후 context부분만 공개된다. 01/test.html

 

localhost는 doc base를 가리킨다.

< 톰캣(was)의 사용 이유 >

1. 서블릿 api, jsp api 등 se버전에 없는 api들을 사용하기 위해
2. 포트번호를 설정하여 서버를 사용하기 위해(특정포트번호 요청 감시)
3. 서블릿의 운영주체 톰캣 =  컨테이너

80포트로 클라이언트의 요청이 들어오면 리스너가 요청과 관련된 서블릿을 실행하는 것이 톰캣의 3번째 역할 
톰캣은 어떤 요청이 해당 요청인지 정보를 가지고 있어야하며 내가 실행할 서블릿은 어떤 것인지 알고 있어야한다.
1.톰캣이라는 컨테이너에다가 서블릿을 등록해야한다.
2.등록된 서블릿이 어떤 애인지 매핑정보가 필요하다.   ==> web.xml에 

< web.xml 에 담은 정보 >

 

(톰캣 > context > WEB-INF에 가보면 모두 같은 형식을 가지고 있다.

- classes : 컴파일 된 클래스 파일들

- src : 자바소스파일들(이름은 다를 수 있더라..)

-web.xml : 실행할 서블릿의 정보를 담은 파일)

 

 

프로젝트하며 잘 모르고 contextpath를 불러와 쓰곤 했는데 context가 무엇인지 알고 파일의 구조를 읽다보니 무엇인지 이해할 수 있게 되었다. 앞으로는 어떤 의미인지 알게 되었으니 더 잘 쓸 수 있을 것 같다. 
파일의 구조를 읽는 것도 중요하다는 것을 알게 되었다.

< 서블릿과 jsp >

cmd콘솔로 톰캣을 실행하고 서블릿을 이용한 문서를 실행해보자.

 

1. 평소대로 코드를 쓴다.

2. 필요한 도구들을 임포트 한다.

 ( 서블릿은 톰캣에 있으므로 톰캣에 들어가서 서블릿을 찾아 임포트한다.)

3. 컴파일 한다. (임포트가 잘 되어있지 않으면 컴파일 안되니, 잘 확인하기)

4. 서버를 껐다가 다시 킨다. (서블릿은 백엔드 이므로)

5. 주소창에 localhost + contextpath를 적는다.

 

==> 서블릿은 톰캣에 있다. 백쪽에 있으므로 실행하거나 수정하려면 서버를 껐다가 다시 켜야한다.

왜냐하면 서버는 처음 실행할때 한번만 맵퍼를 읽기 때문이다.

 

그런데 jsp를 이용해서 문서를 실행한다면?

 

모든 과정이 비슷하지만, 프론트 언어이기때문에

==> 서버를 다시 실행할 필요도 없고 수정할 때 맵퍼때문에 다시 컴파일 할 필요도 없다.!

 

그래서 jsp가 태어났다고 한다.

신기하구나!

 

 

반응형