클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술
장점
java의 OOP 기반으로 작성: 유지보수성 및 재활용성 우수하며 플랫폼 독립적
높은 성능과 확장성: 하나의 서블릿 객체만 생성하며 멀티 스레딩을 지원하여 요청의 동시 처리가 가능
확장성: 필터를 통한 공통 모듈의 전/후 처리, 리스너를 이용한 이벤트 기반 처리 가능 및 스프링 등 다양한 프레임워크와 통합 용이
단점
business logic과 presentation logic(HTML code)가 섞여서 나타남
여기서 JSP가 등장! 함께 작동하는 Model2 방식 처리!
HTML 변경 시 Servlet을 재컴파일해야 함
@WebServlet(urlPatterns = "/hello")
/로 시작해서 경로 지정 ex /hello/hi, /hello/there
확장자 매칭은 경로 지정과 함께 사용 불가! ex) hello.do
HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구
JSP가 실행되면 자바 Servlet으로 변환되어 웹 어플리케이션 서버에서 동작된다!
directive // JSP 페이지의 속성 지정 <%@ %>
script-let // 자바 코드 기술 <% %>
expression // 계산식, 함수 호출 결과 <%= %>
declaration // 변수 및 메서스 선언 <%! %>
comment // JSP 페이지 내의 설명 <%-- --%>
JSTL // 커스텀 태그 중 자주 사용되는 것을 표준화 (JSP Standard Tag Library)
request // 클라이언트 요청 정보
response // 서버의 응답 정보
out // 클라이언트로의 정보 출력 스트림
session // HTTP 세션에 대한 정보
application // 웹 애플리케이션에 대한 정보
pageContext // 현재 JSP 페이지에 대한 정보
exception // isErrorPage=true인 경우 사용되는 예외 객체
config // JSP 페이지에 대한 설정 정보 저장
추가적인 속성 저장을 위한 웹의 영역(scope)
page - request - session - application
Servlet 은 자바를 사용하여 웹을 만들기 위해 필요한 기술이다! 그런데 html을 자바 코드에 넣고 쓰기 힘들어 같이 사용하는 것이 JSP 이다!
JSP, 아직도 사용하는 이유는? (Feat. 사용 가이드)
[JSP] 서블릿(Servlet)이란?
Servlet & JSP (2)