1. jsp란?
1-1. JSP(JavaServer Pages)란 무엇인가?
- JSP는 javaServer Pages 의 약자이며 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에 담긴 값이 유효하다.(resquest,response가 유지)
- 이동된 url이 화면에 안보인다. (사용자는 이동했는지 알 수 없음)
- 포워드 하는 방법:
pageContext.forward("이동할페이지");
<jsp:forward page="이동할페이지" />
6-2. redirect
- 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨, request, response가 유지되지 않는다. (새로 만들어짐)
- 이동된 url이 화면에 보인다.
- 리다이렉트 하는 방법:
response.sendRedirect("이동할페이지");