서블릿도 결국엔, 'Client의 요청을 처리하고 그 결과를 반환하는' servlet 클래스의 구현 규칙을 지킨 Java 프로그램일 뿐이다.
Java 코드 안에 html 태그가 삽입
Java 코드로 구현/컴파일/배포 필요 (코드 수정 시, 재컴파일/재배포 필요)
html 태그는 문자열("")스크림으로 처리 필요
Servlet 의 단점/불편한 점
- 서블릿은 웹 프로그래밍이 가능하나, Java 에 대한 지식이 필요
- UI(화면 인터페이스) 구성을 위해 너무 많은 코드가 필요해짐
html 내부에 Java 코드를 삽입하는 형식으로 등장
Servlet 을 작성하지 않고 간편하게 웹 프로그래밍을 하기 위해 등장한 서블릿 기반의 스크립트 기술
(서블릿에 비해 배우기 쉬움)
Java 코드를 <% %> 스크립트릿 태그 안에 작성 필요
주의!
JSP 는 Server단에서 모두 처리되어서, 최종적으로 클라이언트에게 html 형식으로 전달하는 것
따라서, Client단에서 동적 처리를 하고 싶다면 JavaScript를 통해 처리해줘야 함
정적 VS 동적
- 정적 페이지
- 항상 같은 것을 보여주는 페이지
- 동적 페이지
- 동적 콘텐츠: 아주 짧은 시간 간격으로(시시각각) 바뀌는 정보들
- 동적 데이터를 포함하는 페이지
사실 Servlet 과 JSP 는 만드는 방법에 차이가 있을 뿐, 동일한 역할을 한다.
따라서 현재의 사용법은 다음과 같다.
웹 어플리케이션 구조 中
Jsp
는
Servlet
은
즉, 보여지는 부분을 JSP가 담당하고 & 다른 자바 클래스에 데이터를 넘겨주는 부분을 Servlet이 담당하게 된다.
이런 구조 덕분에 유지보수가 용이해졌다.
JSP
---> Servlet화(work 디렉토리)
---> class 파일
---> 실행
사용자의 요청(request)를 웹 서버가 받음
웹 서버는 서블릿 컨테이너에 해당 요청을 전달
서블릿 컨테이너는 HTTP Reqeust, HTTP Response 객체를 만들어서, 서블릿 doPost()/doGet() 메소드 中 하나를 호출
JSP 를 사용해서 비지니스/프레젠테이션 로직을 분리.
이때, 서블릿은 JSP에게 데이터 제어(입력/수정 등...)를 넘겨서 프레젠테이션 로직을 수행한 후 서블릿 컨테이너에게 response 를 전달
해당 response(결과물)이 컴파일되고 Java 파일을 통해서 .class 파일이 만들어지고, 두 로직이 결합돼서 클래스화됨
참고: JSP와 Servlet(서블릿) 비교
참고: [JSP] JSP (JavaServer Pages ) 란 무엇인가?
참고: JSP 소개
참고: [JSP] JSP파일 기본 구조 + page지시어
참고: [JSP] include 지시어