Today I Learned - 27
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 코드 추가)
- HTML 코드 안에 자바 코드를 추가!
- 참고!
- JSP => 웹 APP 서버에서 클라이언트에 서비스 될 때, 서블릿으로 변경됨
- JSP = 서버 측 웹 프로그래밍 언어
- JSP 페이지의 처리 과정(중요!!)
- ex.
Hello.jsp (JSP 페이지)
-> 번역(컴파일)
-> Hello_jsp.java (서블릿 프로그램) 생성
-> 컴파일
-> Hello_jsp.class (서블릿 클래스) 생성
-> JSP 서블릿 실행 응답 (가공된 HTML 문서 전달) - JSP 컨테이너( = JSP 엔진 or 서블릿 컨테이너)
- ‘서블릿 프로그램 생성’하는 역할!
- ‘.class’ 를 생성하는 역할!
- 웹 서버와 분리 설치 or 웹 서버에 포함
- ( 톰캣 = JSP 컨테이너 포함된 웹서버 )
- ex.
- JSP 생명 주기
- 번역 단계
- JSP 소스 파일 -> 자바 코드(서블릿) 변환
- 컴파일 단계
- 자바 코드(서블릿) -> 클래스 파일 생성
- 로딩 및 초기화 단계
- 클래스 로딩 & 클래스 인스턴스 작성
- 실행 단계
- jspService() 메서드 실행 (클라이언트에 응답 객체 전달!)
- 소멸 단계
- 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 주석 처리 내용 -->
- JSP 주석
과제
-
1, 2단원 연습문제 / ~6/3(금)까지
-
이형록_220517_JSP과제
-
내용
- 1~3번
- 교재 읽고 답 찾기
- 메모장에 타이핑
- 4~6번
- 교재 읽고 실습
- 기본 소스 임포트 해서 확인
- 7번 (2단원부터)
- Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
- 수업용 교재, ‘Web Market Mall’ 참고!
- 1~3번
nice!!