⏰ 2024.12.05 (D+41)
💡 JSP의 주요 특징
☑️ 동적 콘텐츠 생성
- JSP는 서버에서 동적으로 웹 페이지를 생성 가능
- HTML과 Java 결합: JSP 파일은 기본적으로 HTML 형식으로 작성
- Java 코드를 포함할 수 있는 특수한 태그(<% %>)를 사용
☑️ 편리한 유지보수- Java와 HTML을 분리하여 코드의 유지보수가 용이하다
☑️ 서블릿 변환- JSP 파일은 최종적으로 서블릿 코드로 변환되어 실행
📢 JSP의 기본 구성 요소
✅ Directive
- JSP의 지침을 제공하며, 페이지의 전반적인 동작 방식을 설정
(예: <%@ page %>)
✅ Scriptlet- Java 코드를 삽입하는 부분으로, <% %>로 구분
✅ Expression- 값을 출력하는 부분으로, <%= %>로 사용
✅ Declaration- 변수나 메서드를 선언하는 부분으로, <%! %>로 사용
✅ Action- JSP 페이지 내에서 액션을 수행하는 태그
(예: <jsp:include>, <jsp:forward>)
💡 서블릿의 주요 특징
☑️ 서버측 프로그래밍
: 클라이언트의 요청을 받아서 처리하고, 그 결과를 클라이언트에게 전달
☑️ 플랫폼 독립성
: Java 언어로 작성되어 플랫폼에 구애받지 않으며, 웹 서버에서 실행
☑️ 상태 없는 프로토콜
: HTTP는 상태 비저장(stateless) 프로토콜이기 때문에 서블릿은 세션 관리 및 상태 유지 기능을 제공
📢 서블릿의 주요 구성 요소
✅ Servlet API
: 서블릿과 JSP는 javax.servlet 패키지를 사용하여 클라이언트 요청 및 응답을 처리
✅ 서블릿 컨테이너(서블릿 엔진)
: 서블릿을 관리하고 실행하는 서버 소프트웨어입니다. Tomcat, Jetty 등이 유명한 서블릿 컨테이너
public void init() throws ServletException {
// 서블릿 초기화 작업
}
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
// 요청 처리 코드
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// GET 요청 처리
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// POST 요청 처리
}
public void destroy() {
// 서블릿 종료 시 작업
}
| 특징 | JSP | 서블릿 |
|---|---|---|
| 용도 | HTML과 Java를 결합하여 동적인 페이지를 생성 | 클라이언트 요청을 처리하고 응답을 생성 |
| 구성 | HTML 코드와 Java 코드(스크립틀릿, 표현식 등) | Java 코드만 포함 (클래스 기반) |
| 실행 방식 | 서버가 JSP 파일을 서블릿으로 변환 후 실행 | 서블릿 클래스가 직접 실행 |
| 개발 용이성 | HTML 코드와 결합하여 개발이 직관적임 | Java 코드 작성 필요, 복잡할 수 있음 |
| 유지보수 | HTML과 Java 코드가 섞여 있어 유지보수가 어려움 | MVC 패턴을 적용하여 유지보수가 용이함 |
| 성능 | 서블릿으로 변환되기 때문에 성능은 서블릿과 비슷 | 직접적으로 서블릿으로 처리하기 때문에 더 직관적임 |