JSP (Java Server Page)
- 서버 사이드 스크립트 언어
- Java 기반으로 HTML 문서 내에 자바코드를 삽입해서
- 웹 서버에서 동적으로 웹 페이지를 생성해서 클라이언트에게 반환
- JSP를 통해 HTML과 동적으로 생성된 컨텐츠를 혼합해서 사용
- Servlet을 보완한 스크립트 방식 표준
- JSP는 실행되면 Servlet(.java)으로 변환되어 컴파일되서 클래스(.class) 파일로 만들어져 실행
- View를 담당하는 페이지로 사용
JSP와 서블릿과 차이점
- JSP
- HTML 내부에 Java 소스코드가 들어 있는 형식
- 사용하기 편리 : 쉬움
- Servlet
- Java 코드 내에 HTML 코드 포함
- 읽고 쓰기 불편
JSP 페이지의 구조
- 정적페이지 + 동적페이지
- 정적 페이지 구현 : HTML 태그
- 동적 페이지 구현 : 스크립트 사용
- <%@ %>
- <% %>
- <%! %>
- <%= %>
JSP 페이지의 기본 구성 요소
- JSP 페이지 내용
- HTML 문서 내용 / JSP 태그 / 자바 코드
JSP 페이지 구성
- 지시어 : page, include, taglib
- 스크립트 요소
- 액션 태그
JSP 태그
- <% 로 시작하고 %> 로 종료
- @, !, =, -- 문자를 추가하여 태그의 의미 부여
지시어
<%@ 지시어 속성1=값, 속성2=값, …. %>
page 지시어 : <%@ page ... %>
include 지시어
- <%@ include file = "포함될 파일의 url" %>
- 공통적으로 포함될 내용을 가진 파일을 해당 JSP 페이지 내에 삽입하는 기능을 제공
- 복사 & 붙여넣기 방식으로 두 개의 파일이 하나의 파일로 합쳐진 후 하나의 파일로서 변환되고 컴파일
taglib 지시어
- <%@ tagline prefix="c" uri="http:....%>"
- 표현 언어(EL : Expression Language), JSTL(JSP Standard Tag Library)를 JSP 페이지 내에 사용
JSP 페이지의 스크립트 요소
선언문 (Declaration)
- JSP 페이지의 멤버 필드 선언 또는 메소드를 정의할 때 사용
- 선언문에서 선언된 변수는 페이지 전체에서 사용 가능 (전역 변수 의미)
- 형식 : <%! 선언 %>
예 : <%! int a = 20; %>
<%!
int a = 10;
String str = “문자열”;
%>
표현식 (Expression)
<%= 3*5 %>
<%! String name = “홍길동”; %>
<%= name %>
스크립트릿 (Scriptlet)
- 자유롭게 자바 코드를 기술할 수 있는 영역
<% 자바코드 %>
- 스크립트릿에서 선언된 변수는 지역 변수의 개념
JSP 내장 객체
- 내장 객체
- 클라이언트에서 웹 서버에게 JSP 페이지를 요청하면 자동으로 생성
- 객체 생성하지 않고 바로 사용 가능
- 내장 객체 종류
- 입출력 : request / response / out
- 서블릿 : page / config
- 컨텍스트 : session / application / pageContext
- 예외 처리 : exception
request 객체의 파라미터 관련 메소드
<input type="text" name="name">
response 객체
- JSP 페이지에서 처리한 결과를 웹 브라우저에 응답할 때 사용
- 헤더 설정, 코드 상태, 쿠키 등 정보 포함되어 있음
- 응답 콘텐츠 설정, 응답 헤더 설정, 상태 코드 설정과 관련된 메소드 제공
out 객체
- 웹 서버에서 웹 브라우저에게 출력 스트림으로 응답하기 위해 사용
out.println(“출력 문자열”);
- 표현식 <%= 출력문자열 %>과 동일
- println() : 줄바꿈 적용되지 않음
- print()와 동일한 결과 (스페이스 한 칸 정도 차이)
- 줄바꿈 하기 위해서는
<br>
태그 사용
액션 태그
- JSP 페이지 내에서 어떤 동작을 지시하는 태그
- 어떤 동작 또는 액션이 일어나는 시점에 페이지와 페이지 사이에서의 제어 이동
- 또는 다른 페이지의 실행 결과를 현재 페이지에 포함하는 기능 제공
액션 태그 종류
include 액션 태그 : <jsp:include>
forward 액션 태그 : <jsp:forward>
param 액션 태그 : <jsp:param>
- 이동하는 페이지에 파라미터 값을 전달할 때 사용
useBean 액션 태그 : <jsp:useBean>
- 자바빈을 JSP 페이지에서 이용할 때 사용
- DTO / VO에 해당
setProperty 액션 태그 : <jsp:setProperty>
getProperty 액션 태그 <jsp:getProperty>
자바빈 (JavaBeans)
- DTO / VO와 같은 개념
- 데이터를 다루기 위해 자바로 작성되는 소프트웨어 컴포넌트로 재사용 가능
- 입력 폼의 데이터와 데이터베이스의 데이터 처리 부분에서 활용
- 클래스로 작성
- 멤버 필드로 속성 (property)이 있고
- 멤버 메소드로 Getter/Setter 메소드 포함
- setXXX() : 프로퍼티에 값 저장
- getXXX() : 프로퍼티 값 반환
- 액션 태그를 이용해서 빈 사용
- 속성 접근 제어자는 private
- Getter/Setter 메소드와 클래스는 public
자바빈 관련 액션 태그
useBean 액션 태그 : <jsp:useBean>
<jsp:useBean id=”” class=”” scope=”” />
setProperty 액션 태그 : <jsp:setProperty>
- 프로퍼티(속성) 값을 설정할 때 사용
- 데이터 설정(저장)
getProperty 액션 태그 : <jsp:getProperty>
모든 속성을 한꺼번에 설정
form의 <input>
태그 속성명을 클래스 필드명과 동일하게 지정하고
<jsp:setProperty property="*".. />
로 설정