728x90
JSP 설명 하기 앞서서
자바 서블릿? JSP? 무슨 차이인가 JSP 프로그래밍을 하는데 있어서 왜 두가지를 알아야 하는가
서블릿
서블릿(servlet)은 자바를 이용한 확장된 CGI의 방식의 서버 프로그래밍 방식 (사실상 자바의 클래스 모임)
기존에 서블릿은 자바 코드안에 HTML을 삽입 하는 것이라
자바 프로그램에 표현 부분인 HTML 코드를 모두 포함해야 하므로 로직 처리와 디자인 처리를 분리하기 어려운 단점
ex
CGI 설명 https://velog.io/@seanlion/cgi
JSP 란 JavaServer Pages 의 약자이며
서버 스크립트 언어
HTML 코드 내에 직접 비즈니스 로직을 자바 언어를 삽입할 수 있는 개발 방식
•동적 Web Page 구현을 위한 CGI를 자바로 구현 (Platform Independent)
•자바코드 속에 HTML을 넣는 Java Servlet의 한계 극복
•HTML안에 자바 코드 삽입
개념은 이러한데 그래서 왜 둘다 알아야 하냐면
JSP로 작성한 프로그램은 클라이언트가 서버로 요청시 JSP / 서블릿 컨테이너가 컴파일 이후 서블릿을 적재하여
다시 클라이언트 쪽으로 전송 하기 때문임 쉽게 말하면
JSP로 작성된 프로그램은 서버로 요청시 서블릿 파일로 변환 되어 다시 순수 HTML 코드를 받기 때문
동작 과정을 보면 쉽게 이해할수 있다
우리가 일반적으로 사용하는 정적 웹 서비스 동작 과정이다 ex 아파치
JSP 로 요청시에는 포트 번호도 8080로 전송되고 서버쪽에서 JSP/서블릿 컨테이너를 통하여 컴파일후 서블릿으로 만든다음 추가적으로 데이터 베이스에서 연결 할게 있으면 다 처리해서 한번에 다시 정적 HTML 코드를 전송 하는 방식이다
ex 톰켓 == WAS
WAS(Web Application Server) 라고 불리며 , 웹서버와 웹 컨테이너의 결합으로 당야한 기능을 컨테이너에 구현하고 다양한 역할을 수행할 수 있는 서버를 말합니다.
아파치와 톰켓 차이
https://m.blog.naver.com/sincc0715/221815775570
위에서 보면 WAS(WEB server와 jsp/서블릿 컨테이너) 를 분리 해서 사용하는데
아래 들어가서 왜 이렇게 사용하는지 읽으면 이해하기 쉽다
요약하면 정적 페이지 전달과 동적 페이지 전달 을 상황에 맞게 처리 하기 위함이다.
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
그렇다면 WAS에: 웹 컨테이너 ( JSP / 서블릿 컨테이너 ) 는 뭔데???
- PHP, Perl, Python등의 언어는 Apache를 통해 CGI를 적용시키는 것이 가능한데, JAVA는 안된다.
- 즉, Java는 따로 CGI 와 같은 기능을 위해 컨테이너 라는 것이 필요하다.
- 웹 컨테이너는 Java 서블렛과 상호작용하는 WAS의 구성요소이다.
JSP 프로그래밍을 하려면 서버쪽 웹 콘테이너 안에 저렇게 두가지가 들어가야만 한다.
그래도 정리가 어렵다면
https://doozi316.github.io/web/2020/09/13/WEB26/
참고
728x90
'JAVA > JSP' 카테고리의 다른 글
JSP와 아파치 톰켓을 이용해서 웹 어플리케이션 서버(Web Application Server) 만들기 (0) | 2022.09.24 |
---|