3 minute read

JSP - 1

  • 웹 프로그래밍 언어, JSP
  • 스크립트 태그
    • 선언문 태그
    • 스크립틀릿 태그
    • 표현문 태그



웹프로그래밍 언어

  • 개요
    • 클라이언트 측 언어 - 서버 측 언어로 구분
    • ‘동적 웹애플리케이션 개발’을 목적으로 사용
  • ASP(Active Server Page)
    • 마소(Microsoft) 제작, 윈도우 계열 사용
    • 스크립트 방식으로 동적 웹페이지 구현
    • 현재 마소에서의 지원 끊김!
  • PHP(Personal Home Page)
    • C언어 기반
    • 리눅스, 윈도우 등 멀티 플랫폼 지원
    • 보안이 비교적 취약
  • 서블릿(Servlet)
    • 자바 언어 기반(독립적 플랫폼)
    • HTML과 자바코드 섞여 있어 유지보수 어려움
  • JSP(Java Server Pages)
    • 자바 언어 기반(독립적 플랫폼)
    • HTML과 자바코드 분리 -> 유지보수 용이



웹 & JSP 프로그래밍 이해

  • 인터넷과 웹
    • 인터넷: TCP/IP 통신 프로토콜을 이용, 정보를 주고받는 컴퓨터 네트워크
    • 웹: 인터넷을 통해 HTML페이지, 파일을 제공하는 장소 (서버-클라이언트 방식)
  • 웹 서버
    • 대표
      • 아파치, 톰캣, IIS 등
    • 본 교재, 톰캣(서블릿, JSP 지원) 학습
  • 웹페이지 - 정적(static) vs 동적(dynamic)
    • 정적: 텍스트 파일 그대로 보는 것
    • 동적: 저장된 내용을 다른 변수로 가공 처리(정제) 후 보는 것
  • 웹 프로그래밍과 JSP
    • JSP = 서버 측 웹 프로그래밍 언어
      • HTML 코드 안에 자바 코드를 추가!

        (서블릿은, 자바 코드 안에 HTML 코드 추가)

    • 참고!
      • JSP => 웹 APP 서버에서 클라이언트에 서비스 될 때, 서블릿으로 변경됨
  • JSP 페이지의 처리 과정(중요!!)
    • ex.

      Hello.jsp (JSP 페이지)
      -> 번역(컴파일)
      -> Hello_jsp.java (서블릿 프로그램) 생성
      -> 컴파일
      -> Hello_jsp.class (서블릿 클래스) 생성
      -> JSP 서블릿 실행 응답 (가공된 HTML 문서 전달)

    • JSP 컨테이너( = JSP 엔진 or 서블릿 컨테이너)
      • ‘서블릿 프로그램 생성’하는 역할!
      • ‘.class’ 를 생성하는 역할!
      • 웹 서버와 분리 설치 or 웹 서버에 포함
      • ( 톰캣 = JSP 컨테이너 포함된 웹서버 )
  • JSP 생명 주기
    1. 번역 단계
      • JSP 소스 파일 -> 자바 코드(서블릿) 변환
    2. 컴파일 단계
      • 자바 코드(서블릿) -> 클래스 파일 생성
    3. 로딩 및 초기화 단계
      • 클래스 로딩 & 클래스 인스턴스 작성
    4. 실행 단계
      • jspService() 메서드 실행 (클라이언트에 응답 객체 전달!)
    5. 소멸 단계
      • jspDestroy() 메서드 실행 (실행되고 있는 JSP 제거)



JSP 개발 환경 구축

  • 자바 설치
    • JDK 설치
  • 웹 서버와 통합 개발 환경 설치
    • ‘apache tomcat(ver. 9)’ 다운
    • 이클립스 다운 & 설치
    • workspace 생성
    • 서버 프로젝트 생성 -> 웹 서버 유형 설정 -> JRE 설정 -> 연동 확인
    • encoding(Workspace, HTML, CSS 등), ‘UTF-8’ 로 설정
  • 프로젝트 생성 및 JSP 페이지 작성 -> 프로젝트 실행



스크립트 태그 - 1. 개요

  • JSP 태그 이용
    • 스크립트 태그
      • HTML 코드에 자바 코드를 넣어, 프로그램 수행 기능 구현
    • 디렉티브 태그
      • JSP 페이지 처리 설정 -> JSP 컨테이너로 전달
    • 액션 태그
      • XML형태 -> 클라이언트/서버에 작동 수행 명령
  • 스크립트 태그 (중요!!!)
    • 선언문: <%! ... %>
      • 자바 변수, 메서드 정의
    • 스크립틀릿: <% ... %>
      • 자바 로직 코드 작성
    • 표현문: <%= ... %>
      • 변수, 계산식, 메서드 호출 결과를 문자열 형태로 출력



스크립트 태그 - 2. 각 태그의 기능, 사용

  • 태그 1. 선언문 태그
    • <%! ...자바 코드...; %>
    • 세미콜론으로 종료
    • 전역 변수, 전역 메서드 선언!
    • 서블릿 프로그램으로 번역될 때, ‘jspService() 메서드 외부에 배치
      • 그래서, ‘클래스 수준(전역)’의 변수, 메서드로!
      • 스크립틀릿(로직)보다 나중에 선언해도, 스크립틀릿 태그에서 사용 가능!
  • 태그 2. 스크립틀릿 태그
    • <% ...자바 코드...; %>
    • 세미콜론으로 종료
    • 자바 로직 작성, 지역 변수 선언!
    • 서블릿 프로그램으로 번역될 때, ‘jspService() 메서드 내부에 배치’
      • 그래서, 태그 내부에서만 사용 가능(지역 변수!)
  • 태그 3. 표현문 태그
    • <%= 자바 코드 %>
    • 세미콜론X
    • 위에서 선언된 변수, 메서드 반환값을 외부(웹 브라우저)로 출력!
      • 작성된 자바 코드 값은 ‘문자열’로 변환되어 출력!






Note

  • 웹 서버 | 웹 컨테이너 | 웹 애플리케이션 서버
    • 웹 서버: 클라이언트 요청 받아 html, 오브젝트 전송
    • 웹 컨테이너: JSP, 서블릿 실행하는 프로그램
    • 웹 애플리케이션 서버: 웹 서버 + JSP 컨테이너!!
  • JSP주석 & HTML주석 태그
    • JSP 주석
      • <%-- JSP주석 처리 내용 --%>
    • HTML 주석
      • <!-- HTML 주석 처리 내용 -->



과제

  • 1, 2단원 연습문제 / ~6/3(금)까지

  • 이형록_220517_JSP과제

  • 내용

    • 1~3번
      • 교재 읽고 답 찾기
      • 메모장에 타이핑
    • 4~6번
      • 교재 읽고 실습
      • 기본 소스 임포트 해서 확인
    • 7번 (2단원부터)
      • Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
      • 수업용 교재, ‘Web Market Mall’ 참고!






nice!!

Updated: