WAS
웹 애플리케이션 서버다양한 기능을 수행하는 로직을 담당하는 컨테이너(서블릿,jsp)를 분담
(서블릿, JSP, ASP, PHP)
서블릿
자바플랫폼에서 컴포넌트(독립적 단위 모듈)를 기반으로하는 WAS의 핵심 기술특징
- 생명주기 : init() 서블릿이 실행시 한번 실행
service() 사용자 요청시 매번 실행 (get, post)
쓰레드 단위로 실행 됨
- 서버에서 컨테이너에 의해 실행
GET
정보를 헤더의 URI에 추가, 문자열 노출, 길이 제한, 한글 가능
POST
정보를 바디에 추가, 노출 X, 제한 X, 인코딩/디코딩이 필요
필터
클라이언트로 부터 서블릿이 요청되어 수행될 때 필터링(로그, 보안, 인증, 부가기능)
서블릿이 호출되기 전 요청을 가로챔
서블릿이 호출된 후 응담을 가로챔
HTTP
브라우저 <-> 서버 프로토콜Stateless - 처리가 끝난 데이터는 유지가 안됨 -> 저장기술 필요
1. servletcontext
서버 정보 추출, WAS 단위 정보 공유
2. cookie
클라이언트 단위 정보 공유, 클라이언트 쪽에 저장
3. session
상태정보를 서버에 저장, 유지, 브라우저에 세션 ID를 쿠키로 보냄
JSP
HTML과 같은 일반적인 텍스트 구조 (웹 개발자들이 이해하기 쉽게 하기위해 나옴)JSP 컨테이너에 의해 서블릿 형태의 자바 소스로 변환
JSP -> .java -> .class -> 서블릿 컨테이너
주석
<%-- --%>
JSP 자바빈즈
JSP 표준 액션 태그, 폼 데이터 처리 용이
JDBC
java database connectivity다양한 종류의 RDB 자업할 때 사용하는 표준 API
JDBC 프로그램 -> JDBC인터페이스 -> JDBC 드라이버 -> DB
문제점 - connection 과정은 일정 시간이 필요, 서버 자원 낭비 증가
connection pool - 웹 앱 전에 웹 서버에서 미리 준비, 필요할 때마다 사용
(connection 들을 관리하는 서버 자원)
MVC
view - 클라이언트가 보는 화면controller - 요청을 받아 유효성 검사 후 서비스로 넘김
model - 서비스처리 및 DB처리
Front Controller - 대표 controller가 모든 요청을 받음 ( 관리가 쉬워짐)