JSP

[JSP] 태그, 지시자

shb 2022. 3. 24. 17:26

JSP  vs 서블릿
* 서블릿은 
- Java 코드로 만들어진 겁니다.  
- Java코드에는 HTML 코드가 없습니다. 그래서 HTML 코드를 출력하기 위해  PrintWriter 객체를 사용하였습니다.
- 즉 Java 코드 안 에 HTML 이 있는 형태
- MVC 모델에선 (주로) Controller의 역할을 합니다.
* JSP 는 
-  HTML 코드 내에 Java 코드가 있는 형태 (스크립트 태그의 형태로)
- MVC 모델에선 View의 역할을 합니다
- 내부적으로 JSP는 서블릿으로 변환된 뒤에 컴파일, 실행됨.

 

<%   ~ %> 태그 안에 Java코드 삽입 가능

즉, Java 코드는 ‘서버’ 쪽에서 처리가 된 뒤에 결과물만 클라이언트에 보이는 겁니다

 

* JSP 의 태그 종류

1. 지시자 (Directive) 태그 <%@   %>
: 페이지에 대한 정보 나타내는 태그

2. 스크립팅 요소 태그 (스크립트릿, 익스프레션, 선언부)
: 스크립트릿 <%  %>   자바코드 
: 익스프레션식  <%=   %>   결과값(평가값)
: 선언부 <%!    %>  변수나 메소드 선언  

3. 주석태그
<%--    --%> 

4. 액션태그  : JSP에 어떤 동작을 지시, 자바빈을 연결해서 사용함  
형식: <prefix:action> … </prefix:action>
- 표준액션 예)   <jsp:include> ..  </jsp:include>
- 커스텀액션  예) <c: set var="i" value="0"/>  ..  </c:set>

 

* ‘지시자 Directive 태그’ 의 3가지 종류
1. page 지시자 : 페이지의 속성
2. include 지시자
3. taglib (태그 라이브러리) 지시자

 

* Page 지시자의 속성들
- info 속성 : 페이지를 설명해주는 문자열  <%@ page info = “copyright of ~” %>
- languege : jsp 에서 사용할 언어 지정 <%@ page  language=”java” %>
contentType : jsp페이지내용을 어떻게 출력할지 브라우저에 알려주는 역할, 문자셋도 알려줌
  <%@ page contentType="text/html; charset=UTF-8" %>

- extends 속성 :  jsp 파일이 서블릿으로 변환되는 시점에서 자신이 상속받을 클래스를 지정 (일반적으로 jsp 컨테이너가 적절하게 상속시켜주기 때문에, 거의 사용할 일은 없음)
import 속성 : 패키지를 불러옴.  자바의 import 와 동일하다고 봐도 됨.
  <%@ page import=”java.util.*, java.sql.*” %>
  <%@ page import=”java.io.*” %>
  ** JSP 가 기본으로 import 하는 패키지 : 서블릿 관련 패키지   javax.servlet    javax.servlet.jsp     javax.servlet.http
session 속성 : HttpSession 속성의 사용여부 ( true / false)
<%@ page session = “false” %>

- buffer 속성 :  jsp 의 출력 크기를 kb 단위로 지정, 기본값은 8kb.
autoflush 속성 : buffer 가 다 차있으면 자동적으로 버퍼를 지울지 여부 설정 : 기본값은 true
isThreadSafe 속성:   거의 사용 안함.  여러 요청을 동시에 처리할지 여부  (jsp 페이지 차원에서!)  true / false
errorPage  속성:  jsp 처리도중 발생한 예외처리를 위한 페이지 지정
isErrorPage 속성 : 에러처리 담당하는 페이지 인지 여부 true / false
pageEncoding 속성: 현재 페이지의 인코딩 (일반적으로 contentType 의 charset 과 동일) 

 

* include 지시자
- 현재의 jsp 페이지에 다른 jsp 페이지나 html 파일을 불러와서 현재페이지의 일부로 사용. 
- 불러오는 대상은 파일의 형태.  file 속성으로 지정.
ex)   <%@ include file="b/aaa.jsp" %>

 

 

22행처럼 include 지시자 추가
test.jsp -  현재 날짜를 보여주는 페이지

* taglib 지시자
‘액션’ 을 사용할때 필요한 지시자.  (나중에 배움)
참고로, 액션을 사용할때는
1. 기본적으로 사용할 수도 있고, 
2. 액션이 속한 라이브러리를 설치해야만 사용할수 있기도 합니다.
    taglib 지시자는 바로 이 경우 필요합니다
<%@ taglib prefix=”c” uri=”http://oracle.com/jsp/jstl/core” %>

 

 

* 지시자 (Directive)   태그 <%@  ..   %>
- page 지시자  <%@ page .. %>
info , contentType, pageEncoding, import, errorPage, isErrorPage, … ....
- include 지시자 <%@ include file=” .. “   %>
- taglib (태그 라이브러리) 지시자  <%@ taglib prefix=”c” ..   %>


* 스크립팅 요소 태그
- 스크립트릿 <% ..  %> : 자바코드
- 익스프레션식  <%=  ..  %> : 결과값, 평가값
- 선언부 <%!  ..  %> : 변수, 메소드 선언


* 주석태그 <%--    --%> 


* 액션태그
- 형식: <prefix:action> … </prefix:action>
- 표준액션   <jsp:include> ..  </jsp:include>
- 커스텀액션  예) <c: set var="i" value="0"/>