JSP, Tomcat 개요

보기·2022년 5월 17일
0

JSP

목록 보기
1/1

JSP 개요와 Tomcat 설치

JSP 개요

JSP 페이지 처리 과정 ( Client - Server Flow )

JSP 페이지는 하나의 서블릿 프로그램으로 변환되어 실행됨

💡 Client → Server → JSP Contianer → Server → Client
  1. Client
    1. Client 가 Server에 JSP를 요청함 ( 확장자가 .jsp 인 파일 )
  2. Server
    1. Client 의 요청 파일이 JSP인걸 확인하고 JSP continaer에 요청을 보냄
  3. JSP Container ( = Sevelt Continaer )
    1. 해당 JSP 파일로 생성된 Sevelt이 있는지 확인
      1. 생성된 Sevelt이 없다면 JSP를 Sevelt으로 번역 ( .jsp → .java )
      2. Sevelt 을 컴파일 ( .java → .class )
    2. 컴파일된 Sevelt class를 메모리에 적재 후 실행
    3. 웹 서버에 실행 결과를 취합해 응답 ( HTML )
  4. Server
    1. Client에 JSP continaer로부터 전달받은 HTML을 전달함으로서 요청에 응답
  5. Client
    1. 응답받은 HTML 파일을 Browser가 화면에 표시함

JSP 생명주기

번역 단계 ( translation )

  1. JSP 컨테이너가 JSP 소스파일을 자바코드로 변환
  2. JSP 파일을 읽고 구문을 분석함

컴파일 단계 ( compilation )

  1. JSP 컨테이너가 자바코드를 컴파일하여 클래스파일 생성
  2. 컴파일단계에서는 자바의 모든 구문을 검사함

로딩 및 초기화 단계 ( loading, initializatoin )

  1. 컴파일된 클래스 파일을 메모리에 적재하고 클래스의 인스턴스를 작성
    1. 인수가 없는 생성자 사용
  2. JSP 컨테이너는 init(), jspInit()를 호출하여 인스턴스가 된 객체를 초기화
  3. 데이터베이스 연결, 파일열기, 룩업테이블 등을 생성, 초기화

실행 단계 ( execution )

  1. JSP컨테이너가 요청 및 응답 객체를 전달하는 _jspService()메소드를 실행
    1. _jspService()는 Overriding이 불가능함
  2. 웹브라우저가 페이지를 요청하여 페이지가 로딩, 초기화 될때마다 _jspService() 메소드를 호출
    1. 응답객체 전달
  3. JSP 생명주기가 끝날때까지 모든 클라이언트 요청에 대해 상호작용

소멸 단계 ( destruction )

  1. JSP 컨테이너는 실행되고 있는 JSP를 jspDestory() 메소드를 사용하여 제거
    1. 데이터베이스 또는 열려 있는 파일 연결해제

Tomcat

💡 Tomcat은 위에서 언급한 과정의 Server, JSP Continaer 기능을 동시에 지원함

Tomcat 설치 ( Version 9 )

Intellij IDEA - MacOS

  1. homebrew를 사용한 설치

    1. brew search tomcat

      설치 가능한 tomcat 버전 확인

    2. brew install tomcat@9

    3. zshrc | bshrc 등에 path 등록

      1. hombrew m1 버전의 경우 PATH=”$PATH:/opt/homebrew/opt/tomcat@9/bin
  2. Intellij IDEA 프로젝트 구성 설정

    IntelliJ로 JSP 프로젝트 생성

    1. Add Run Configuations

      1. Tomcat server / local
    2. Application Server

      1. configure

      2. tomcat home & base directory

        /opt/homebrew/Cellar/tomcat@9/9.0.62/libexec

    3. depolyment 추가

      1. URL 설정 ~_main_war_exploded/ 삭제하고 싶다면 Deployment 에 application context 를 공란으로 비우기
      2. Route는 $ROOT_URL/[JSP 파일 이름] 으로 설정됨
    4. Windows 에서 생성한 프로젝트는 VM option에 encoding option 추가 필요

      -Dfile.encoding=UTF-8

Eclips - Windows 10

  1. Workspace 생성
  2. Create new server
    1. Apache Tomcat v9.0
    2. Tomcat 설치 경로 설정
  3. New Project
    1. Web - Dynamic Web projcet
  4. Encoding UTF8 설정

JSP 문법

스크립틀릿

<% 지역변수 선언부 %>
  • 메소드 없이 변수만 선언 가능
  • 지역변수

표현문

<%=변수%>
<%=리턴 값이 있는 메소드 %>
<%=수식(변수 또는 리턴 값이 있는 메소드를 포함할 수 있음) %>
  • 세미콜론 사용 X

선언문

<%! 선언문 내용  %>
  • 임의의 위치에 선언할 수 있음
    • 호이스팅
  • 세미콜론 사용 O
  • 전역변수
profile
하루를 나답게

0개의 댓글