JSP
- Servlet 표준을 기반으로 작성된 웹 어플리케이션 개발 언어
- HTML 내에 Java를 작성하여 동적으로 웹페이지를 생성하여 브라우저에게 돌려주는 페이지
- Servlet으로 변환하여 실행

JSP 구성요소
- 지시자
- JSP 페이지에 대한 설정 정보를 지정하기 위해서 사용
- 스크립트 요소 : 스크립트릿, 표현식, 선언부
- JSP에서 문서의 내용을 동적으로 생성하기 위해서 사용
- JSP 기본객체
- 요청 및 응답 관련 정보를 얻거나, 응답 결과를 만들기 위해서 사용
- 표현언어
- JSP를 좀 더 간결하게 작성하기 위해서 사용
- Action Tag와 JSTL
- Tag로 정리
기본 태그 종류
| 종류 | 사용용도 | 형식 |
|---|
| 스크립트릿 | 자바코드 작성 | <% %> |
| 선언 | 변수와 메서드를 선언 | <%! %> |
| 표현식 | 계산식이나 함수를 호출한 결과를 문자열로 출력 | <%= %> |
| 주석 | JSP 페이지 주석 | <%-- --%> |
| 지시자 | JSP 페이지 속성 지정 | <%@ %> |
- 스크립트릿 -> Service()메서드 내부에 작성이 된다.
- 선언 -> 클래스영역에 선언이 된다.
- 표현식 -> out.print()으로 출력이 되는 것처럼 형식이 지정, 내부에 ";"이 없어도 된다.
- 지시자 -> JSP 주석 {웹컨테이너가 JS 번역하고 실행하는 방법을 서술! }
- JSP 주석과 HTML 주석 차이 구분하기 {<%@ %> ,
<!-- --> }
주석
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP 주석 예시</title>
</head>
<body>
<h1>JSP 주석 예시</h1>
<%-- JSP 주석: 이 부분은 JSP 주석입니다. --%>
<%
// Java 주석: 이 부분은 단일 행 주석입니다.
/*
* Java 주석: 이 부분은 여러 줄 주석입니다.
*/
/**
* JavaDoc 주석: 이 부분은 JavaDoc 주석입니다.
* @param args 예시 파라미터
*/
String message = "주석 예시";
%>
<p><%= message %></p>
</body>
</html>
## 페이지 이동
- 요청(request)을 받아서 화면을 변경하는 방법은 두 가지가 있다.
1. 포워드 방식
- 요청이 들어오면 요청을 받은 JSP 또는 Servlet이 직접 응답을 작성하지 않고, 요청을 서버내부에서 전달하여 해당 요청을 처리하게 하는 방식
- request.getRequestDispatcher("이동할 페이지")
2. 리다이렉트 방식
- 요청이 들어오면 내부 로직 실행 후, 브라우저의 URL을 변경하도록 하여 새로운 요청을 생성함으로써 페이지를 이동한다.
- response.seendRedirection("이동할 페이지")
** 이동할 페이지 ** -> "/"가 있으면 절대경로, 없으면 상대경로 (단 context root에서 시작된다.)