JSP -- 자바 웹 기술의 최종 진화
| 서블릿 | JSP | 
| 자바 코드 안에서 전체 HTML 페이지 생성 | HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가함.  | 
| 변수 선언 및 초기화가 반드시 선행되어야함 | 내장 객체 제공하여 즉시 사용 가능함. | 
| 컨트롤러(Controller) | 처리된 결과 보여주는 뷰(View)만들 때 사용 | 
JSP 구성 요소
1)HTML 태그, CSS, JS 코드
2)JSP 기본 태그
3)JSP 액션 태그
JSP 페이지 구성 요소
1)디렉티브 태그(Directive Tag)
2)스크립트 요소(Scripting Element) : 주석문, 스크립틀릿(Scriptlet), 표현식, 선언식
3)표현 언어(Expression Language, EL)
4)내장 객체(내장 변수)
5)액션 태그(Action Tag)
디렉티브 태그 종류
1.페이지(Page Directive Tag)
-JSP 페이지의 전반적인 정보 설정 시 사용
-이클립스에서 자동으로 생성되는 페이지 디렉티브 태그
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

-속성
1)import : 페이지에서 사용할 자바 패키지와 클래스 지정



2)errorPage : 해당 페이지에서 에러가 발생했을 때 에러 발생 여부를 보여줄 페이지를 지정함.
3)isErrorPage : 해당 페이지가 에러를 처리할지 여부를 지정함.


int myAge가 비어있기 때문에 당연히 에러가 발생한다.
=>에러가 발생했을 때 출력할 페이지를 따로 지정. (이미지 태그 사용)

4)trimDirectiveWhitespaces : 지시어 선언으로 공백을 제거할지 여부 지정


trimDirectiveWhitespaces="false"


trimDirectiveWhitespaces="true"
5)buffer : 출력 버퍼의 크기 지정
6)autoFlush : 출력 버퍼가 모두 채워졌을 때 자동으로 비울지 결정.


buffer = "1kb" autoFlush = "false" -> buffer가 채워져도 비워지지 않기 때문에 에러 발생


buffer = "8kb" autoFlush = "true" -> buffer가 채워지고 자동으로 비워지기 때문에 정상적으로 실행
2.인클루드(Include Directive Tag)
-공통으로 사용하는 JSP 페이지를 다른 JSP 페이지에 추가할 때 사용
-재사용성이 높음.
-JSP 페이지 유지 관리가 쉬움.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
 | 
 <%@page import="java.time.LocalDateTime"%> 
<%@page import="java.time.LocalDate"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>include 지시어</title> 
</head> 
<body> 
    <% 
        LocalDate today = LocalDate.now();                            //오늘 날짜 
        LocalDateTime tomorrow = LocalDateTime.now().plusDays(1);    //내일 날짜 
    %> 
</body> 
</html> 
 | 
cs | 
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
 | 
 <%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<%@include file="includeFile.jsp" %>        <!-- 다른 JSP 파일 포함 --> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>include 지시어</title> 
</head> 
<body> 
    <% 
        out.println("오늘 날짜 : "+today);     
        out.println("<br>"); 
        out.println("내일 날짜 : "+tomorrow); 
    %> 
</body> 
</html> 
 | 
cs | 

3)태그라이브(Taglib Directive Tag)
-개발자나 프레임워크에서 제공하는 태그 사용 시 사용 
-EL(표현 언어)에서 자바 클래스의 메서드를 호출. 
-JSTL(JSP 표준 태그 라이브러리) 사용하기 위한 지시어.
'📒 education archive > 📍Servlet, JSP' 카테고리의 다른 글
| [국비학원 기록/JSP] 내장 객체, page, request, 세션(session), 애플리케이션(application) 영역 (0) | 2021.12.07 | 
|---|---|
| [국비학원 기록/JSP] 스크립트 요소, 선언문, 스크립틀릿, 표현식, 주석문 (0) | 2021.12.07 | 
| [국비학원 기록/Servlet] 서블릿 리스너(Listener), 로그인 접속자 수 카운트 (0) | 2021.12.07 | 
| [국비학원 기록/Servlet] 서블릿 필터(Filter), 필터 한글(utf-8) 인코딩 (0) | 2021.12.06 | 
| [국비학원 기록/Servlet] 서블릿 스코프(scope), URL - pattern (0) | 2021.12.06 |