웹 프로그래밍
- 목적 : *동적 웹 애플리케이션 개발 ex) 웹 쇼핑몰
- 웹 언어 : ASP, PHP, 서블릿, JSP 등...
- 웹 프로그래밍 언어 : 클라이언트 측 실행 언어 / 서버 측 실행 언어
* 동적 웹 애플리케이션 : 저장된 내용을 다른 변수로 가공 처리하여 보는 것
- 사용자 기호에 맞게 능동적으로 변화하는 웹 페이지 -> 우리가 보는 대부분의 웹 페이지!
-> 사용자가 글을 작성하거나 환경 설정 등을 바꿈 -> 서버의 DB에 저장 -> 결과가 웹 페이지에 반영됨
cf) 정적 웹 페이지 : 컴퓨터에 저장된 텍스트 파일을 그대로 보는 것 -> 웹 언어 : HTML
-> 미리 만들어놓은 것만 보여줘서 변화에 적응X, 새로운 것 추가/수정/삭제 모두 수동으로 처리해야 함
서블릿
- 자바 언어 이용
- HTML + 자바 코드 섞임
- 자바 코드 안에 HTML 코드를 추가
JSP
- 자바 언어 이용
- 표현 언어, JSTL 등의 기능을 서블릿 보다 많이 제공(서블릿 기술의 확장 ?)
- HTML, 자바 코드 분리 -> 유지 보수 용이
- 서버 측 웹 프로그래밍 언어
- 자바 기반의 서블릿 --어려움--> HTML 코드 안에 자바 코드를 직접 삽입할 수 있도록 개발된 기술 : JSP
-> 실제로 웹 애플리케이션 서버에서 클라이언트에게 서비스될 때 서블릿으로 변경됨
- 서블릿의 모든 기능 사용 가능(JDBC, JNDI, EJB 등 자바 API 사용), 내장 객체, 미리 정의된 태그, 표현식 언어, 사용자 정의 태그 사용 -> 서블릿보다 코드 길이 줄일 수 있음
- 프레젠테이션 로직과 비즈니스 로직 분리 가능
- JSTL : JavaServer Pages Standard Tg Library
JSP 페이지 처리 과정
클라이언트
웹 브라우저 --> 서블릿 프로그램 --> 서블릿 클래스 --> 웹 서버 --> 응답 --> 다시 웹 브라우저
Hello.jsp -> Hello_jsp.java -> Hello_jsp.class 가공된 HTML 문서
변환 컴파일
- 하나의 서블릿 프로그램으로 변환되어 실행됨
웹 : 클라이언트/서버 방식으로 동작
- 클라이언트(웹 브라우저) --이 페이지 보여줘~ 요청--> 웹 서버 --처리/응답--> 클라이언트(웹 브라우저)
- 정적 웹 페이지 : 저장된 텍스트 파일 그대로 보는 것
- 동적 웹 페이지 : 저장된 내용을 다른 변수로 가공 처리하여 보는 것
- 웹 프로그래밍 언어
- 클라이언트 측 실행 언어
- 서버 측 실행 언어 : JSP(자바 기반의 서블릿 기술의 확장) -> 유지/관리/빠른 개발/코드 길이↓
JSP
- 하나의 서블릿 프로그램으로 변환되어 실행
번역 -> 컴파일 -> 로딩 및 초기화 -> 실행 -> 소멸
개발 환경
- JDK : 자바 개발 환경 -> HTML 코드 내에 자바 코드를 작성하기 때문에 필요
- 톰캣 : 웹 서버 -> JSP 웹 컨테이너
- 이클립스 : 통합 개발 환경(IDE) -> JSP 코드 컴파일, 오류 검사, 실행 결과 확인
예제 실습