서블릿?
자바에서 웹 브라우저와 웹 서버를 활용하여 쉽게 서버 어플리케이션을 개발 할 수 있도록 제공하는 기술.
자바로 만든 CGI프로그램
CGI 프로그래밍?
Common Gateway Interface
웹서버와 프로그램 사이의 데이터를 주고받는 규칙.
CGI프로그래밍에는 컴파일 방식과 인터프리터 방식이 있음.
컴파일
- C, Java
- 기계어로 번역된 코드를 실행 => 속도빠름
- 변경사항 있을때마다 컴파일 재배포 해야함
인터프리터
- Perl, PHP, Python
- 실행할 때마다 소스코드 문법 검증 해석 => 속도느림
- 변경사항 발생해도 수정 저장만 하면 됨.
---
서블릿
- 서블릿은 웹서버와 직접 데이터를 주고받지 않고 사이에 서블릿 컨테이너라는 것이 있음.
- 개발자들은 더이상 CGI규칙을 알 필요가 없고 Servlet 규칙에대해 알아야함.
- Servlet 규칙은 JavaEE(Java Platform, Enterprise Edition) 기술사양에 포함되어있음.
JavaEE?
JavaSE 위에 구축, 웹개발을 하기위한 기술들(servlet, jsp, websocket 등)을 지원하기 때문.
스프링 나오기전엔 이걸로 한듯.
WAS
자바에서는 JavaEE의 구현체를 WAS라고 부름.
서버쪽 어플리케이션의 생성, 실행, 소멸을 관리하는 프로그램. - application server
근데 거기서 웹기술을 기반으로 동작되는 어플리케이션 서버를 - web application server
서블릿 컨테이너
- JavaEE 기술중에서 서블릿, JSP등 웹 관련 부분만 구현한 서버를 서블릿 컨테이너라고 부름
- ex) 아파치사의 톰캣, Jetty
- Http request response 객체 생성해줌
- 서블릿 인스턴스는 하나만 생성되고 종료될때까지 사용됨.(싱글톤) => 특정 사용자를 위한 데이터 보관 X
---
서블릿 만들기.
DD파일에 설정도 해줘야함.
*QName
패키지명 + 클래스명
----
웹 애플리케이션 배치
이클립스를 이용한 자동배치
이클립스에서 자동으로 웹앱 배치하면 워크스페이스 폴더에 있는 WTP(Web Tools Platform) 플러그인이 관리하는 임시폴더에 배치폴더가 생김.
WebContent에 있던 폴더들이 저 위치로 복사됨.
컴파일된 자바 클래스들 (프로젝트 build 폴더 아래에 있는 것들도 WEB-INF로 복사됨.
운영서버에 배치
설치된 톰캣서버 파일의 webapps폴더에 프로젝트를 war로 묶어서 배치.
터미널로 톰캣서버 실행.
톰캣서버 실행하면 webapps에 있는 .war 파일들은 자동으로 압축해제됨.
---
GenericServlet
기존 Servlet은 인터페이스 구현할때 인터페이스에 구현된 메서드 5개를 필수적으로 구현해야함.
그렇지만 service()를 뺴고는 다들 없어도 될 때도 있음 그런데도 구현해야함.
그래서 나온게 GenericServlet 추상 클래스
사진
GenericServlet은 service를 제외한 다른 필수 메서드들을 미리 구현해서 상속해줌.
'study' 카테고리의 다른 글
자바 웹개발 워크북 5장 MVC 아키텍처 (0) | 2023.03.13 |
---|---|
자바 웹개발 워크북 4장 서블릿과 JDBC (0) | 2023.03.09 |
자바 웹 개발 워크북 2장 Http 프로토콜 (0) | 2023.03.07 |
자바 웹개발 워크북 1장 (0) | 2023.03.06 |
spring & spring boot (0) | 2023.02.22 |
댓글