1. JSP란?
1-1. JSP(JavaServer Pages)란 무엇인가?
- JSP는 JavaServer Pasges의 약자이며 HTML코드에 JAVA코드를 넣어 동적 웹 페이지를 생성하는 웹 어플리케이션 도구이다.
- JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답한다.
- JSP는 서블릿 기반의 서버 스크립트 기술이다.
- HTML + JAVA : HTML을 중심으로 JAVA와 연동하여 사용하는 웹 언어이다.
2. 스크립트 태그
- HTML 코드에 자바 코드를 넣어 프로그램이 수행할 기능을 구현할 수 있다.
2-1. 선언문(declaration)
<%! ... %>
- 자바의 변수나 메서드를 정의하는데 사용되는 태그
2-2. 스크립틀릿(scriptlet)
<% ...%>
- 자바 변수 선언 및 자바 로직 코드를 작성하는데 사용
2-3. 표현문(expression)
<%= ... %>
- 변수,계산식, 메서드 호출 결과를 나타내는 태그
2-4. 주석
<%-- ... --%>
2-5. 지시자
<%@ ... %>
3. 내장객체
3-1. 내장객체란
- JSP페이지 내에서 제공되는 특수한 클래스 형의 객체
- 내장 객체는 선언과 할당 없이 사용할 수 있다.
4. 디렉티브 태그
<%@ include file="파일명" %>
- 현재 JSP페이지의 특정 영역에 외부 파일의 내용을 포함시키는 태그이다.
- 보통 header와 footer는 대부분의 페이지에 동일한 내용으로 작성되기 때문에 유지보수 및 편의를 위하여 외부 파일로 만든 후 include하여 사용한다.
5. 액션 태그
- 행위에 대한 태그
- JSP페이지에서 동일한 내용이라도 자바 코드를 기술하기 보다는 태그를 기술하는 것이 지저분하지 않고 깔끔하게 코딩할 수 있어 가독성 높은 소스코드를 작성할 수 있다.
- 코드 양을 대폭 줄일 수 있다.
- 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행 결과 내용을 현재 페이지에 포함하거나 자바빈즈(객체) 등의 다양한 기능을 제공한다.
- 액션 태그는 XML 문법을 따른다. 즉 시작 태그와 함께 반드시 종료 태그를 포함해야 한다.
- 액션 태그의 기본 형식 : <jsp:... 속성="값"> 내용 </jsp:...>
- 내용이 없는 액션 태그의 형식 : <jsp:... 속성="값" />
5-1. 액션 태그의 종류
-
forward( <jsp:forward /> )
: 다른 페이지로의 이동, 페이지의 흐름 제어
-
include( <jsp:include /> )
: 외부 페이지의 내용을 포함하거나 페이지의 모듈화
-
param( <jsp:param /> )
: 현재 페이지에서 다른 페이지에 정보를 전달할 때 사용
-
useBean( <jsp:useBean /> )
: 빈을 생성하고, 사용하기 위한 환경을 정의하는 액션 태그
-
setProperty( <jsp:setProperty /> )
: 빈에서 속성 값을 할당
-
getProperty( <jsp:getProperty /> )
: 빈에서 속성 값을 얻어올 때 사용
6. 페이지 이동
6-1. forward
- request에 담긴 값이 유효해진다. (request, response가 유지된다.)
- 이동된 url이 화면에 안 보인다. (사용자는 이동했는지 알 수 없음.)
- forward 하는 방법
pageContext.forward("이동할 페이지");
<jsp:forward page="이동할 페이지" />
- 디폴트. 나중에 springboot 때 씀
- 중요한 정보를 담아서 보내줌.
6-2. Redirect
- 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨.
- request, response가 유지되지 않는다. ( 새로 만들어짐 )
- 이동된 url이 화면에 보인다.
- redirect 하는 방법
response.sendRedirect("이동할 페이지");
- 개인정보 등 중요한 정보들을 중간에 유실시켜줌.
ex) 결제 시 카드 정보 등을 중간에 유실시킴.