728x90
JSP는 자바 코드 사용과 관련하여 다섯 가지의 스크립트 기반 태그를 제공한다.
태그 | 형태 | 의미 |
---|---|---|
주석문(Comment tag) | <%-- --%> | 주석처리 |
지시자(Directive tag) | <%@ %> | JSP 페이지에서 설정 가능한 속성들을 지시 |
선언문(Declaration tag) | <%! %> | 변환된 서블릿의 멤버 변수와 메서드 선언 |
수행문(Scriptlet tag) | <% %> | 실행될 자바 코드 작성 |
표현식(Expression tag) | <%= %> | 브라우저에 출력할 데이터 설정 |
💡 서버는 브라우저가 요청한 JSP파일을 찾아 서블릿 클래스로 변환한다. 이후 서블릿 객체와 동일하게 서블릿 컨테이너에 의해 생성되고 관리된다.
hello.jsp ➡️ hello_jsp.java ➡️ hello_jsp.class ➡️ 실행결과는 html로 반환
지시자 Directive tag
JSP 페이지에서 설정 가능한 속성들을 지시하는 용도로 사용
page
지시어include
지시어taglib
지시어
1. page 지시어
<%@ page 속성명="속성 값" ... %>
속성 | 의미 |
---|---|
import | import할 클래스 설정 |
errorPage | 에러 발생 시 처리하는 페이지 지정 |
isErrorPage | 현재 페이지가 에러 처리 전용 페이지임을 설정 |
session | 현재 페이지에서 세션 객체를 사용할 것인지 |
한글 출력 시
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
jsp에서 사용하는 클래스의 패키지를 import할 때
<%@ page import="java.util.ArrayList" %>
현재 JSP 페이지에서 에러 발생 시 처리하는 페이지 지정
<%@ page errorPage="error.jsp" %>
현재 JSP 페이지가 예외처리를 할 수 있는 JSP라고 지정
<%@ isErrorPage="true" %>
기본은 true. false로 지정하면 HttpSession 사용 불가
<%@ session="false" %>
2. include 지시어
화면을 재사용할 때 이용한다.
웹 애플리케이션의 화면은 헤더(header)와 콘텐츠(contents), 푸터(footer)로 구성되는데 주로 헤더와 푸터는 모든 웹 페이지에서 반복되는 공통의 내용을 포함한다. 이 때 include 지시자를 이용하여 반복되는 페이지를 분리해서 작성할 수 있다.
- 정적 include
<%@ include file="JSP파일" %>
요청 > 변환 > 컴파일 > 실행 > 응답 > 결과 출력
- 동적 include
<jsp:include page="JSP파일" flush="true" />
flush 속성의 값을 true로 지정하면 포함될 페이지로 제어가 이동될 때 현재 페이지가 지금까지 버퍼에 저장한 내용을 웹 브라우저에 출력하고 버퍼를 비운다.
요청 > 변환 > 컴파일 > 실행 > 재요청(포워드) > 변환 > 컴파일 > 실행 > 응답 > 결과 출력
3. taglib 지시어
JSP에서 외부 라이브러리로 만든 태그를 지정할 때 사용. 주로 JSTL(JSP Standard Tag Library) 이용 시 사용.
<$@ taglib prefix="c" url="http://java.sun.com/jsp/jstl/core" %>
선언문 Declaration tag
JSP 페이지에서 자바의 멤버(변수와 메서드)를 선언할 때 사용
<%!
int num = 10;
public void a() { }
%>
수행문 Scriptlet tag
서블릿의 doGet(doPost) 메서드 내에서 처리했던 작업을 JSP에서도 사용 가능하게한다. 대표적으로 사용자 입력 파라미터 처리, 요청 포워드 등과 같은 핵심 로직을 담당한다.
<% if(Calendar.getInstance().get(Calendar.AM_PM) == Calendar.AM) { %>
Good Morning
<% } else { %>
Good Afternoon
<% } %>
표현식 Expression tag
declartion 태그 및 scriptlet 태그에서 선언된 변수 및 메서드에서 리턴된 값을 웹 브라우저에 출력할 때 사용
<%= 변수 %>
<%= 리턴 값이 있는 메서드 %>
총 정리
1. 주석문 <%-- 주석 --%>
2. directive tag
<%@ page 속성명=속성값 속성명=속성값 ... %>
<%@ include속성명=속성값 속성명=속성값 ... %>
<%@ taglib 속성명=속성값 속성명=속성값 ... %>
3. declaration tag
<%! 자바코드 %>
4. scriptlet tag ✨
<% 자바코드 %>
5. expression tag ✨
<%= 변수 %>
728x90
'WebServer > JSP&Servlet' 카테고리의 다른 글
[JSP&Servlet] JSTL (JSP Standartd Tag Library) (0) | 2023.08.24 |
---|---|
[JSP&Servlet] EL (Expression Language) (0) | 2023.08.24 |
[JSP&Servlet] 파일 업로드 (File upload) (0) | 2023.08.21 |
[JSP&Servlet] 쿠키를 이용한 간단한 로그인&로그아웃 (0) | 2023.08.21 |
[JSP&Servlet] 세션을 활용한 간단한 로그인&로그아웃 (0) | 2023.08.21 |